python自动化测试用例之----引入ddt数据驱动

2021-03-15 16:11:44 浏览数 (1)

前面几篇文章,

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()

优化完毕,我们在执行下脚本,没有报错,我们看下测试报告。

再次感谢,作者开源出来这么好的测试报告,我们展示下,输出的。

当然了,大家还可以根据自己的需求进行定制开发,这里呢,我们就简单的就搭建完毕了,接下来呢,是对测试的脚本的抽离,简单的拆分成一个简易的框架,并且可以将测试结果发送出去。接下来的文章会持续关注。这个会做成一个系列的文章,欢迎大家持续关注,雷子说测试,如果你感觉文章对你或者对你身边的人有帮助,请分享出去,帮助更多的人。雷子说测试,值说最好的测试技能,贴近我们的实际应用。

测试不容易,测试不简单。

测试很容易,测试很简单。

一切相对立,一切皆本身。

一切都容易,一切皆难点。

背锅第一位,甩锅有一手。

世上无难事,只怕你测试。

0 人点赞