您的位置:首页 > 其它

pytest测试框架梳理

2019-08-03 22:55 387 查看

基本使用

1.安装pytest

   pip install pytest

2.创建py文件,编写测试用例(测试用例必须以test开头)

3.使用pytest命令运行该文件

 

进阶使用

1.在接口测试中,许多前置代码每一个用例都可能会用到,如开启数据库连接或清理数据。如果重复编写该代码的话会浪费很多时间,因此,我们引出了setUp与tearDown的思想。

  1. setUp:每条case执行前会运行该函数
  2. tearDown:每条用例执行后会运行该函数

 

2.在pytest使用setUp与tearDown

  1. 在pytest中使用setUp与tearDown则需要引入@pytest.fixture()这个装饰器,其声明了该函数是一个fixtrue,即其包含了setUp与tearDown的思想。
  2. yield关键字上面的是setUp,他会在每条用例执行前执行上面的代码。一般我们会用来创建每条用例共同使用的代码,如数据库连接。
  3. yield关键字下面的是tearDown,他会在每条用例执行后执行下面的代码。一般我们会用来销毁数据,如每条用例执行都需要向数据库插入数据,所以一般我们使用该代码去清理数据库的数据。

注意:使用fixtrue修饰后的函数,如果想在每条用例使用的话,必须在定义用例时,将fixtrue修饰的函数放在参数中。如果想使用setUp返回的对象,可以直接在用例中的形参进行调用

 

3.使用@pytest.fixture()修饰的函数存放位置

  1.       一般的接口测试,我们会对每一个接口创建一个py文件进行管理指定接口的测试用例,如getItems这个接口,我们会创建一个py文件test_api_getItems.py存放。因此,一般我们使用的是放在同一个接口测试文件中,因为我们连接数据库操作的表是同一张表,所以放在同一个py文件中可以。
  2.      其次,可以在同一模块中,创建conftest.py文件,将@pytest.fixture()修饰的函数存放在该文件中也可以被调用。pytest测试框架在运行前,会自动去运行conftest.py文件中的代码。所以被@pytest.fixture()修饰的函数会被扫描到执行。

 

4.@pytest.fixture()的作用范围

  1. fixture有4个作用范围,分别是session > module > class > function,默认function级别。
  2. function:每个用例执行时,都会调用一次该函数
  3. class:一个类里面的用例执行时,只执行一次
  4. module:一个py文件中的用例执行时,只执行一次
  5. session:同目录下,每一个py文件中的用例执行时,只执行一次

以下是实例

1.function级别

用例每次执行都会调用一次fixtrue的函数

 

2.class级别:

class级别中的firtrue会在执行类所有用例,只执行一次。

 

3.module级别:

module级别会在一个py文件中所有的用例执行时,只执行一次

 

4.session级别:

多个py文件中,session级别的只执行一次

 

------------------------------------------------------------------------------------2019-8-3 22:54--------------------------------------------------------------

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: