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='')