pytest官网:https://docs.pytest.org/en/latest/
pycharm中切换Test Runner到pytest
简单例子:assert 用作断言
def inc(x): return x + 1 def test_answer(): assert inc(3) == 5
1、分组执行
在测试用例上添加:@pytest.mark.xxx,xxx是自己定义的名字
通过命令行 进行分组执行:pytest -m "xxx";想要同时执行多个分组:pytest -m "xxx yyy"
2、参数化
测试用例上添加:@pytest.mark.arametrize()
通过参数化,可以高效的执行测试用例
优点:断言灵活性高,如果一个测试用例中的某一个assert报错,那么它不会执行后面的assert;但是参数化可以避开这个问题,会执行完所有的assert
@pytest.mark.parametrize("number1, number2, expect", { (10, 2, 5), (10, 5, 2), (10000000, 1, 10000000) }) def test_param(number1, number2, expect): assert div(number1, number2) == expect
3、报告生成:
pytest-html:现在几乎不用
allure2:优美
1)下载allure
mac上执行 brew install allure,前提电脑装过Homebrew ,也可以去git上下载并配置环境变量
2)项目-preferences-ProjectInsterpreter-搜索并安装 allure-pytest
先执行命令pytest --junitxml=pytestdemo/junit.xml pytestdemo,在pytestdemo文件下生成 junit.xml文件
在执行 pytest --junitxml=pytestdemo/junit.xml --alluredir=pytestdemo/allure_result pytestdemo/ ,生成allure_result 文件
3)执行命令:allure serve pytestdemo/allure_result/
4)查看报告
5)保存报告 到/tmp/allure_html/中
allure generate pytestdemo/allure_result/ -o /tmp/allure_html
6)open /tmp/allure_html,打开报告所在文件
7)因为报告都是基于js文件的,所以要把报告生成一个网站,才能成功打开
命令执行 python -m CGIHTTPSerer
python3的话,用命令 python -m http.server
点击网址 进入即可