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

点击网址 进入即可

 

 posted on 2020-03-11 23:45  Lverson_tester  阅读(154)  评论(0编辑  收藏  举报