一:环境准备

  • 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. 【转载】JDBC操作LOB字段

    转自:http://www.cnblogs.com/tengtao93/p/4984689.html 1.LOB(Large Objects)大对象,是用来存储大量的二进制和文本数据的一种数据类型(一 ...

  2. 【网易官方】极客战记(codecombat)攻略-地牢-高举之剑

    关卡连接: https://codecombat.163.com/play/level/the-raised-sword 为了战斗,学会武装你自己. 简介 依照名字攻击每个食人魔.记住,每个食人魔需要 ...

  3. FreeRTOS学习笔记2:列表

    list.h 列表结构List_t 列表:主要看三个 xLIST:1.5检查列表完整性的.但是需要开启.默认不开启 2:记录列表中列表项的 数量:3:记录当前列表项 索引号:4:列表中的最后一个 列表 ...

  4. 第二十六篇 玩转数据结构——二分搜索树(Binary Search Tree)

          1.. 二叉树 跟链表一样,二叉树也是一种动态数据结构,即,不需要在创建时指定大小. 跟链表不同的是,二叉树中的每个节点,除了要存放元素e,它还有两个指向其它节点的引用,分别用Node l ...

  5. 更改mysql数据库默认的字符集(编码方式)

    mysql数据库的默认编码方式是latin1, 在mysql中存储和显示中文时会产生乱码,必须要更改默认的编码方式为utf8 或 gbk.(以下以gbk为例.) 更改服务器的编码方式,在终端输入以下命 ...

  6. gulp 搭建静态服务器

    步骤: 安装依赖:npm i browser-sync --save-dev 导入browser-sync,通过create创建 设置Sass和Js任务,将其压缩重命名并引入页面,任务结束时reloa ...

  7. nodejs--wechat模块,微信公共平台自动回复消息接口服务中间件

    npm 程序官网 https://www.npmjs.com/package/wechat 别人使用笔记网址 https://blog.csdn.net/golduty2/article/detail ...

  8. Go并发介绍

    1. 进程.线程.协程 进程(Process),线程(Thread),协程(Coroutine,也叫轻量级线程) 进程 进程是一个程序在一个数据集中的一次动态执行过程,可以简单理解为“正在执行的程序” ...

  9. Python面向对象基础语法

    目标 dir 内置函数 定义简单的类(只包含方法) 方法中的 self 参数 初始化方法 内置方法和属性 01. dir 内置函数(知道) 在 Python 中 对象几乎是无所不在的,我们之前学习的  ...

  10. 前端之CSS基础篇

    CSS介绍 什么是CSS? CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素. 当浏览器读到一个样式表,它就会按照这个样式表来对文档进行格式化(渲染). CSS ...