前面几篇文章,
postman接口用例转化为python自动化测试用例
postman接口用例转化为python自动化测试用例(二)
postman接口用例转化为python自动化测试用例(三)
接着之前的,有人只希望改用例,不喜欢写代码,那么本篇文章呢,我们引入ddt来管理。这样就不用写代码,只需要维护用例就可以。
ddt 我们可以直接安装,
代码语言:javascript复制 pip install ddt
安装完毕,我们导入下依赖包。
ddt包含类的装饰器ddt和两个方法装饰器data(直接输入测试数据)
通常情况下,data中的数据按照一个参数传递给测试用例,如果data中含有多个数据,以元组,列表,字典等数据,需要自行在脚本中对数据进行分解或者使用unpack分解数据。
@data(a,b)
那么a和b各运行一次用例
@data([a,d],[c,d])
如果没有@unpack,那么[a,b]当成一个参数传入用例运行
如果有@unpack,那么[a,b]被分解开,按照用例中的两个参数传递.
那么我们使用第二种方式,我们看看我们的代码是怎么改造的。
代码语言:javascript复制
import requests
import unittest
from config import baseurl
from readtxt import get
import ddt
restlue=get()
@ddt.ddt
class Testcase(unittest.TestCase):
def tearDown(self) -> None:
pass
def setUp(self) -> None:
pass
@ddt.data(*restlue)
def testone(self,restlue):
url = baseurl restlue['url']
response = requests.request(restlue['method'], url, data=restlue['data'], headers=eval(restlue['headers']))
self.assertTrue(restlue['assert'] in response.text)
if __name__=="__main__":
unittest.main()
我们运行一下,看下结果。
这样我们就完成了,之前的用例文件,我们在写入一条用例,试试。
没有添加任何代码,就可以完成。有些人 不喜欢这样的测试报告,那么我们引入我们的测试报告。
https://github.com/TesterlifeRaymond/BeautifulReport
我们选择的是这个大佬的,大家可以自行选择,选择后,我们怎么去改造脚本呢,首先我们的脚本名称是test开通的, 直接修改如下:
代码语言:javascript复制if __name__=="__main__":
import os
suit=unittest.TestSuite()
loader = unittest.TestLoader()
suit.addTests(loader.discover(os.getcwd()))
filePath = 'report.html'
fp = open(filePath, 'wb')
runner = HTMLTestReportCN(
stream=fp,
title='Test Report',
description='Test Report'
)
runner.run(suit)
fp.close()
优化完毕,我们在执行下脚本,没有报错,我们看下测试报告。
再次感谢,作者开源出来这么好的测试报告,我们展示下,输出的。
当然了,大家还可以根据自己的需求进行定制开发,这里呢,我们就简单的就搭建完毕了,接下来呢,是对测试的脚本的抽离,简单的拆分成一个简易的框架,并且可以将测试结果发送出去。接下来的文章会持续关注。这个会做成一个系列的文章,欢迎大家持续关注,雷子说测试,如果你感觉文章对你或者对你身边的人有帮助,请分享出去,帮助更多的人。雷子说测试,值说最好的测试技能,贴近我们的实际应用。
测试不容易,测试不简单。
测试很容易,测试很简单。
一切相对立,一切皆本身。
一切都容易,一切皆难点。
背锅第一位,甩锅有一手。
世上无难事,只怕你测试。