Pytest
简介
-
python单元框架
-
可以和selenium、requests、appium结合实现Web自动化,接口自动化,app自动化
-
pytest可以实现测试用例的跳过及returns失败用例重试
-
和allure生成美观二点测试报告
-
和jeckins持续集成
-
常用插件
- pytest-html: 生成html格式的自动化测试报告
- pytest-xdist:测试用例分布式执行,多cpu分发
- pytest-ordering: 用于改变测试用例的执行顺序
- pytest-rerunfailures: 用例失败后重跑
- allure-pytest 用于生成测试报告
-
默认规则:
以test_*.py *_test.py
不输出任何打印信息,-s 指令打印
参数详解
-s : 表示输出调试信息,包括print打印信息
-v: 显示跟详细的参数,, -vs 这两个可以连用
-n: 支持多线程或者分布式运行测试用例(-n 2)两个线程
–returns NUM: 失败用例重跑次数
-x: 只要一个用力报错,那么测试停止。
–maxfail=2: 出现两个用例失败就停止
-k: 指定测试用例,, -k “some_str” 比对测试函数名,
–html ‘path’ 生成html测试报告
-rA: 简单统计
-m: 标记,执行分组的标记
pytest.ini
pytest.ini 这个文件它是pytest单元测试框架的核心配置文件
1、位置:一般放在项目的根目录
2、编码:必须是ANSI
3、作用:改变默认测试行为
4、运行规则:从ini文件中读取
[pytest]
addopts = -vs
# 测试用例文件夹,可自己配置
testpaths = ./testdemo
# 配置测试的模块文件名称
python_files = test*.py
# 配置测试搜索的测试类名
python_classes = Test*
# 配置测试搜索的测试函数名
python_functions = test
标记执行顺序
pytest-ordering
@pytest.mark.run(order=3)
分组执行
smoke: 冒烟用例,分布在各个模块里面
markers =
smoke: 冒烟用例
users: 用户相关
@pytest.mark.smoke
@pytest.mark.users
pytest -vs -m "smoke"
pytest -vs -m "smoke and users"
pytest -vs -m smoke,users
跳过用例
无条件跳过
@pytest.mark.skip(reason=“reason”)
有条件跳过
@pytest.mark.skipif