python测试框架pytest,pytest测试框架和unittest
目录1、什么是unit test框架2、单元测试框架主要做什么3、单元测试框架与自动化测试框架的关系4、Pytest框架的描述5、Pytest框架与Unittest框架的区别(1)Unittest(2)Pytest(3)区别
1.什么是单元测试框架?
单元测试是指检查和测试软件开发中最小单元(功能、方法)的正确性。
2.单元测试框架主要做什么?测试发现:从多个文件中找到我们需要的测试用例。执行:按照一定的顺序和规则执行测试用例,并生成结果。判断:通过断言判断预期结果与实际结果的差异。测试报告:统计测试进度、耗时、通过率等数据,生成测试报告。3.单元测试框架和自动化测试框架的关系是什么(1)自动化测试框架作用:
提高测试效率,降低自动化用例的维护成本。减少人工干预,提高测试的准确性,增加代码的可重用性。核心思想是,不懂代码的人可以通过这个框架实现自动化测试。(2)Pytest单元测试框架和自动化测试框架的关系
单元测试框架:它只是自动化测试框架的组成部分之一。
Pom设计模式,数据驱动,关键字驱动,全局配置文件的封装,日志监控,Selenium和请求的二次封装,报表邮件,断言系统的设计和封装等。都是自动化测试框架的组件。
4.Pytest测试框架描述Pytest是Python的一种单元测试框架,功能齐全,非常成熟。它类似于Unittest测试框架,这使得它比Unittest框架更简洁和高效。
Pytest测试框架具有以下特点:
Py是一个非常成熟的Python单元框架,比Unittest更加灵活易用。
Pytest支持参数化配置。
Pytest可以支持简单的单元测试和复杂的功能测试,也可以与Selenium、Requests和Appium结合,实现web自动化、界面自动化和APP自动化。
在测试执行期间,可以跳过一些测试,或者将一些预计会失败的案例标记为失败。还支持失败案例的重复执行。(跳过用例并重新运行失败的用例,然后重试)
也就是说,它支持测试用例的skip和xfail处理。
Py可以很好的和詹金斯持续融合。
Py可以生成漂亮的具有诱惑力的Pytest报表。
Unittest框架的用例可以在Pytest框架下执行。
Py有很多非常强大的第三方插件,这些插件可以实现很多实际操作。
您还可以定制Pytest插件。
Py官方文件:https://docs.pytest.org/en/latest/contents.html
5.Pytest框架和Unittest框架的区别(1)Unittest Unittest是Python标准库自带的单元测试框架。Unittest有时也叫PyUnit,就像JUnit是Java语言的标准单元测试框架,unit test framework是Python语言的标准单元测试框架。
Unittest支持自动测试、测试用例的初始化和关闭、测试用例的聚合等功能。它有一个非常重要的特点:它通过类的方式将测试用例组织在一起。
(2)Pytest Pytest是Python的另一个第三方单元测试库。它的目的是使单元测试变得更容易,它也可以被扩展以支持应用程序级的复杂功能测试。
(3)差额1)用例编写规则:
Unittest测试框架:
1.提供测试用例、测试套件、测试夹具和测试运行器相关的类,使测试更加明确、方便和可控。
2.在编写测试文件之前,必须先导入unittest测试框架,导入Unittest。
3.测试类必须继承unittest。TestCase类,测试类应该以Test_开头。(横线可以去掉,下同)
4.测试方法应该从test_开始。
5.测试类必须用unittest.main()方法执行。
Pytest测试测试框架:
1.基于Unittest的扩展框架比Unittest更简洁高效。
2.测试文件必须以test_开头。
3.测试类名必须以test_开头。
4.测试方法必须以test_开始(函数也是如此)。
(规则可以自定义。)
总结:
Unittest:用例的格式比较复杂,所以不能并发使用Pytest case。
Pytest:用例格式很简单,并且可以与Unittest用例兼容。
2)用例的前置和后置:
Unittest测试框架:
提供了SetUp/tearDowm方法,只能用于所有用例。
Pytest测试测试框架:
1.Pytest提供模块级、函数级、类级、方法级的setup/teardown,比Unittest的setup/teardown方法更主动。
level setup _ module/tear down _ module:从模块的开头到结尾,是全局的。类setup_class/teardown_class:在类的前后只运行一次(在类中)。函数级setup _ function/tear row _ function:仅对函数用例有效(不在类中)。方法级setup_method/teardown_method:从方法的开头和结尾开始(在类中)。类中的安装/拆卸:在调用方法之前和之后运行。2.添加@pytest。Fixtures()修饰在函数之前,并在测试用例中使用fixture函数。
可以在函数\模块\类\会话中使用。
夹具相对于安装/拆卸的优势如下:
命名方法是灵活的,并不限于安装/拆卸。Conftest.py配置可以实现数据共享,配置数据无需导入即可自动找到,可以被多个调用。py文件。Scope=module ,它可以实现多个。跨文件复制文件。Scope=session ,多个。py文件可以实现为跨文件使用一个会话来完成用例。用yeild返回,相当于teardown。3)参数化:
Unittest测试框架:结合DDT实现参数化。
Pytest测试框架:直接使用@ pytest . dcdyx . parameter ize decorator。
4)断言:
Unittest测试框架:可以使用提供的assertEqual、assertIn、assertTrue和assertFalse断言方法。Pytest测试框架:直接使用Python语言内置的assert表达式。5)用例分类执行:
Unittest框架:默认执行所有用例,通过加载testsuite可以执行模块的部分用例。Pytest测试框架:可以通过@ pytest.dcdyx标记测试用例,可以在执行命令之前,通过添加参数-m 来运行标记的用例。6)失败重运行:
Unittest测试框架:无。Pytest测试框架:支持用例执行失败的重新运行,并提供pytest-rerunfailures插件。7)报告:
Unittest测试框架:使用HTMLTestRunnerNew库生成测试报告。
Pytest测试框架:使用pytest-HTML和allure插件生成测试报告。
参考:https://www.cnblogs.com/cuitang/p/11635103.html
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。