一:环境准备

  • 1.python3.6
  • 2.windows环境
  • 3.pycharm
  • 4.allure-pytest
  • 5.allure2.8.0
  • 6.java1.8

allure-pytest快速安装

在cmd中输入 pip install allure-pytest,回车

二:报告生成

第1步:下载allure.zip,下载地址:allure-github: https://github.com/allure-framework/allure2 ,找到对应版本,并下载

第2步:解压allure.zip,将路径添加环境变量,path中,记得需要重启电脑

第3步:验证allure,在cmd中输入allure,然后回车,如果可以看到一下,说明配置完成

第4步:运行测试用例 pytest.main(["-m","login","-s","-q","--alluredir=./report"])

"-m": 标记用例

"login": 被标记需要执行用例

"-s":允许终端在测试运行时输出某些结果,例如你想输入print的内容,可以加上-s

"-q"简化输出结果

"--alluredir": 生成allure指定语法

"./report":生成报告的路径

"--clean-alluredir" :因为这个插件库allure-pytest生成的报告文件,你第二次运行时候不会清理掉里面的东西,所以你需要删除这个report文件夹,然后运行重新新建reoprt文件夹

说明:运行后,会在report文件夹里面生成文件

三.allure定制化报告

第1步:一些词语解释

一、feature: 标注主要功能模块。
二、story: 标注Features功能模块下的分支功能。
三、severity: 标注测试用例的重要级别。

1)blocker级别:中断缺陷(客户端程序无响应,无法执行下一步操作)
2)critical级别:临界缺陷(功能点缺失)
3)normal级别:正常    默认为这个级别
4)minor级别:次要缺陷(界面错误与UI需求不符)
5)trivial级别:轻微缺陷(必输项无提示,或者提示不规范)

四、step: 标注测试用例的重要步骤。

五、attach:用于向测试报告中输入一些附加的信息,通常是一些测试数据信息。

1)name就是附件名称,body就是数据,attachment_type就是传类型

2)附件支持的类型(TEXT,HTML,XML,PNG,JPG,JSON,OTHER)

六、issue:这里传的是一个连接,记录的是你的问题。

七、testcase:这里传的是一个连接,记录的是你的用例。

八、description:描述用例信息

第2步:代码展+报表展示

feature方法的演示

代码:

 import pytest,allure
@allure.feature("测试") #标记代码
class Test_Demo(): # @allure.story("test_demo_1")
# @allure.severity("trivial")
def test_demo_1(self):
# """
# 用例描述:22222222222222
# """
#allure.MASTER_HELPER.description("11111111111111")
assert 1 == 1

报告展示:

story方法的演示

代码:

 import pytest,allure
@allure.feature("测试")
class Test_Demo(): @allure.story("test_demo_1") #标记代码
# @allure.severity("trivial")
def test_demo_1(self):
# """
# 用例描述:22222222222222
# """
#allure.MASTER_HELPER.description("11111111111111")
assert 1 == 1
@allure.story("test_demo_4") 标记代码
#@allure.severity("minor")
def test_demo_4(self):
assert 3 == 3

报告展示:

severity方法的演示:

代码:

 import pytest,allure
@allure.feature("测试")
class Test_Demo(): #@allure.story("test_demo_1")
@allure.severity("trivial") #标记代码
def test_demo_1(self):
# """
# 用例描述:22222222222222
# """
#allure.MASTER_HELPER.description("11111111111111")
assert 1 == 1
#@allure.story("test_demo_4")
@allure.severity("minor") #标记代码
def test_demo_4(self):
assert 3 == 3

报告展示:

setp方法的演示:

1.总的步骤备注

代码:

 import pytest,allure
@allure.feature("测试")
class Test_Demo(): #@allure.story("test_demo_1")
#@allure.severity("trivial")
@allure.step("这是两个负数的比较") #标记代码
def test_demo_1(self):
# """
# 用例描述:22222222222222
# """
#allure.MASTER_HELPER.description("11111111111111")
assert -1 == -1
#@allure.story("test_demo_4")
#@allure.severity("minor")
@allure.step("这是两个整数的比较") #标记代码
def test_demo_4(self):
assert 3 == 3

报告展示:

2.分步骤备注

代码:

 import pytest,allure
@allure.feature("测试")
class Test_Demo(): #@allure.story("test_demo_1")
#@allure.severity("trivial")
#@allure.step("这是两个负数的比较")
def test_demo_1(self):
# """
# 用例描述:22222222222222
# """
#allure.MASTER_HELPER.description("11111111111111")
assert -1 == -1
#@allure.story("test_demo_4")
#@allure.severity("minor")
#@allure.step("这是两个整数的比较")
def test_demo_4(self):
with allure.step("赋值一个变量a"): #标记代码
a=1
with allure.step("赋值一个变量b"): #标记代码
b=1
assert a == b

报表展示:

attach方法的演示:

代码:

 import pytest,allure
@allure.feature("测试")
class Test_Demo(): #@allure.story("test_demo_1")
#@allure.severity("trivial")
#@allure.step("这是两个负数的比较")
def test_demo_1(self):
# """
# 用例描述:22222222222222
# """
#allure.MASTER_HELPER.description("11111111111111")
assert -1 == -1
#@allure.story("test_demo_4")
#@allure.severity("minor")
#@allure.step("这是两个整数的比较")
def test_demo_4(self):
a = 1
allure.attach("{0}".format(a),"预期结果") #标记代码 第一个参数是body,第二个参数是name
b=1
allure.attach("{0}".format(b),"实际结果")  #标记代码
assert a == b

报告展示:

图片附件形式:

代码:

 import pytest,allure
@allure.feature("测试")
class Test_Demo(): @allure.story("test_demo_1")
@allure.severity("trivial")
def test_demo_1(self):
assert 1 == 1 def test_demo_3(self):
"""
用例描述:这里是两个数字是否相等
"""
a = 3
b = 3
with open(r"G:\Web_automation\Learn_pytest\test_cases\img\2.jpg","rb") as file: #标记代码,需要先打开图片
file=file.read()                                          #标记代码,读取图片
allure.attach(file,"预期结果",attachment_type=allure.attachment_type.JPG)        #标记代码
assert a == b

报告展示:

issue和testcase方法的演示:

代码:

 import pytest,allure
@allure.feature("测试")
class Test_Demo(): @allure.story("test_demo_1")
@allure.testcase("https://home.cnblogs.com/")
def test_demo_1(self):
assert 1 == 1 @allure.testcase("https://home.cnblogs.com/","测试用例地址请点击跳转") #标记代码,你可以指定连接的名字,报告里面就会现在这个名字的连接
@allure.issue("http://www.baidu.com")                     #标记代码,哪个写在后,在报告里面就会显示在前面
def test_demo_4(self):
assert 3 == 3

报表展示:

description方法的演示:

代码:(这两种备注方式不能同时是存在,如果同时存在他会先使用description的,而不取3引号的)

 import pytest,allure
@allure.feature("测试")
class Test_Demo(): @allure.story("test_demo_1")
@allure.testcase("https://home.cnblogs.com/")
def test_demo_1(self):
assert 1 == 1 @allure.description("这里是两个3的比较") #标记代码,优先取这个
def test_demo_4(self):
"""
用例描述:这里是两个数字是否相等         #如果没有description,那么就取3引号的
"""
assert 3 == 3

报告演示:

四.报告显示

报告显示方法一:

第1步:以上运行之后,可以在CMD中运行命令

allure generate report -o html --clean

report是alluredir生成的xml目录,html是最终生成html的目录

第2步:运行命令后,可以在html路径下看到生成的数据,其中index.html就是我们要的allure报告,你可以在pycharm里面打开,报告展示如下

报告显示方法二(这种相当于是调试):

第1步:以上运行之后,可以在CMD中运行命令

allure serve report   (report是alluredir生成的xml目录)

运行后,浏览器会自动跳转到allure report界面

四.pytest+allure+jenkins集成

参考我另外的一个博客文章:https://www.cnblogs.com/hao2018/p/11135180.html

注意:在本地运行的时候需要手动把代码拷贝到jenkins目录下面的workspace文件夹里面;如果在git或svn上运行,jekins会直接把代码拷贝到workspace目录 ,如果jenkins是指定工作目录就不用管了

pytest+allure(allure-pytest基于这个插件)设计定制化报告的更多相关文章

  1. pytest+allure(pytest-allure-adaptor基于这个插件)设计定制化报告

    一:环境准备 1.python3.6 2.windows环境 3.pycharm 4.pytest-allure-adaptor 5.allure2.8.0 6.java1.8 pytest-allu ...

  2. 网易云基于 Kubernetes 的深度定制化实践

    本文由  网易云发布. 2017 年,Kubernetes 超越 Mesos 和 Docker Swarm成为最受欢迎的容器编排技术.网易云从 2015 下半年开始向 Kubernetes 社区贡献代 ...

  3. Maven 教程(20)— 使用maven-assembly-plugin插件来定制化打包

    原文地址:https://blog.csdn.net/liupeifeng3514/article/details/79777976 简单的说,maven-assembly-plugin 就是用来帮助 ...

  4. solr特点三: 基于Solr实现排序定制化参考

    排序实现有N种形式,最低成本.最快响应时间是目标 一份索引,支持N种排序策略并且在线互不干扰是要考虑的每一种实现,处理的场景是不同的,不要千篇一律 020排序,从索引到效果,有不少坑,这篇文章没有细说 ...

  5. Yoshino: 一个基于React的可定制化的PC组件库

    Github: https://github.com/Yoshino-UI... Docs: https://yoshino-ui.github.io/#/ Cli-Tool: https://git ...

  6. ERP_基于Oracle ADF的定制化企业级IT系统解决方案

    2014-12-31 Created By BaoXinjian

  7. 基于Python+Requests+Pytest+YAML+Allure实现接口自动化

    本项目实现接口自动化的技术选型:Python+Requests+Pytest+YAML+Allure ,主要是针对之前开发的一个接口项目来进行学习,通过 Python+Requests 来发送和处理H ...

  8. 【Python】使用Pytest集成Allure生成漂亮的图形测试报告

    前言 大概两个月前写过一篇<[测试设计]使用jenkins 插件Allure生成漂亮的自动化测试报告>的博客,但是其实Allure首先是一个可以独立运行的测试报告生成框架,然后才有了Jen ...

  9. Pytest单元测试框架——Pytest+Allure+Jenkins的应用

    一.简介 pytest+allure+jenkins进行接口测试.生成测试报告.结合jenkins进行集成. pytest是python的一种单元测试框架,与python自带的unittest测试框架 ...

随机推荐

  1. 第三十三篇 玩转数据结构——红黑树(Read Black Tree)

    1.. 图解2-3树维持绝对平衡的原理: 2.. 红黑树与2-3树是等价的 3.. 红黑树的特点 简要概括如下: 所有节点非黑即红:根节点为黑:NULL节点为黑:红节点孩子为黑:黑平衡 4.. 实现红 ...

  2. dubbo学习(一)认识

    部分图片和表述来自dubbo官网 dubbo 概述 背景 这是一个服务端架构发展的路径图 下面我们介绍后面两种,dubbo 正是处于RPC 范畴内的使用. 分布式服务架构 当垂直应用越来越多,应用之间 ...

  3. sudo用户找不到环境变量 sudo找不到/usr/local/bin 下的执行文件,

    出于安全方面的考虑,使用sudo执行命令将在一个最小化的环境中执行,环境变量都重置成默认状态. 所以PATH这个变量不包括用户自定义设置的内容,如找不到/usr/local/bin/下面的命令在sud ...

  4. centos 配置安装golang

    golang的官方下载和安装介绍: https://golang.org/doc/install 按照如下步骤安装绿色版golang ,不需要编译,解压就可以用 1)下载tar.gz 安装包 2)直接 ...

  5. Custom LED Keychain, Small And Surefire Gifts

    The    LED Keychain    makes it easy for people to carry their keys with them and carry them with th ...

  6. 【转载】SpringMVC框架介绍

    转自:http://com-xpp.iteye.com/blog/1604183 SpringMVC框架图   SpringMVC接口解释   DispatcherServlet接口: Spring提 ...

  7. makecert生成证书

    是要命令 makecert -r -pe -n "cn=musetowc" -$ commercial -a sha1 -b 01/01/2020 -e 01/01/2050 -c ...

  8. JS-对象常用方法整理

    查看对象的方法,继续控制台输出,如图: hasOwnProperty():返回一个布尔值,指示对象自身属性中是否具有指定的属性(也就是,是否有指定的键). let object1 = new Obje ...

  9. vue移动端项目在手机上调试

    1.电脑和手机要连同一个wifi  一定是复制无线网的IP,而不是以太网的IP 2.在你的电脑上查找无线网络的ipv4地址: 查找方法:windows+r   然后再输入框里输入cmd 回车 会出现这 ...

  10. vue axios使用

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...