当前位置: 首页 > 后端技术 > Python

据说Pytest框架比Unittest好用多了,你信吗?

时间:2023-03-26 18:42:21 Python

前言大家都知道Python有自己的单元测试框架unittest,那为什么要学Pytest呢?先了解pytestpytest的优势:pytest是一个非常成熟的全功能Python测试框架,它是unittest框架的扩展。主要特点如下:1.简单灵活,非常方便组织自动化测试用例;2.支持参数3.可以支持简单的单元测试和复杂的功能测试,比如web端selenium/移动端appnium等自动化测试,请求接口自动化测试4.pytest有很多第三方插件,并可自定义扩展,如测试报告生成、失败重跑机制5、测试用例的跳过和失败处理;6、结合业界最漂亮的测试报告allure+Jenkins,持续集成selenium:基于JavaScript代码库的自动化测试框架,通过脚本语言,模拟用户行为操作,最贴近用户真实场景,并实现了web的自动化测试。Selenium目前最流行的企业和最主流的webUI自动化框架环境搭建pipinstall-Upytestpytest-xdist#多线程pipinstall-Upytest-rerunfailures#重试运行案例spipinstallpytest-html#生成测试报告pytest--version#会显示当前安装的版本编写规则编写pytest测试样例很简单,遵循以下规则即可:测试文件以test_开头(也可以以_test结尾)测试类以Test开头,不能有init方法test_assert开头的test函数可以使用基本assert练习selenium+pytest用例importpytest#引入pytest包deftest_a():#test开头的测试函数print("------->test_a")assert1#断言成功deftest_b():print("-------->test_b")assert0#断言失败ifname=='__main__':pytest.main(['-s','class01.py'])可以包含一个或多个以Te开头的测试类st,test_开头的函数1.测试类主函数方式pytest.main(['-s','test.py'])2.命令行方式运行pytest文件路径/测试文件名3.扩展插件3.1.测试报告:pytest-htmlpytest.main(['-s','test.py','--html=./report/result.html'])表示在当前路径生成报告文件夹,result.html文件批量运行用例:pytest-xdistpytest.main(['-s','test.py','--html=./report/result.html','-n=2'])-n=2表示2个线程同时运行所有测试用例XML'])pytest测试目标文件--alluredir数据目录运行后的结果是生成xml数据集生成报告:alluregenerate--clean./report/xml/-o./results/html/第一个是数据集directory,二是生成报告目录-o是指向目标生成测试报告的目录;4.conftest配置当自动化用例越来越大时,可以共享和复用很多用例的数据,使用例脚本具有可读性,可维护性更高,比如登录等。在conftest中可以实现数据共享。py配置,比如py跨文件共享。pre-conftest.py配置脚本的名称是固定的,不能更改。不需要importconftest.py,pytest用例会自动自从使用了pytest框架以来,我就很喜欢它,深切感受到它的可扩展性和灵活性。老板再也不用担心我自动化效率低下了。以上就是本次分享的全部内容。现在想学编程的朋友欢迎关注Python技术大本营获取更多技能教程