pytest+allure自动化测试框架(一)
pytest是Python最流程的单测框架之一。
在本文中,我们将会介绍pytest的特点,功能和使用。
Demo
安装Python依赖库:
pip3 install pytest
pip3 install pytest-allure-adapto
文件目录:
三个pytest测试脚本(注:一定要以test_或xx_test格式,函数名称最好也参照)
@pytest.mark.parametrize 函数装饰器传参用的
@pytest.mark.parametrize("a,b,expected", testdata) def test_timedistance_v0(a, b, expected): diff = a - b assert diff == expected @pytest.mark.parametrize("a,b,expected", testdata, ids=["forward", "backward"]) def test_timedistance_v1(a, b, expected): diff = a - b print(diff) assert diff == expected @pytest.mark.parametrize("a,b,c", testdata1,ids=['1']) def test_from(a,b,c): test_f=a+b assert test_f==c @pytest.mark.parametrize("test_input,expected",[("3+5",8),("3+9",12),("3*5",8),]) def test_evel(test_input,expected): assert eval(test_input)==expected
if __name__ == '__main__':
pytest.main(['-s', '-q', '--alluredir', './report/html']) #执行改目录下的所有测试脚本且生成测试报告,生成报告肯定是非易懂的所以后面用到allure
test()
在项目目录dos执行这个命令也可以生成测试报告
pytest -s -q --alluredir report====代码里'-s', '-q', '--alluredir', './report/html'
allure部分
首先要安装allure
pip install pytest-allure-adaptor
allure-commandline下载链接
https://github.com/allure-framework/allure1/releases/download/allure-core-1.5.2/allure-commandline.zip
主要找两个目录:首先进入allure的bin目录下执行
在dos目录进入bin目录下执行(我没有设置环境变量,时间充足的童鞋或者常用的童鞋建议path下加上bin目录的环境变量)
allure generate report/ -o report/html
allure generate【reprot目录】-0 【report目录下加上html目录】
E:\untitled3\test\report -o E:\untitled3\test\report\html(这个是我的见笑~~)
执行后发现生成生成 Report文件的html文件里在使用pycharm打开可以看到生成的易懂的测试报告
(到这里pytest编写了测试脚本,allure展示了完美的测试结果报告,但是小编也是一名新生发现变更pytest代码后allure没有自动更新测试报告
比如:我之前写了10条case后来接口改造,需要做关联变成15条case但是打开测试报告后仍旧是之前10条,无奈之下小编写了一个test_api
方法,主要用来重新生成报告,自动在dos里面重新执行E:\untitled3\test\report -o E:\untitled3\test\report\html这条命令。
有解决的方案的童鞋和大神请下方评论赐教
)
可以生成pytest自己的hmtl报告 不加路径是该目录下所有测试脚本的html报告,但是小编认为不够allure完美(给领导看这个可能会大概被骂吧)
精彩文章:https://www.cnblogs.com/yrxns/p/8386267.html
https://www.cnblogs.com/xiaoxi-3-/p/9492534.html
http://www.cnblogs.com/Raul2018/p/9469323.html