1. pytest是三方库,需要安装
pip install pytest
2. 使用 pytest 框架,命名需要按照一定格式命名
- py文件名需要以“test_”开头,或者以“_test”结尾,但是不能同时满足
- 测试类名,需要以“Test”开头
- 测试用例方法需要以“test_”开头
- 测试类中不可以有“__init__”构造方法
3. pytest 会自动收集用例,自动收集当前目录及子目录下符合命名规范的用例
当前在 test_a.py 文件,用例会收集“test_a.py”,“test_b.py”和“test_c.py”;如果当前在 “test_b.py”文档,则会收集“test_b.py”和“test_c.py”,不会收集上级目录下的“test_a.py”
4. 程序执行方式
- a. 右击类中用例名并选run "pytest ...",则只执行该用例,b. 右击类中的空白区域,并选run "pytest ...",该类中用例都会执行
- 使用main函数,pytest,main(),只收集并执行该用例类中的所有用例
- 命令行,Terminal进入目录下,执行"pytest",收集该目录及子目录下的所有用例
5. mark功能,标记用例,灵活执行用例
- 可以在用例类上面加装饰器,“@pytest.mark.demo”
- 可以在用例方法上加装饰器,“@pytest.mark.success”
执行时,
- pytest -m "success",即执行标记为success的用例,
- pytest -m "success and demo",即执行标记即是success,又是demo的用例
- pytest -m "demo and not success",即执行标记是demo,但不是success的所有用例
注意:“success”,一定要双引号,不可以用单引号
6. skip 和 skipif
在用例上加装饰器:
@pytest.mark.skip(reason="跳过原因"),即可跳过执行该用例
@pytest.mark.skipif(a==1, reason="跳过原因"),当a==1成立时,跳转执行该用例
7. 生成 html 报告
- 安装 html 报告插件,pip install pytest-html
- 运行时增加参数,pytest -s --html=demo.html,在当前目录下生成 demo.html 文件,路径可以自定义