pytest入门使用二

一、pytest   分组划分测试(分阶段、分模块、分接口和web执行)

 (1)编写ini配置文件,noteopad++  进行ansi编码,添加markers   自定义测试阶段、模块、接口等等

 (2)添加addopts  = -vs  -m   "usermanage"    运行多个接口或者模块  添加addopts  = -vs  -m   "usermanage  or  smoke"

   (3)  运行指定模块usermanage,只会运行一条用例

 (4)跳过某条用例 @pytest.mark.skip()    如果添加原因标记:使用reason(非必填)

 (5)通过 pip install pytest-html,创建report 空文件夹,编写ini配置文件,noteopad++  进行ansi编码,addopts = -vs -m  "usermanage"   --html ./report/report.html

  示例代码:

 

 

 

 

二、 pytest  使用@pytest.fixture()装饰器来实现部分用例的前后置

@pytest.fixture(scope="",params="",autouse="",ids="",name="")

(1) scope 表示的是@pytest.fixture标记的方法的作用域,function(默认),class,module,package/session

(2) params:参数化

(3) ids:当地使用params参数化时,给每一个值设置一个变量名,意义不大

(4)name:给表示的是被@pytest.fixture标记的方法去一个别名

示例代码:

ini的配置文件信息不变

 

2.(1)当autouse=False时,@pytest.fixture(scope="function",autouse=False,params=['zhangsan','lisi']) 只作用于用例test_01

   (2)当autouse=True时,@pytest.fixture(scope="function",autouse=True,params=['zhangsan','lisi'])   作用于test_01 和  test_02

 

 

 

 

3.当autouse=True或者False时,@pytest.fixture(scope="module",autouse=True,params=['zhangsan','lisi'])   作用于test_01 和  test_02,前后置操作执行一次

 

(4)params:参数化,params=['zhangsan','lisi'],传递给 my_fixture中的request参数,通过return语句返回获取到的参数。

示例代码:

 

(5)通过conftest.py  和 @pytest.fixture()结合使用实现全局的前置应用(比如:项目的全局登录,模块的全局处理)

1.conftest.py文件是单独存放的一个夹具配置文件,名称是不能更改

2.用处可以在不同的py文件中使用同一个fixture函数

3.原则上conftest.py需要和运行的用例放在同一层,并且不需要做任何的import导入的操作

示例代码如下:

 

 

 

posted @ 2021-05-08 14:23  微风轻哨  阅读(128)  评论(0编辑  收藏  举报