一、Allure介绍
Allure是一款非常轻量级并非常灵活的开源测试报告生成框架,能够生成美观易读的报告。它支持绝大多数测试框架,如:TestNG,Pytest,JUint等。简单易用,易于集成。
1、配置说明
1.1、Pytest框架集成Allure
pytest是Python的单元测试框架,非常方便易用。以下将介绍Allure集成到pytest中生成测试报告。
1.2、安装Allure Pytest Adaptor
Allure pytest adaptor是pytest的一个插件,通过它来生成Allure所需要的用于生成测试报告的数据。
安装命令:pip install pytest-allure-adaptor
使用:
在配置文件pytest.ini中添加参数即可。
–alluredir ./report #代表生成数据到report路径下
[pytest]
addopts=-s --alluredir ./report
python_files=test_*.py
python_classes=Test_*
此时生成的是json或xml文件!!!(allure生成的是json,adaptor生成的是xml)
1.3、转化成html可视化报告
安装Allure;
1.下载压缩包:allure-2.xx.x.zip
2.解压
3.将解压的bin目录配置到path系统环境变量
将json或xml转换成html测试报告:
-
1.进入report上级目录执行命令:
allure generate ./report/ -o ./report/result --clean
(allure generate生成报告的固定用法;将当前目录下的report目录下的测试数据生成html测试报告,并且放到report的result目录下。–clean是先清空该目录下的测试报告生成新的报告) -
2.report/html目录下会生成index.html文件,即为可视化报告
-
3.打开报告:allure open -h 127.0.0.1 -p 8883 ./report/result
为啥直接用浏览器打开测试数据不会正常显示出来呢??一直显示loading状态?
原因:index.html需要结果allure渲染之后,打开才能正常显示测试结果
解决方案:
两种方法:①allure open ; ②allure server。 前者用于在本地渲染和查看结果,后者用于在本地渲染后对外展示结果。这里我们使用allure open。在Terminal运行命令 allure open ./report/result(./report/result为alluer报告地址),如果不想每次都写命令,直接在main函数中执行.
1.4、allure.step
给测试脚本添加测试步骤或注释,让测试报告更加清晰明了。
from urllib import request
import allure
import pytest
class Test_adb():
def test_3(self):
print('\n333333333')
@allure.step("第一步:测试test4")
@pytest.mark.parametrize(argnames="data_test",argvalues=[(1,2,3),(4,5)],indirect=False,ids=None,scope=None)
def test_4(self,data_test):
print(data_test)
print('\n4444444444')
@allure.step("第一步:测试test5")
def test_5(self):
print('\n5555555555')
if __name__=='__main__':
pytest.main("test_12.py")
result展示:
1.5、allure.attach
添加测试描述信息。目的:能够清楚知道每一步执行的信息。
方法:
allure.attach(“描述”,“需要强调的内容”)
注意:两个参数必备!!!
@pytest.mark.run(order=1)
def test_34(self):
print('343434')
allure.attach("错误信息:","test34断言失败")
assert 1>2
1.6、allure.severity设置错误级别
添加严重级别。
目的:测试用例设置不同的严重级别,可以帮助测试和开发人员更直观的关注重要case。
方法:
@allure.severity(Severity)
参数解释:
Severity :严重级别(BLOCKER,CRITICAL,NORMAL,MINOR,TRIVIAL)
使用方法:
@allure.severity(allure.severity_level.CRITICAL)
@pytest.mark.run(order=1)
@allure.severity(allure.severity_level.CRITICAL)
def test_34(self):
print('343434')
allure.attach("错误信息:","test34断言失败")
assert 1>2
result:
allure说明:https://developer.aliyun.com/article/776633
FAQ
1、allure是自己生成数据,将生成的数据转化成report,并不是将pytest-html插件的结果转成图表,注意!!!
allure生成报告后,没有数据??
原因:pytest.main中指定的allure报告目录与通过allure generate将临时文件生成报告的路径不一致
allure是自己生成数据后,再将数据转换成html,生成命令是:addopts=-s --alluredir ./report
千万不要跟pytest的html报告搞混了
二、Jenkins集成介绍
Jenkins是一个开源软件项目,是基于java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
1、安装配置
安装:
1.jar包方式安装
安装依赖于java环境,必须首先在系统中安装jdk1.5版本以上,并且配置在系统环境变量中。
安装方式:
- 下载jenkins.jar
- 移动到要安装的目录,执行java -jar jenkins.war
- 打开浏览器输入:localhost:8080
2.源码包安装
- 官网下载jenkins安装包:点这里!
- 傻瓜式安装好后,手动打开浏览器:localhost:8080
- 安装各种插件
密码在这个路径下:C:\ProgramData\Jenkins.jenkins\secrets\initialAdminPassword
在github上创建一个仓库,并将本地代码上传:
echo "# qpp_pytest" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/ashelyqi/qpp_pytest.git
git push -u origin main
上传代码的具体步骤操作见:点这里!!
2、jenkins构建项目流程
2.1、jenkins安装allure插件
1.在jenkins系统管理->插件管理,点击可选插件
2.搜索Allure,选中安装
2.2、jenkins安装Allure commandline工具
1.进入Jenkins系统管理->全部工具安装
2.找到allure commandline ,点击安装
3.输入别名,并点击新增安装–选择解压*.zip/*.tar.gz
4.解压目录选择已下载好的allure-xx.zip包所在目录(一定要注意选择的版本要与实际安装的一致)
5.点击保存即可
2.3、jenkins新建一个项目
1.选择新建一个自由风格项目
2.输入项目描述,并进行源码管理配置。Repository URL指的是我们的github上的项目路径。
3.然后添加jenkins,输入github的账号登录到github,连接两个平台。
2.4、构建触发器
1、勾选构建触发器的Poll SCM #根据定时任务,查看github版本是否更新,如果更新则自动构建项目。
2、输入crontab命令:如*/1 * * * * 表示每分钟检查一次。每个*分别代表分时天周月。
2.5、构建pytest的执行命令
jenkins自动执行测试构建的新代码。
2.6、构建后生成测试报告以及bug原因分析
1.在jenkins添加构建后操作,选择Allure report
2.Path路径输入:生成的报告文件夹名称
注意:文件夹名称一定要与pytest中定义报告存放位置一致
3、配置发送邮件
添加测试报告接收邮件列表:
1.点击增加构建后操作步骤,选择Editable email notification。
2.点击Advanced Setting。
3.点击Triggers中的高级按钮,在recipient List配置接收者。
配置多个接收者时,中间用英文 “,” 隔开
配置jenkins邮件系统用户:
系统管理-系统设置-jenkins location
系统管理员邮件地址:xxx@xx.com