pytest入门与基础用法

官方文档:https://docs.pytest.org/en/stable/getting-started.html  

简介:

pytest是python的一个单元测试框架,类似python自带的unittest测试框架,但是比unittest框架使用起来更简洁,效率更高。   特点:
  • 命令行工具,容易上手,入门简单,编写用例简单,可读性强
  • 可以直接采用assert进行断言,不需要记忆self.assertEqual()等
  • 支持参数化(pytest.mark.parametrize)
  • 易于持续集成,适用于接口自动和UI自动化
  • 扩展性强,支持扩展第三方插件
  • 执行测试过程中可以将某些测试跳过(skip),或者对某些预期失败的case标记成失败(xfail)
  • 支持重复执行(rerun)失败的case
  • 可以运行nose, unittest编写的测试case
  • 可生成html报告(pytest-html或allure)
  • 可支持执行部分用例(marker)

安装:

#前提:已安装pip,可通过以下命令判断是否安装
pip --version
#安装
pip install -U pytest
#查看pytest版本
pip show pytest
 

基础用法:

1、用例设计规则:

测试文件的文件名必须以"test_"开头,或者以"_test"结尾 测试类命名必须以"Test"开头 测试函数名必须以"test"开头 测试类里面不能使用"__init__"方法  

2、断言方法:

基本的assert   简单示例: pytest入门与基础用法

 

 

3、pytest运行规则:

1、直接pytest,查找当前目录及其子目录下所有符合规则的文件,类,方法,函数并全部执行; 2、pytest 文件名.py,单独执行某个python文件 3、pytest 文件名.py::类名,单独执行某个文件中的某个类 4、pytest 文件名.py::类名::方法名,单独执行类中的某个方法   注意: pytest用例执行是乱序的,如需指定用例的顺序,可使用pytest-ordering插件,在测试用例的方法前加上装饰器@pytest.mark.run(order=[num]) ,将按照num 值的大小顺序从小到大来执行

 

4、运行参数:

可使用pytest --help查看帮助文档 pytest入门与基础用法

 

 个人常用到的参数:

pytest入门与基础用法

 

 

 5、参数化:

使用@pytest.mark.parametrize() 进行参数化 pytest入门与基础用法

 

 

6、框架结构:

在pytest中,可与unittest一样,在执行用例前后执行 setup,teardown 来增加用例的前置和后置条件 pytest的setup,teardown按照用例运行级别可分为以下几类:
模块级(setup_module/teardown_module)在模块始末调用
函数级(setup_function/teardown_function)在函数始末调用(在类外部)
类级(setup_class/teardown_class)在类始末调用(在类中)
方法级(setup_method/teardown_methond)在方法始末调用(在类中)
方法级(setup/teardown)在方法始末调用(在类中)

7、fixture:

(1)fixture作为函数参数: 例如测试用例1需要登录,测试用例2不需要,测试用例3需要,则可用fixture作为函数参数来控制: pytest入门与基础用法

 

 

(2)fixture指定范围共享: 除了用setup,teardown控制用例的前置后置外,还可用fixture功能自定义用例的前置后置
根据作用范围大小划分:session> module> class> function,具体作用范围如下:
function 函数或者方法级别都会被调用
class 类级别调用一次
module 模块级别调用一次,即一个文件调用一次
session 是多个文件调用一次(可以跨.py文件调用,每个.py文件就是module)
  使用方法: fixture函数前增加@pytest.fixture(scope="module") 测试用例前增加@pytest.mark.usefixtures("fixture函数名")   注意: 1、fixture函数可以放在单独的测试文件里,不与测试用例同一个文件 2、如果希望多个测试文件共享fixture,可以放在某个公共目录下新建一个conftest文件,将fixture放在里面 3、测试用例函数的参数列表包含fixture函数名字,pytest就可以检测到了,检测顺序:优先搜索该测试用例所在的文件,然后搜索conftest.py,并在测试函数运行之前执行该fixture函数。   注:fixture功能是pytest的特色功能,功能极为强大,具体使用可查看官方文档。

上一篇:vue3中获取setup的返回值类型


下一篇:Vue3.0的新语法糖-script setup