Python+Pytest框架在Jenkins上生成Allure测试报告

在自动化测试执行之后,生成一个美观大方的测试报告,也是测试过程中,非常最要的一环 。测试报告直接反应了测试过程中发现的问题,分析测试报告是解决问题的最重要手段 。那么一个专业的测试报告应该长什么样呢?废话不多说,直接上图:

Python+Pytest框架在Jenkins上生成Allure测试报告

文章插图
 
在上面这张测试报告中,整体用中文显示,易于阅读;左侧导航栏包含总览、分类、测试用例列表、图表等多个模块;右侧的总览页面中包含了用例数、成功率、历史趋势图、用例分类等多张表格;页面布局简约大方 。
那么如何生成这样一份测试报告呢?
第一步,安装Python依赖库 。两种方式任选其一,第一种在dos窗口中,输入下面三个命令:
· pip3 install pytest
· pip3 install allure-python
· pip3 install allure-python-commons
第二种方法,打开Pycharm,点击File,点击Settings,选择project interpreter,点击右上角+加号按钮,搜索并选择pytest,点击install package;搜索allure,分别选择allure-python和allure-python-commons,点击install package 。如下图 。
Python+Pytest框架在Jenkins上生成Allure测试报告

文章插图
 
第二步,安装好依赖库以后,下载并解压allure命令行工具,用于后面步骤执行allure命令,下载地址一:https://pan.baidu.com/s/1YkgYpvfmH_I26ZPAJ1OF0A;下载地址二:https://github.com/allure-framework/allure-pytest 。把解压后的allure文件夹,设置成环境变量 。添加allure到环境变量PATH(安装路径allure-commandlinebin) 。
Python+Pytest框架在Jenkins上生成Allure测试报告

文章插图
 
第三步,确认allure安装成功,在命令行输入:allure --version,能展示allure安装版本2.12.1即可 。如果报错,可能是因为电脑中没有安装jdk1.8造成的,这时安装一个jdk1.8就好了 。
第四步,通过pytest编写自动化测试脚本,如下图 。编写pytest测试用例非常简单,只需要按照下面的规则:
· 测试文件以test_开头
· 测试类以Test开头
· 测试函数以test_开头
Python+Pytest框架在Jenkins上生成Allure测试报告

文章插图
 
第五步,执行测试用例 。点击Pycharm底部Terminal;或者打开dos窗口,切换到当前项目文件夹下,执行命令 pytest -s -q 。Terminal应该能正常显示打印结果如下 。
Python+Pytest框架在Jenkins上生成Allure测试报告

文章插图
 
第六步,为了测试报告内容丰满,可以用第五步的方法,多创建一些测试用例 。如下图,也可以把用例放到多个包里面 。
Python+Pytest框架在Jenkins上生成Allure测试报告

文章插图
 
第七步,创建好测试用例以后,在Terminal中执行命令:pytest -s -q --alluredir allure-xml 。这时就会运行测试用例 。-s表示允许终端在测试运行时输出结果,-q表示简化输出结果,--alluredir表示把生成的中间结果保存到allure-xml文件夹 。
第八步,等测试用例执行完毕 。继续在Terminal中执行命令:allure generate allure-xml -o allure-report --clean 。这样就会根据allure-xml文件夹里的中间结果在allure-report文件夹中生成一个测试报告 。
Python+Pytest框架在Jenkins上生成Allure测试报告

文章插图
 
第九步,右键allure-report文件夹中的index.html文件,选择open in browser,再点击一个浏览器,比如chrome 。
Python+Pytest框架在Jenkins上生成Allure测试报告

文章插图
 
第十步,这时一个美观的测试报告就会显示如下了,快试试吧 。
Python+Pytest框架在Jenkins上生成Allure测试报告

文章插图
 
进阶篇--定制报告
这时,点击左侧导航栏中的'功能',展开以后,测试结果显示如下:
Python+Pytest框架在Jenkins上生成Allure测试报告

文章插图
 
在这里,我们可以看到所有的测试用例直接显示为方法名,这样的可读性不好 。我们可以通过allure自带的装饰器给这些测试用例重新用中文起名,并且分类 。如下图:
Python+Pytest框架在Jenkins上生成Allure测试报告

文章插图
 
为了实现上图的样式:allure提供了如下几个装饰器 。@allure.feature('前台子系统') 表示第一层分组,一般用来表示测试用例属于哪个模块 。@allure.story('注册功能')表示第二层分组,一般用来表示测试用例属于哪个功能 。@allure.title('正常注册测试')用来表示测试用例的标题 。@allure.description('输入正确的用户信息,注册账号')用来显示测试用例中的描述信息 。具体代码如下图:


推荐阅读