基本使用
1.安装pytest
pip install pytest
2.创建py文件,编写测试用例(测试用例必须以test开头)
3.使用pytest命令运行该文件
进阶使用
1.在接口测试中,许多前置代码每一个用例都可能会用到,如开启数据库连接或清理数据。如果重复编写该代码的话会浪费很多时间,因此,我们引出了setUp与tearDown的思想。
- setUp:每条case执行前会运行该函数
- tearDown:每条用例执行后会运行该函数
2.在pytest使用setUp与tearDown
- 在pytest中使用setUp与tearDown则需要引入@pytest.fixture()这个装饰器,其声明了该函数是一个fixtrue,即其包含了setUp与tearDown的思想。
- yield关键字上面的是setUp,他会在每条用例执行前执行上面的代码。一般我们会用来创建每条用例共同使用的代码,如数据库连接。
- yield关键字下面的是tearDown,他会在每条用例执行后执行下面的代码。一般我们会用来销毁数据,如每条用例执行都需要向数据库插入数据,所以一般我们使用该代码去清理数据库的数据。
注意:使用fixtrue修饰后的函数,如果想在每条用例使用的话,必须在定义用例时,将fixtrue修饰的函数放在参数中。如果想使用setUp返回的对象,可以直接在用例中的形参进行调用
3.使用@pytest.fixture()修饰的函数存放位置
- 一般的接口测试,我们会对每一个接口创建一个py文件进行管理指定接口的测试用例,如getItems这个接口,我们会创建一个py文件test_api_getItems.py存放。因此,一般我们使用的是放在同一个接口测试文件中,因为我们连接数据库操作的表是同一张表,所以放在同一个py文件中可以。
- 其次,可以在同一模块中,创建conftest.py文件,将@pytest.fixture()修饰的函数存放在该文件中也可以被调用。pytest测试框架在运行前,会自动去运行conftest.py文件中的代码。所以被@pytest.fixture()修饰的函数会被扫描到执行。
4.@pytest.fixture()的作用范围
- fixture有4个作用范围,分别是session > module > class > function,默认function级别。
- function:每个用例执行时,都会调用一次该函数
- class:一个类里面的用例执行时,只执行一次
- module:一个py文件中的用例执行时,只执行一次
- session:同目录下,每一个py文件中的用例执行时,只执行一次
以下是实例
1.function级别
用例每次执行都会调用一次fixtrue的函数
2.class级别:
class级别中的firtrue会在执行类所有用例,只执行一次。
3.module级别:
module级别会在一个py文件中所有的用例执行时,只执行一次
4.session级别:
多个py文件中,session级别的只执行一次
------------------------------------------------------------------------------------2019-8-3 22:54--------------------------------------------------------------