生成报告配置xml_升职加薪利器: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。如下图。
第二步,安装好依赖库以后,下载并解压allure命令行工具,用于后面步骤执行allure命令,下载地址一:https://pan.baidu.com/s/1YkgYpvfmH_I26ZPAJ1OF0A;下载地址二:https://github.com/allure-framework/allure-pytest。把解压后的allure文件夹,设置成环境变量。添加allure到环境变量PATH(安装路径allure-commandlinebin)。
第三步,确认allure安装成功,在命令行输入:allure --version,能展示allure安装版本2.12.1即可。如果报错,可能是因为电脑中没有安装jdk1.8造成的,这时安装一个jdk1.8就好了。
第四步,通过pytest编写自动化测试脚本,如下图。编写pytest测试用例非常简单,只需要按照下面的规则:
· 测试文件以test_开头
· 测试类以Test开头
· 测试函数以test_开头
第五步,执行测试用例。点击Pycharm底部Terminal;或者打开dos窗口,切换到当前项目文件夹下,执行命令 pytest -s -q。Terminal应该能正常显示打印结果如下。
第六步,为了测试报告内容丰满,可以用第五步的方法,多创建一些测试用例。如下图,也可以把用例放到多个包里面。
第七步,创建好测试用例以后,在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文件夹中生成一个测试报告。
第九步,右键allure-report文件夹中的index.html文件,选择open in browser,再点击一个浏览器,比如chrome。
第十步,这时一个美观的测试报告就会显示如下了,快试试吧。
进阶篇--定制报告
这时,点击左侧导航栏中的‘功能’,展开以后,测试结果显示如下:
在这里,我们可以看到所有的测试用例直接显示为方法名,这样的可读性不好。我们可以通过allure自带的装饰器给这些测试用例重新用中文起名,并且分类。如下图:
为了实现上图的样式:allure提供了如下几个装饰器。@allure.feature('前台子系统') 表示第一层分组,一般用来表示测试用例属于哪个模块。@allure.story('注册功能')表示第二层分组,一般用来表示测试用例属于哪个功能。@allure.title('正常注册测试')用来表示测试用例的标题。@allure.description('输入正确的用户信息,注册账号')用来显示测试用例中的描述信息。具体代码如下图:
除了上面这些装饰器以外,allure测试报告中几乎支持手工测试用例的所有要素,比如操作步骤,预置条件,后置操作,附件截图等等。大家可以自己尝试一下,其他要素我们后续再讲。
高级篇--持续集成
在企业应用中,自动化测试往往需要频繁执行,比如每隔一小时自动执行测试一次。执行完成后应该发邮件提醒tester,tester只需要打开邮件就可以看到生成的测试报告。这又是怎么做的呢?
第一步,准备环境,大家前面应该已经安装过jdk了,我们从Tomcat官网下载最新的tomcat9,Jenkins官方网站下载最新的war包;也可以从我前面分享给大家的网址下载:https://pan.baidu.com/s/1YkgYpvfmH_I26ZPAJ1OF0A。
1.安装jdk
2.解压tomcat
3.复制jenkins.war到tomcat的webapps目录下
4.双击打开bin目录下面的startup.bat,这时会打开一个dos窗口,注意永远不要关闭这个窗口,否则就不能访问jenkins网站了。
5.等1分钟左右,打开浏览器,输入网址http://localhost:8088/jenkins/,多刷新几次,直到看到下图
6.根据网页中的提示,用记事本打开提示C:Users.......jenkinssecrets文件夹中的文件initialAdminpassword。
7.复制文件中的内容到‘管理员密码’输入框中
8.点下一步
9.在custom jenkins页面选择suggested jenkins plugin(安装推荐的插件)。
10.等所有的插件下载好以后, 设置用户名和密码。
11.登录进入主界面。
第二步,进入到jenkins主界面以后,我们来创建第一个jenkins任务。
1.在主页点击“新建”
2.选择自由风格的软件项目
3.点击general配置中的‘高级’,选择‘自定义工作空间’,设置成你的项目路径,比如我的项目在这个路径中C:Users51TestingPycharmProjectschangcheng。
4.在构建触发器中,选择window批处理程序,在jmeter输入框中,输入pytest -s -q。
5.勾选定时构建,输入0 18 15 6 1,表示测试用例将在6月15日星期一晚上18点正执行一次,这里可以写5个数字,每个数字之间用空格间隔。分别表示:分钟、小时、日期几号、几月和星期几。除了数字,也可用特殊符号表示时间:星号*代表所有有效取值、横线-表示从几到几、除号/表示间隔时间、逗号表示枚举。例如,要想每天晚上18点执行一次,可以写0 18 * * *。大家可以自行尝试,设置各种时间间隔。
第三步,Jenkins集成allure测试报告。
1.先安装Allure插件。打开Jenkins,首页点击‘系统管理’。
2.选择‘插件管理’。
3.选择‘可选插件’,搜索输入框输入Allure,搜索出来的名字就叫Allure,当安装后名字会变为Allure Jenkins Plugin。
4.jenkins配置页,选择‘全局工具配置’。
5.全局工具配置页下拉到最后一项,你会看到‘Allure Commandline’项, 按下图配置之后保存即可。
6.在构建触发器中,选择window批处理程序,在jmeter输入框中,把前面输入的pytest -s -q改成call pytest -s -q --alluredir ./allure-xml。
7.在‘构建后操作’(Post-build Actions)中选择allure report,输入Path名称allure-xml,这里的path名称表示在项目根目录下生成此文件夹,文件夹用来保存生成html报告之前的中间测试结果。
8.点击‘保存’,点击‘立即构建’。
9.运行结束后,点击‘Allure Report’,展示图如下:
这样我们就完成了pytest + allure + jenkins 的集成配置。更多jenkins高级功能,请期待我的后续文章。
关注公众号:Atstudy网校,获得更多干货,提升it技能,从不会到熟练只差一步。
生成报告配置xml_升职加薪利器:Python+Pytest框架在Jenkins上生成Allure测试报告相关推荐
- 生成报告配置xml_自动化测试报告太丑?Allure拯救你!
TestNG报告太丑? 测试结果维度展现有限? 无法区分用例优先级? 不方便查看错误信息? Allure测试报告框架帮助你轻松实现"高大上"报告展示.本文通过示例演示如何从0到1集 ...
- python自动化测试生成报告_使用python测试框架完成自动化测试并生成报告-实例练习...
练习一: 使用unittest 完成自动化测试并使用HttpTestRunner生成报告 ''' 1.写个简单的计算器功能,大小写转换功能,随机生成字符串功能 2.编写测试用例,不同的数据(你能想到的 ...
- python测试脚本实例-使用python测试框架完成自动化测试并生成报告-实例练习
练习一: 使用unittest 完成自动化测试并使用HttpTestRunner生成报告 ''' 1.写个简单的计算器功能,大小写转换功能,随机生成字符串功能 2.编写测试用例,不同的数据(你能想到的 ...
- python pytest框架
一.pytest单元测试框架 1. 什么是单元测试框架 单元测试是指在软件开发当中,针对软件的最小单位(函数.方法)进行正确性的检查测试. 2.单元测试框架 Java:junit和test ...
- Python pytest框架之@pytest.fixture()和conftest详解
一.fixture简介 学pytest就不得不说fixture,fixture是pytest的精髓所在,类似unittest中setup/teardown这种前后置东西.但是比它们要强大.灵活很多,它 ...
- 使用python flask框架开发图片上传接口 详细案例
python版本:3.6+ 需要模块:flask,pillow 需求:开发一个支持多格式图片上传的接口,并且将图片压缩,支持在线预览图片. 目录结构: app.py编辑内容: from flask i ...
- 【5G NR】CSI框架—报告配置
文章目录 前言 1. 概述 2. CSI报告的配置框架 3. CSI报告的时域配置 3.1 周期性CSI报告 3.2 基于PUCCH的半持续CSI报告 3.3 基于PUSCH的半持续CSI报告 3.4 ...
- Python + Appium框架原生代码实现App自动化测试
Step1:首先介绍下python+appium的框架结构 如下截图所示 (1):apk目录主要放置待测app的apk资源: (2):config目录主要放置配置文件信息,包含:数据库连接配置.UI自 ...
- python自动化框架pytest接口关联串联_基于python接口自动化框架搭建_pytest+jenkins+allure...
本接口测试框架使用python语言实现,基于pytest测试框架,同时集成Jenkins和Allure 核心特性 封装requests请求,使用装饰器模式 详细的请求日志输出 环境与数据隔离,实现不同 ...
最新文章
- 093_Element.getBoundingClientRect()方法和DOMRect对象
- android bootloader阶段GPIO的控制
- 为 Vim 编辑器开发定制插件
- Chinese savior crepe
- C++ 类的抽象初练
- Microsoft 邀您参加云对话!
- Tcl与Design Compiler (二)——DC综合与Tcl语法结构概述
- 马化腾又要发红包!648亿港元,最多腾讯2%股份,我酸了...
- TIOBE 4月编程语言排行榜:C++重回前三,PHP下降明显
- java单词转化为数组_java中数组与List相互转换的方法
- aws s3 连接建立
- IO流之流的操作规律
- 其他进制转化为十进制 详解
- FCKeditor的JSP版漏洞
- Arcgis中按照cass标准分幅图框进行批量正射影像DOM分幅裁剪并命名
- 转置卷积(Transposed Convolution)
- u盘文件名乱码linux,U盘文件名乱码的原因和解决办法
- 零代码的科普算法书《未来算法》读后
- 怎么注册一个电子邮件账号?电子邮件地址怎么写?
- H.264 AVCC header
热门文章
- Intellij IDEA 安装jnetpcap开发环境与 no jnetpcap in java.library.path 的解决方案
- ad16自动布线设置规则_电路板设计技巧:七大步骤确定PCB布局和布线
- 西奥服务器修改楼层参数,西奥FOVF梯调试介绍.doc
- android studio怎么输入中文,Android studio 模拟器中输入中文
- hdfs存储与数据同步
- C++ 洛谷 P2704 [NOI2001]炮兵阵地
- ArchLinux安装Gnome桌面
- 2018第九届山东省ACM省赛
- Spring 7大功能模块的作用[转]
- Objective-C 一些很基础的总结