目录
大家好我是测试达人,最近我会更新一系列pytest的框架全套教程,不比你在培训机构花的几千块买的ppt教程好吗?==白嫖真香!!
单元测试是指在软件开发当中,针对软件的最小单位(函数,方法)进行正确性的检查测试。
(1)自动化测试框架作用:
(2)Pytest单元测试框架和自动化测试框架的关系
单元测试框架:只是自动化测试框架中的组成部分之一。
pom设计模式、数据驱动、关键字驱动、全局配置文件的封装、日志监控、Selenium
和Requests
的二次封装、报告邮件、断言体系的设计封装等,都是自动化测试框架中的组成部。
Pytest是Python的⼀种单元测试框架,全功能且非常成熟,同⾃带的Unittest测试框架类似,相⽐于Unittest框架使⽤起来更简洁,效率更⾼。 Pytest测试框架,主要有以下几个特点:
skip
和xfail
处理。allure
生成非常美观的测试报告。Pytest官方文档:https://docs.pytest.org/en/latest/contents.html
(1)Unittest Unittest是Python标准库中自带的单元测试框架,Unittest有时候也被称为PyUnit,就像JUnit是Java语言的标准单元测试框架一样,Unittest框架则是Python语言的标准单元测试框架。 Unittest支持自动化测试,测试用例的初始化、关闭和测试用例的聚合等功能,它有一个很重要的特性:它是通过类(class)的方式,将测试用例组织在一起。 (2)Pytest Pytest是Python的另一个第三方单元测试库。它的目的是让单元测试变得更容易,并且也能扩展到支持应用层面复杂的功能测试。 (3)区别 1)用例编写规则:
Unittest
测试框架:
1、提供test.cases
,test suites
,test fixtures
,test rurner
相关类,让测试更加明确、方便、可控。
2、测试文件编写前,必须先导入Unittest
测试框架,import unittest
。
3、测试类必须继承unittest.TestCase
类,且测试类要Test_
开头。(可去掉横线,下同)
4、测试方法要以test_
开头。
5、测试类必须要用unittest.main()
方法执行。Pytest
测试框架:
1、基于Unittest的扩展框架,比Unittest更简洁、更高效。
2、测试文件必须test_
开头。
3、测试类命名必须以test_
开头。
4、测试方法必须test_
开头(函数也一样)。
(规则可自定义。)Unittest
:用例格式复杂,不能兼客Pytest用例。
Pytest
:用例格式简单,可以兼容Unittest用例。2)用例的前置和后置:
Unittest
测试框架:
提供了setUp/tearDowm
方法,只能针对所有用例。Pytest
测试框架:
1、Pytest提供了模块级、函数级、类级、方法级的setup/teardown
,比Unittest的setup/tearDowm
方法更活。 setup_module/teardown_module
:开始于模块始末,全局。setup_class/teardown_class
:只在类中前后运行一次(类中)。setup_function/teardow_function
:只对函数用例生效(不在类中)。setup_method/teardown_method
:开始于方法始末(在类中)。setup/teardown
:运行在调用方法的前后。2、函数前加@pytest.fixtures()
装饰器,在测试用例中使用Fixture函数。
可作用于function\module\class\session
中。
fixture
相对于setup/teardown
来说的优势,如下:
setup/teardown
。conftest.py
配置里可以实现数共享,无需import
就可自动找到配置数据,可供多个.py
文件调用。scope="module"
,可以实现多个.py
文件跨文件共享前置。scope="session"
,可以实现多个.py
文件跨文件使用一个session
来完成用例。yeild
返回,相当于teardown
的作用。3)参数化:
Unittest
测试框架:结合DDT实现参数化。Pytest
测试框架:直接使用@pytest.mark.parametrize
装饰器。4)断言:
Unittest
测试框架:可使用提供的assertEqual
,assertIn
、assertTrue
,assertFalse
断言方法。Pytest
测试框架:直接使用Python语言内置的assert
表达式。5)用例分类执行:
Unittest
测试框架:默认执行全部用例,可以通过加载testsuite
执行部分模块的用例。Pytest
测试框架:可以通过@pytest.mark
来标记测试用例,执行命令前加上参数”-m”,即可运行标记的用例。6)失败重运行:
Unittest
测试框架:无。Pytest
测试框架:支持用例执行失败重跑,提供了pytest-rerunfailures
插件。7)报告:
Unittest
测试框架:使用HTMLTestRunnerNew
库生成测试报告。Pytest
测试框架:使用pytest-HTML
、allure
插件生成测试报告。那么在这里我也精心准备了上述大纲的详细资料在下方链接如下
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。