在接口测试过程中,针对同一个接口的测试往往只是数据不同,其他形式都相同,这种情况下就可以使用ddt模块,将类型相同的测试数据封装在一起再批量执行,需要注意的是这种情况下要将正反用例分来写,否则断言会冲突。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import unittest
import requests
import ddt
#定义简书的主地址
host = 'http://www.jianshu.com'
#定义简书中两篇文章的资源编号
case_data = ('48e258706b9f','868f71205a7f')
#在类名前面添加ddt修饰
@ddt.ddt
class HomePage(unittest.TestCase):
def setUp(self):
print('开始测试,在这里做环境初始化')
def tearDown(self):
print('测试结束,在这里做数据还原')
#在用例前调用测试数据
@ddt.data(*case_data)
def test_case_01(self,data):
#访问简书中的文章
str_main = '/p/'
test_url = host + str_main + data
response = requests.get(test_url)
result = response.text
print('data的值为 :%s'%data)
print('请求url地址:%s'% test_url)
self.assertIn('unittest',result,msg='断言失败')
if __name__ == '__main__':
unittest.main()
代码运行效果(有多少个参数,case就会执行多少次):
02.png