Allure报告
Allure介绍
Allure是一个独立的报告插件,生成美观易读的报告,目前支持语言:Java, PHP, Ruby, Python, Scala, C#。
Allure安装
1.安装pytest的插件包pytest-allure-adaptor: pip3 install pytest-allure-adaptor
生成Allure报告
# 在执行命令目录生成report文件夹,文件夹下包含xml或者json文件(xml或json根据版本决定)
命令行参数:pytest --alluredir report
示例
[pytest]
addopts = -s --alluredir report
testpaths = ./scripts
python_files = test_*
python_classes = Test*
python_functions = test_*
import os,sys
sys.path.append(os.getcwd())
from appium import webdriver
from base.base_driver import init_driver
from page.network_page import NetworkPage
class TestSetting:
def setup(self):
self.driver=init_driver()
self.network_page=NetworkPage(self.driver)
def test_mobile_network_2g(self):
self.network_page.click_more()
self.network_page.click_network()
self.network_page.click_first_network()
self.network_page.click_2g()
def test_mobile_network_3g(self):
self.network_page.click_more()
self.network_page.click_network()
self.network_page.click_first_network()
self.network_page.click_3g()
def teardown(self):
self.driver.quit()
操作步骤:
1.命令行进入pytest.ini所在目录
2.输入命令:pytest
执行结果:
1.pytest.ini所在目录生成report文件夹,文件夹下生成一个xml文件
xml转html工具安装
Windows版本
1.下载压缩包allure-2.7.0.zip
地址:https://bintray.com/qameta/generic/allure2
2.解压
3.将压缩包内的bin目录配置到path系统环境变量
4.进入report上级目录执行命令:allure generate report/ -o report/html --clean
5.report目录下会生成index.html文件,即为可视化报告
Mac版本
1.:brew install allure
2.进入report上级目录执行命令:allure generate report/ -o report/html
3.report目录下会生成index.html文件,即为可视化报告

Allure之Pytest
添加测试步骤
方法:@allure.step(title="测试步骤001")
这是方法级别的描述
import allure, pytest
class TestContact:
@allure.step(title='登陆的测试脚本')
def test_login(self):
print('登陆')
assert 1
@allure.step(title='用户名的测试脚本')
def test_username(self):
print('用户名')
assert 1
@allure.step(title='密码的测试脚本')
def test_password(self):
assert 1
添加测试描述
方法:allure.attach('描述', '我是测试步骤001的描述~~~')
这是代码级别的描述
import allure, pytest
class TestContact:
@allure.step(title='登陆的测试脚本')
def test_login(self):
allure.attach('登陆描述', '我是登陆实现~~~')
print('登陆')
assert 1
添加严重级别
测试用例设置不同的严重级别,可以帮助测试和开发人员更直观的关注重要Case.
方法: @allure.severity('critical')
参数:
Severity:严重级别(BLOCKER,CRITICAL,NORMAL,MINOR,TRIVIAL)
import allure, pytest
class TestContact:
@allure.step(title='登陆的测试脚本')
@allure.severity('critical')
def test_login(self):
allure.attach('登陆描述', '我是登陆实现~~~')
print('登陆')
assert 1
Jenkins使用
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,
旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
一般情况下,公司内部Jenkins安装在服务端,不需要本地安装,都已配置完成,可直接操作使用.
jenkins安装
依赖环境jdk1.5以上
1.下载jenkins.war
2.进入jenkins.war所在目录,执行:java -jar jenkins.war
3.浏览器进入:localhost:8080
安装所需要插件
浏览器输入localhost:8080,进入默认密码提示文件,输入系统默认密码,接下来安装建议的插件
(提示:以后的孙腾,你要记着,在安装建议的插件时,由于网络问题,会有插件安装不成功)
解决方法:在我的百度网盘中找到jekins资源,解压后会出现.jenkins文件夹,将解压后的.jenkins文件夹,替换即可解决:
Jenkins持续集成配置目的:
1、配置github地址
2、配置多长时间找一次
3、配置了pytest生成.json或xml
4、配置了将json或xml生成html报告
jenkin安装Allure插件
1.进入jenkins系统管理 -> 管理插件
2.点击可选插件
3.搜索框输入Allure Jenkins Plugin
4.选中安装

这个插件是为了生成pytest的xml文件或json文件
Jenkins安装Allure Commandline工具
这个插件的目的是为了将生成的xml文件,转化为html报告形式
1.进入jenkins系统管理 -> 全局工具安装
2.找到Allure Commandline,点击Allure Commandline安装
3.输入一个别名
4.点击新增安装-选择解压*.ip/*.tar.gz
5.解压目录选择已下载好的allure2.7.0.zip包所在目录(⚠️ 版本要一致)
6.点击保存

Jenkins新建一个项目
1.选择新建一个自由风格的软件项目 -> 点击确定
2.输入一些项目描述
3.选择GitHub project
4.输入Project url # 因我们只是举例,所以使用自己的一个github测试脚本

源码管理配置
5.勾选Git
6.Repository URL输入地址同第四步
7.点击Add添加github的用户名和密码

构建触发器
8.勾选Poll SCM # 根据定时任务,查看github版本是否更新,如果更新会自动构建项目
9.输入crontab命令
举例:
*/1 * * * * # 每一分钟检查一次
10.点击增加构建步骤,选择Execute shell
11.Command输入
mac:
export PATH=$PATH:"pytest可执行文件的目录"
pytest
windows:
PATH=$PATH;"pytest可执行文件的目录" #(到scripts)
pytest

时程表的格式如下:
f1 f2 f3 f4 f5 program
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程式。
构建后操作
12.点击增加构建后操作步骤,选择Allure Report
13.Path路径输入:生成的报告文件夹名称
⚠️ 文件夹名称与pytest生成的报告文件夹名称一致

小结:
到此,就成功构建了一个项目,

点击立即构建,就相当于执行了pytest生成xml或json文件,并根据文件生成了allure报告,在工作区里面是,项目结构:

Jenkins邮件配置
目的,将生成的html报告,通过邮件发送给对应的开发与测试人员
发件人配置
配置邮件系统用户:
系统管理-系统设置-Jenkins Location
系统管理员邮件地址:用户名@163.com(发送邮件用户)
配置系统邮件:
系统管理-系统设置-邮件通知
SMTP服务器:例 smtp.163.com
用户默认邮件后缀:例如 @163.com
高级-使用SMTP认证
输入发送邮箱和授权密码 -可以使用测试邮件验证
# 163邮箱的授权码,在设置里面找到,只要是第三方要密码的,都是加密的授权密码,不会给明文的密码
配置(发送附件)邮件:
系统管理-系统设置-Extended E-mail Notification
SMTP server:例 smtp.163.com
Default user E-mail suffix:例如 @163.com
高级-Use SMTP Authentication - 输入发送邮件的邮箱和授权密码
Default Content Type: HTML(text/html)
Default Content(报告模版,使用以下html代码即可):
<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/>
收件人配置
# 添加测试报告接收邮件列表
14.点击增加构建后操作步骤,选择Editable Email Notification
15.点击Advanced Setting…
16.点击Triggers中的高级按钮
17.Recipient List输入邮件接收列表,多个邮件逗号分隔
注意:
发件人只有一个即可,故可在jekins的全局配置中配置,而收件方是根据项目的不同来发给不同的负责人,故应该在每个项目里面去配置。