day11-python学习笔记(二十六)yaml,ddt

YAML文件存放传给接口的数据(用例),可转变成python的字典以及list
YAML文件内容:

username : niuhanyang #可以转换成字典
passwd : 123456
port : 3306

databases : #转换成嵌套的字典
test : 192.168.1.2
dev : 192.168.1.3
pre : 192.168.1.5

tester : #可以转换成list
- 马佩佩
- 小傅
- 璐璐

处理yaml.py
# import yaml,json
# f = open('login.yml',encoding='utf-8')
# print(json.dumps(yaml.load(f),indent=3))

# import yaml
# f = open('abc.yml',encoding='utf-8')
# print(yaml.load(f))

import yaml,json
f = open('login.yml',encoding='utf-8')
print(json.dumps(yaml.load(f),indent=3))
 
ddt使用
import ddt  #ddt是数据驱动的模块
import unittest,requests
import BeautifulReport


@ddt.ddt
class MyCase(unittest.TestCase):
# @ddt.data(1,2,3)
# def testa(self,num):
# self.assertTrue(num>2)
#
# @ddt.data([3,2],[4,3],[5,3])
# @ddt.unpack#将list分解,解包操作
# def testb(self,num,num2):
# self.assertTrue(num>num2)
@ddt.file_data('login.yml')
@ddt.unpack
def test_run(self,**kwargs): #一个*代表list,**代表字典
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:
requests.get(url,params=data,headers=header, cookies=cookie)#params是把参数拼到url后面
#self.assertEqual(check.get('error_code'),r.json().get('error_code'))  
        for c in check:
self.assertIn(c, r.text)



if __name__ == '__main__':
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(MyCase))
report_html = BeautifulReport.BeautifulReport(suite)
report_html.report(log_path='.',filename='my_report',description='用例描述')
 

转载于:https://www.cnblogs.com/flynn0825/p/8638133.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值