Pytest--详解01

何为pytest?

基于python的单元测试框架.用来发现测试用例、执行测试用例、判断测试结果、生成测试报告

1.相关插件:

  pytest 自己

  pytest-html 生成测试报告

  pytest-xdist 多线程执行

  ytest-rerunfailures 执行重跑

  pytest-ordering 修改执行顺序

  pytest-base-url  管理基础路径

  allure-pytest 生成测试报告

  安装插件:

  (1)新建requirements.txt文件,将上述插件放入文档(不需要复制中文)

  (2)执行:pip install -r requirements.txt

2.pytest的执行规则:

  模块名必须使用test_或者_test结尾(.py文件)

  测试类必须用Test开头

  测试用例必须使用test开头

3.pytest用例的运行方式以及参数

  (1)

  -vs    

    -v输出更加详细测试信息

    -s输出用例中的调试信息  

    pytest -vs

  -n 多线程运行  pytest -vs -n 3

  --reruns 失败用例重跑  pytest -vs --reruns 2

  -x 一旦出现失败终止测试 pytest -x

  --maxfail 出现指定错误终止 pytest -vs --maxfail 2

  --html 生成简易测试报告  pytest -vs --html=./reports/reports.html

  指定模块运行:pytest -vs ./testcases/test_weixin.py

  指定文件夹运行:pytest -vs ./testcases

  通过node id运行:pytest -vs ./testcases/weixin/test_weixin.py::TestApi::test_02_add_flag

 

  (2)主函数的方式运行

  首先在,当前目录建立一个run,py文件,添加一个main函数,多个参数使用列表的方式添加

if __name__ == '__main__':
    pytest.main(['-vs','-n 2'])

 

  (3)使用基于python.ini文件运行

    一、配置文件的名称是固定的,一般放在项目的根目录下

    二、作用:可以改变pytest默认的用例执行规则

    三、不管是命令行的方式,还是主函数的方式都会自动读取该配置文件去运行。

[pytest]
addopts = -vs --html=./reports/reports.html -m ''smoke or manage''
testpaths = ./testcases #指定测试用例路径
python_files = test_*.py  #指定模块
python_classes = Test* #指定测试类
python_functions = test_* #指定测试用例默认规则
markers =
    smoke:冒烟
    user_manage:管理

  注意: 1.一旦有编码错误,那么需要改成gb2312的编码格式或者是不写中文注释。 2.必须在测试用例上面加上标记。

4.执行顺序

  默认测试顺序是从上到下依次执行,改变测试用例的执行顺序使用: @pytest.mark,run(order=1)   1、2、3表示执行顺序

5.跳过用例

  无条件: @pytest.mark.skip(reason=''用例无条件跳过)

  有条件:@pytest.mark.skip(age < 5,reason=''年龄小于五年的不用)

6.测试用例的前后置

def setup_class(self):
print("在类的前面执行的操作")

def teardown_class(self):
print("在类的后面执行的操作")

def setup(self):
print("测试用例执行之前的操作")

def teardown(self):
print("测试用例执行之后的操作")

  

  每篇一句:

  我把青春放在那个角落里,蒙了厚厚一层灰,你怎么又帮我拿出来,吹了一下。

posted on 2021-11-24 22:31  Titen  阅读(106)  评论(0编辑  收藏  举报

导航