0


pytest基础

pytest 详情和常用插件安装

详情

pytest 是一个非常成熟的基于python大的单元测试框架(测试的是程序的最小单元:函数和方法)
python : unittest和pytest Java junit 和testing

插件

pytest 可以和所有的自动化测试工具或模块:selenium,request。appium 结合实现 web自动化 -,接口自动化,app 自动化。
还可以和allure 插件生成美观以及定制化的报告以及和jenkins实现持续集成
pytest插件
pytest
pytest-html(生成简易的HTML报告)
pytest-xdist (多线程执行)
pytest-ordering(修改测试用例执行顺序)
pytest-rerunfailures (失败用例重跑)
pytest-base-url (管理基础路径:测试环境,开发环境,线上环境)
allure-pytest (生成allure报告)
放到一个requirements.txt的文件。一次行的安装所有的插件。命令如下:-r表示递归
pip install -r requirements.txt

pytest单元框架主要用来做什么?

发现测试用例
执行测试用例
判断测试结果
生成测试报告

Pytest默认的测试用例的规则

模块名(py文件)必须以test_开头或_test结尾
测试类必须以Test开头,并且不能带有init方法(初始化方法)
测试用例必须以test开头

Pytest用例运行方式以及参数

命令行模式运行

命令:pytest
参数:-vs
-v 输出更加详细的测试用例的信息
-s 输出用例中的调试信息
示例:pytest -vs
-n 多线程运行
示例:pytest -vs -n 2
–reruns 失败用例重跑
示例:pytest -vs --reruns 2
-x 一旦出现一个用例失败则终止测试。
示例:pytest -x
–maxfail 出现指定次数的错误则终止测试。
示例:pytest -vs --maxfail 2
–html 生成简易的html报告
示例:pytest -vs --html=./reports/report.html
-k 运行包含有指定字符串的测试用例(测试用例的名称必须很规范)
test_usermanage_adduser
test_usermanage_deluser
test_usermanage_edituser
示例:pytest -vs -k " test_usermanage_edituser or test_usermanage_deluser"
指定模块运行:pytest -vs ./testcases/test_weixin.py
指定文件夹运行:pytest -vs ./testcases/weixin
通过node id运行:pytest -vs ./testcases/weixin/test_weixin.py::TestApi::test_02_add_flag

主函数模式运行

if name == ‘main’:
pytest.main([‘‐vs’])

基于pytest.ini配置文件运行

配置文件的名称是固定的,一般放在项目的根目录下。
作用是:可以改变pytest默认的测试用例的规则。
不管是命令行的方式,还是主函数的方式都会自动的读取这个配置文件去运行。

1 [pytest]
2 #命令行参数
3 addopts = ‐vs ‐‐html=./reports/report.html ‐m “smoke or user_manage”
4 #指定测试用例的路径
5 testpaths = ./testcases/weixin
6 #指定测试模块的默认规则
7 python_files = test_ * .py
8 #指定测试类的默认规则
9 python_classes = Test *
10 #指定测试用例的默认规则
11 python_functions = test_*
12 markers =
smoke:冒烟用例
user_manage:用户管理用例
在这里插入图片描述
在这里插入图片描述

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

pytest测试用例的执行顺序

默认的执行顺序是从上到下依次执行。 改变测试用例的执行顺序可以使用插件:pytest-ordering
@pytest.mark.run(order=3)

pytest跳过测试用例

1.无条件跳过
@pytest.mark.skip(reason=“这里写跳过的理由”)
2.有条件跳过
@pytest.mark.skipif(age<5,reason=“少于10年工作经验不考虑录取”)
在这里插入图片描述

pytest测试用例的前后置

def setup_class(self):
print(“在类的前面执行的操作”)
def teardown_class(self):
print(“在类的后面执行的操作”)
def setup(self):
print(“测试用例执行之前的操作”)
def teardown(self):
print(“测试用例执行之后的操作”)


本文转载自: https://blog.csdn.net/white_python/article/details/125365963
版权归原作者 white_python 所有, 如有侵权,请联系我们删除。

“pytest基础”的评论:

还没有评论