allure报告中如何让测试步骤更清晰

news2024/11/16 12:03:08

一、allure step测试用例步骤说明

allure step编写测试用例有两种方式

1、with allure.step()用在测试用例中

公共方法代码:

# common_fucntion.py
import allure
import pytest
from common.tools.log_util import Logger
 
runlog=Logger().get_log
'''
流程性的用例,添加测试步骤,让用例更清晰
用例步骤:1.登陆, 2.浏览商品 3.添加购物车  4.生成订单  5.支付成功
'''
 
def login(username, password):
    '''登陆'''
    # print("前置操作:先登陆")
    allure.attach("username:{},password:{}".format(username,password),"前置操作:先登陆")
 
 
def open_goods():
    '''浏览商品'''
    # print("浏览商品")
    allure.attach("这是浏览商品操作")
 
 
def add_shopping_cart(goods_id="10086"):
    '''添加购物车'''
    print("添加购物车")
    # runlog.info("这是runlog.info打印出的信息")
    # runlog.error("这是runlog.error打印出的信息")
 
 
def buy_goods():
    '''生成订单'''
    print("buy")
 
 
def pay_goods():
    '''支付'''
    print("pay")

用例代码:

import allure
import sys
from projects.demo_project.interface import common_function
 
@allure.story(u'with allure.step()')
def test_case003(self):
    """测试用例三
    流程性的用例,添加测试步骤,让报告更清晰
    用例步骤:1.登录 2.浏览商品 3:添加购物车 4.生成订单 5.支付成功
    """
    with allure.step("step1:登录"):
        common_function.login("zhangsan", "12345")
    with allure.step("step2:浏览商品"):
        common_function.open_goods()
    with allure.step("step3:添加购物车"):
        common_function.add_shopping_cart()
    with allure.step("step4:生成订单"):
        common_function.buy_goods()
    with allure.step("step5:支付成功"):
        common_function.pay_goods()

测试报告:
在这里插入图片描述

2、@allure.step()用装饰器的方式修饰在测试步骤的函数上面

公共方法代码:

# common_fucntion.py
import allure
import pytest
 
'''
流程性的用例,添加测试步骤,让用例更清晰
用例步骤:1.登陆, 2.浏览商品 3.添加购物车  4.生成订单  5.支付成功
'''
 
 
@allure.step("step:登录")
def login(username, password):
    '''登陆'''
    print("前置操作:先登陆")
 
 
@allure.step("step:浏览商品")
def open_goods():
    '''浏览商品'''
    print("浏览商品")
 
 
@allure.step("step:添加购物车")
def add_shopping_cart(goods_id="10086"):
    '''添加购物车'''
    print("添加购物车")
 
 
@allure.step("step:生成订单")
def buy_goods():
    '''生成订单'''
    print("buy")
 
 
@allure.step#("step:支付")
def pay_goods():
    '''支付'''
    print("pay")

测试用例代码:

from projects.demo_project.interface import common_function_allure_step
 
@allure.story(u'@allure.step()')
def test_case004(self):
    """测试用例三
    流程性的用例,添加测试步骤,让报告更清晰
    用例步骤:1.登录 2.浏览商品 3:添加购物车 4.生成订单 5.支付成功
    """
 
    common_function_allure_step.login("zhangsan", "12345")
 
    common_function_allure_step.open_goods()
 
    common_function_allure_step.add_shopping_cart()
 
    common_function_allure_step.buy_goods()
 
    common_function_allure_step.pay_goods()

报告效果图:
在这里插入图片描述
allure.step这两种用法,要结合实际编写测试用例中的场景,看哪种方式更适合,也可以结合着使用。

但allure.step也并不是完美的,当报告中想在步骤中显示参数、预期结果,实际结果,或者截图,文件等内容时,用print或logging来输出。看一下下面截图效果
在这里插入图片描述
print的信息显示在了stdout中,logging.info信息显示在log中,当有logging.error时,又出现了stderr。显然很乱,也没有在对应的测试步骤中显示。为了解决这个问题,研究了allure.attach()这个方法,可以解决。

二、allure.attach():补充说明测试结果

用法1: allure.attach(body, name, attachment_type, extension)
参数说明:

body:要显示的内容或附件
name:附件名字
attachment_type:附件类型
extension:附件扩展名
attachment_type提供的附件类型:
在这里插入图片描述
样例:
在这里插入图片描述
实现


def login(username, password):
    '''登陆'''
    # print("前置操作:先登陆")
    allure.attach("username:{},password:{}".format(username,password),"前置操作:先登陆")
 
 
def open_goods():
    '''浏览商品'''
    # print("浏览商品")
    allure.attach("这是内容:浏览商品操作","这是标题")

用法二:allure.attach.file(source, name, attachment_type, extension)
source:文件路径,相当于传一个文件
其他参数和上面一致

注:allure.attach() 和 allure.attach.file() 的区别:

allure.attach()表示自己写一个文件,allure.attach.file()从外部传一个文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/612167.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【FMC129】 基于JESD204B接口的8通道125MSPS 16位AD采集FMC子卡

板卡概述 FMC129是一款8通道125MHz采样率16位AD采集FMC子卡,符合VITA57.1规范,可以作为一个理想的IO模块耦合至FPGA前端,8通道AD通过高带宽的FMC连接器(HPC)连接至FPGA从而大大降低了系统信号延迟。 该板卡支持板上可编…

git commit之前,没有pull最新代码,导致无法push代码如何解决?——git三板斧

一、报错: 如果在 git commit 之前没有 pull 最新代码,再进行 push 操作可能会出现冲突,导致无法 push 代码。此时,git 会提示类似以下的错误信息: error: failed to push some refs to gitgithub.com:username/repo…

OSSIM进行主机漏洞扫描(03)

OSSIM进行主机漏洞扫描方式 按照如图选择,ENVIRONMENT–SCAN JOBS–NEW SCAN JOB进入新增页面 其中各选项含义如下 Job Name:扫描任务名称。 Select Sensor:扫描的嗅探器。 Profile:扫描的类型,包括Deep- Non destructive Full and Slow scan(深入)、D…

【完整版】2023二级建造师《建筑实务》真题答案解析(2天考3科)

2023二级建造师考试将在6月3日、4日举行,2023二建《市政实务》考试时间(2天考3科):6月4日 9:00-12:00, 考后甘建二将及时发布2023年二建市政实务真题及答案解析,敬请关注 2天考3科地区:四川、山…

1个月1000家店,库迪起飞

5月30日最新消息,库迪咖啡第3000家门店在北京开业。 从2022年10月到4月,半年开了2000家。4月到5月更夸张,1个月开了一千家店。 这就是库迪速度,线下疯狂扩张,线上也没闲着。 今天在抖音本地生活热销榜,大…

华为OD机试题【导师请吃火锅】【2023 B卷 100分】

文章目录 🎯 前言🎯 题目描述🎯 解题思路📙 Python实现代码📗 Java实现代码📘 C语言实现: 🎯 前言 🏆 《华为机试真题》专栏含2023年牛客网面经、华为面经试题、华为OD机…

5 从Win32过度到MFC

文章目录 配置设置建立MFC工程的三部曲1.建立CWinApp 类的派生类2.重写CWinApp3.定义CWinApp派生类的全局变量全部代码 添加对话框资源创建窗口类继承CDialog 导入资源文件修改资源文件ID加载资源文件 全部代码 配置设置 建立MFC工程的三部曲 1.建立CWinApp 类的派生类 class…

四、初探[ElasticSearch]集群架构原理与搜索技术

目录 一、浅析Elasticsearch架构原理1.Elasticsearch的节点类型1.1 Master节点1.2DataNode节点 二、分片和副本机制2.1分片2.2副本2.3指定分片、副本数量2.4查看分片、主分片、副本分片 三、Elasticsearch工作流程3.1Elasticsearch文档写入原理3.2Elasticsearch检索原理 四、El…

Java开发手册中为什么要求三目运算符必须要注意类型对齐

场景 java开发手册中对于三目运算符的使用要求如下: 【强制】三目运算符 condition? 表达式 1 : 表达式 2 中,高度注意表达式 1 和 2 在类型对齐时, 可能抛出因自动拆箱导致的 NPE 异常。 说明:以下两种场景会触发类型对齐的拆箱操作&am…

华为路由器 NAT 配置

拓扑图 静态 NAT 静态地址转换是指外部网络和内部网络之间的地址映射关系由配置确定,该方式适用于内部网络与外部网络之间存在固定访问需求的组网环境。静态地址转换支持双向互访:内网用户可以主动访问外网,外网用户也可以主动访问内网。 一…

2023国际管理会计教育联盟发展论坛在沪成功召开

2023年5月7日,由教育部中外人文交流中心、国际管理会计教育联盟(下称“联盟”)主办,中国商业会计学会、上海交通大学安泰经济与管理学院承办的2023国际管理会计教育联盟发展论坛(下称“发展论坛”)在上海成…

第4章:SpringMVC的域对象共享数据

1、使用ServletAPI向request域对象共享数据 ①控制器 Controller public class HelloController {RequestMapping("/test")public String index(HttpServletRequest request){request.setAttribute("test","test666");return "index"…

避坑之网上下单的手机流量卡为什么老是失败!

最近有一些小伙伴们反应:在网上下单的手机流量卡,经常提示下单失败,不是这问题就是那问题的。 对于小伙伴们的诉求,小编向来是来者不拒的。今天就为大家整理一下下单失败的四大原因。 失败原因一:下单信息填写错误 下…

javax.validation常用注解

javax.validation 提供了一系列的注解,用于在 Java Bean 中对属性进行验证,主要有以下几种: NotNull:验证对象不可为 null;NotEmpty:验证字符串,数组,Collection,Map不可…

软件工程期末题目分析

一、软件工程概论 1.当你准备参与开发一个系统的时候,如果你对这个系统的问题领域不是很熟悉,那么最好不要采用以下哪种系统开发模型?(A) A、瀑布模型B、原型模型C、螺旋模型D、喷泉模型 瀑布模型模型要求用户需求明…

Selenium浏览器自动化怎么上传文件

Selenium 封装了现成的文件上传操作。但是随着现代前端框架的发展,文件上传的方式越来越多样。而有一些文件上传的控件,要做自动化控制会更复杂一些,这篇文章主要讨论在复杂情况下,如何通过自动化完成文件上传。 1. input 元素上传…

Windows 脚本批量打开文件

Windows 脚本批量打开文件 应用场景 对自己个人而言,每次学习某个内容,要打开一系列学习文档、代码和网页 可应用于执行某个任务需要一次性打开多个文件的场景。 方法 脚本内容 echo offstart "" "E:\Records\WebDesignLearning\la…

【iOS】--响应者链

响应者链 iOS响应者链是一种事件处理机制,它描述了在iOS系统中,当一个事件(比如用户点击屏幕或者发送手势)发生时,它将从触发事件的源头开始,按照预定义的顺序传递给各个视图或控件进行处理,直…

搭建Nextcloud私有云【零基础搭建私有云盘并内网穿透远程访问】

文章目录 摘要视频教程1. 环境搭建2. 测试局域网访问3. 内网穿透3.1 ubuntu本地安装cpolar3.2 创建隧道3.3 测试公网访问 4 配置固定http公网地址4.1 保留一个二级子域名4.1 配置固定二级子域名4.3 测试访问公网固定二级子域名 转载自cpolar极点云的文章:使用Nextcl…

chatgpt赋能python:Python同名变量:了解Python变量定义规则和注意事项

Python同名变量:了解Python变量定义规则和注意事项 Python作为一门高级编程语言,拥有着灵活性和可读性,广泛应用于软件开发、数据分析和人工智能领域。在Python编程中,变量是非常重要的概念,在程序中扮演着存储和读取…