移动端测试——Allure报告与Jenkins集成 (10)
Allure报告
- Allure是一个独立的报告插件,生成美观易读的报告
- 目前支持语言:Java、PHP、Ruby、Python、Scala、C#
参阅:
1.1 Allure安装
1. 安装pytest的插件包allure-pytest
pip3 install allure-pytest
2. xml转html工具安装
第一种:安装包
平台 | 地址 |
---|---|
官方 | https://github.com/allure-framework/allure2/releases 1. 安装包解压后的bin目录配置到path系统环境变量 2. 进入report上级目录执行命令: allure generate report/ -o report/html 3. report目录下会生成index.html文件,即为可视化报告 |
第二种:命令行
brew installl allure -y
3. 生成Allure报告
在执行命令目录生成report文件夹,文件夹下包含xml文件
pytest --alluredir report
xml文件转化为html文件
allure generate report/ -o report/html
eg:
pytest.ini
[pytest]
;--html=./report.html
;删除原生html,增加Allure
addopts = -s --alluredir report
# 测试路径
testpaths = ./Test
# 测试文件名
python_files = test_*.py
# 测试类名
python_classes = Test_*
# 测试的方法名
python_functions = test_*
test_all.py
class Test_allure:
def setup(self):
pass
def teardown(self):
pass
def test_al(self):
assert 0
1.2 Allure之Pytest
1.2.1 添加测试步骤
方法:@allure.step(title="测试步骤001")
eg:
test_all.py
import allure, pytest
class Test_allure:
def setup(self):
pass
def teardown(self):
pass
@pytest.mark.parametrize("a",[1,2,3])
@allure.step('我是测试步骤001')
def test_al(self, a):
assert a != 2
1.2.2 添加测试描述
方法:allure.attach('描述的内容', '描述的名称(标题)')
注意:没有@
,放在函数里用
eg:
test_all.py
import allure, pytest
class Test_allure:
def setup(self):
pass
def teardown(self):
pass
@pytest.mark.parametrize("a",[1,2,3])
@allure.step('我是测试步骤001')
def test_al(self, a):
allure.attach('描述的内容', '描述的名称(标题)')
assert a != 2
1.2.3 添加严重级别
测试用例设置不同的严重级别,可以帮助测试和开发人员更直观的关注重要Case
方法:@pytest.allure.severity(Severity)
参数:Severity:严重级别(BLOCKER,CRITICAL,NORMAL,MINOR,TRIVIAL)
使用方式:
@allure.severity(allure.severity_level.BLOCKER)
或
@allure.severity('trivial')
eg:
test_all.py
import allure, pytest
class Test_allure:
def setup(self):
pass
def teardown(self):
pass
@pytest.mark.parametrize("a",[1,2,3])
@allure.severity('trivial')
@allure.step('我是测试步骤001')
def test_al(self, a):
allure.attach('描述', '我是测试步骤001的描述~~~')
assert a != 2
1.2.4 测试用例与BUG的URL关联
eg:
-
关联测试用例地址的URL
@allure.testcase("http://www.baidu.com/test_001")
-
关联BUG地址的URL
@allure.issue("http://www.163.com/bug_001")
1.3 Jenkins安装
- Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能
- 一般情况下,公司内部Jenkins安装在服务端,不需要本地安装,都已配置完成,可直接操作使用
1.3.1 CentOS6安装Jenkins强烈推荐
参阅:
- Centos7启动Jenkins服务状态Active: active (exited)的问题解决
配置文件中改用户为root
1. 安装JDK
- 安装java8
yum install java-1.8.0-openjdk -y
- 查看java版本
java -version
2. 安装Jenkins
- 配置jenkins软件源
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
提示:
- 开始安装jenkins
yum install jenkins -y
- 启动jenkins
service jenkins start
3. 配置jenkins
(1) 开机自启
chkconfig jenkins on
(2) 相关文件
配置文件
vim /etc/sysconfig/jenkins
默认创建jerkins用户来运行jenkins服务,更改用户则
chown -R xxx:xxx /var/log/jenkins /var/lib/jenkins /var/cache/jenkins
提醒:
- 完全卸载jenkins
yum remove jenkins -y
rm -r /etc/init.d/jenkins /var/log/jenkins /var/lib/jenkins /var/cache/jenkins
日志文件
tail -f /var/log/jenkins/jenkins.log
升级文件中更换成清华源
vim /var/lib/jenkins/hudson.model.UpdateCenter.xml
<url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
- 重启jenkins
service jenkins restart
(3) 远程访问
查看防火墙规则
iptables -L -n --line-numbers
开放8080端口
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
CentOS7提示:
开放8080端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
systemctl restart firewalld.service
3. 管理jenkins服务
操作 | 命令 |
---|---|
开启 | service jenkins start |
关闭 | service jenkins stop |
重启 | service jenkins restart |
- 启动jenkins
service jenkins start
Q&A
- Q1:如果界面提示Jenkins正在启动,请稍后...
vim /var/lib/jenkins/hudson.model.UpdateCenter.xml
<url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
参阅:
1.3.1 Windows安装Jenkins
参阅:
1. 配置环境
- jdk1.5以上
2. 开始安装
第一种:war包安装方式不喜欢
默认安装路径:C:\Users\XXX\.jenkins
(试了各种方法也没法改)
- 安装好XAMPP(Tomcat)
- 下载jenkins.war
平台 | 地址 |
---|---|
官方 | https://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/latest/ |
其他 | https://www.lanzous.com/i5y63cf |
- 开始安装
java -jar jenkins.war
参数:
--httpPort
新端口号
管理员密码
- 浏览器进入
localhost:8080
参阅:
第二种:安装包方式推荐
- 下载并安装jenkins
平台 | 地址 |
---|---|
官方 | https://mirrors.tuna.tsinghua.edu.cn/jenkins/windows-stable/ |
- 修改配置文件
XXX\Jenkins\hudson.model.UpdateCenter.xml
<url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
- 含管理员密码的文件夹
- 管理服务
- 安装完成后,会自动打开页面
localhost:8080
1.3.2 Jenkins首次使用
名称 | 说明 |
---|---|
管理jenkins | |
访问jenkins | localhost:8080 |
关闭jenkins服务 | localhost:8080/exit |
重启jenkins服务 | localhost:8080/restart |
重载jenkins服务 | localhost:8080/reload |
密码 | |
管理员密码 | cat /var/lib/jenkins/secrets/initialAdminPassword |
- 配置jenkins
- 登录界面
- 主页
进来好慢......
参阅:
1.4 Jenkins持续集成配置
- Jenkins安装Allure插件
- Jenkins安装Allure Commandline工具
- 新建一个"自由风格"的项目
- 邮件配置
报告模版
<hr/>(本邮件是程序自动下发的,请勿回复!)<hr/>
项目名称:$PROJECT_NAME<br/><hr/>
构建编号:$BUILD_NUMBER<br/><hr/>
git版本号:${GIT_REVISION}<br/><hr/>
构建状态:$BUILD_STATUS<br/><hr/>
触发原因:${CAUSE}<br/><hr/>
目录:${ITEM_ROOTDIR}<br/><hr/>
构建日志地址:<a href=" ">${BUILD_URL}console</a ><br/><hr/>
构建地址:<a href="$BUILD_URL">$BUILD_URL</a ><br/><hr/>
报告地址:<a href="${BUILD_URL}allure">${BUILD_URL}allure</a ><br/><hr/>
失败数:${FAILED_TESTS}<br/><hr/>
成功数:${FAILED_TESTS}<br/><hr/>
变更集:${JELLY_SCRIPT,template="html"}<br/><hr/>
- 触发项目构建
项目构建会运行测试代码
提示:
- 构建方式有两种
➢ 手动触发构建
➢ 更新github代码,触发器在定时任务到达时,会开始项目构建
参阅:
更新中......