博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python自动化测试-D11-学习笔记之一(yaml文件,ddt)
阅读量:4322 次
发布时间:2019-06-06

本文共 2047 字,大约阅读时间需要 6 分钟。

pip instal pyyaml

yaml或yml后缀格式的文件也是一种xml文件,有自己的格式

key 和 value 之间要有空格 

例如

 

执行结果为:

 

{'databases': 'test:192.168.1.2 dev:192.168.1.3 pre:192.168.1.5', 'username': 'localhost', 'port': 3306, 'tester': ['百花齐放', '百家争鸣', '百鸟朝凤'], 'password': 123456}

 

二、

import yaml,json # f = open('abc.yml',encoding='utf-8') # print(yaml.load(f)) f = open('login.yml',encoding='utf-8')
print(json.dumps(yaml.load(f),indent=4))
执行结果为:

 

 

ddt的使用

import ddt import unittest ''' ddt 自动读文件,在类名上面 写上 @ddt.ddt 在函数上门写上 @ddt.data(参数化数据),多个参数的时候要加上 @ddt.unpack unittest执行的时候不能直接右键执行,需要在菜单栏里点击run 然后选择python文件执行 ''' @ddt.ddt class MyCase(unittest.TestCase):     @ddt.data(1,2,3)     def test_a(self,num):         self.assertTrue( num > 2)     @ddt.data([1,2],[2,2],[3,2])     @ddt.unpack     def test_b(self,num1,num2):          self.assertTrue(num1>num2) if __name__ == '__main__':     unittest.main() 执行结果为:

用ddt 读取 yml文件内容:

 

import ddt import unittest,requests
@ddt.ddt class MyCase(unittest.TestCase):
@ddt.file_data('login.yml') @ddt.unpack def test_run(self,**kwargs)
method = kwargs.get('method')   url = kwargs.get('url')   data = kwargs.get('data',{})   header = kwargs.get('header',{})   is_json = kwargs.get('is_json',0)   cookie = kwargs.get('cookie',{})   check = kwargs.get('check')
if method == 'post':     if is_json:         r=requests.post(url,json=data,headers=header,cookies=cookie)     else:         r=requests.post(url, data=data, headers=header, cookies=cookie) else:     r=requests.get(url,params=data, header=header, cookies=cookie)
# self.assertEqual(check.get('error_code'),r.json().get('error_code')) '''当校验很多的时候,需要用到循环''' for c in check:     self.assertIn(c,r.text)
if __name__ == '__main__':     unittest.main()

执行结果

 接上面

from BeautifulReport import BeautifulReport
if __name__ == '__main__':     # unittest.main()     suite = unittest.TestSuite()     suite.addTests(unittest.makeSuite(MyCase))     result = BeautifulReport(suite)     result.report(filename='我的测试报告',description='这是我的测试报告',log_path='')

 

 

 

 

 
 

 

转载于:https://www.cnblogs.com/blackbird0423/p/8594786.html

你可能感兴趣的文章
Appium+Python3+ Android入门
查看>>
linux $ 类型变量 及Makefile 中 $ 类型变量的含义
查看>>
MyBatis插件及示例----打印每条SQL语句及其执行时间
查看>>
2.2
查看>>
[JS]事件捕获和冒泡
查看>>
【译】SQL Server误区30日谈-Day10-数据库镜像在故障发生后,马上就能发现
查看>>
linq之where子句
查看>>
Socket之UDP发送文件
查看>>
多语言在线代码编辑器,可运行程序
查看>>
C#:使用UPnP来穿透NAT使内网接口对外网可见
查看>>
js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)
查看>>
项目管理的小故事
查看>>
Visual Studio不显示智能提示代码,快捷键Alt+→也不出现
查看>>
多文件调用(函数、结构体)
查看>>
C# 获取本地电脑所有的盘符
查看>>
D3.js学习(三)
查看>>
汇编语言实验9
查看>>
window资源管理器下无法打开ftp站点
查看>>
spring特点与好处
查看>>
html 自制属性
查看>>