首页 > 其他分享 >(allure报告定制)动态显示模块名和用例标题

(allure报告定制)动态显示模块名和用例标题

时间:2023-10-09 16:11:43浏览次数:34  
标签:动态显示 title dynamic 标题 用例 allure test

场景:当自动化测试使用excel测试用例驱动时,动态显示模块名和用例标题就很有用。

https://blog.csdn.net/lixiaomei0623/article/details/120273737

一、allure报告动态参数化展示模块名和用例标题

使用@pytest.mark.parametrize 参数化完成数据驱动时,如果标题写死或者使用别名的方式 这样在报告中的可读性也不高。

如何更美观的展示报告,增加报告的可读性呢,我们需要把从excel中获取到的sheetName作为动态的模块名,caseName作为每条用例的名称。

方法一:allure.dynamic 动态属性

 只需要增加两行代码,如下图所示

def testApi(self, data):
    # 动态添加模块和标题
    allure.dynamic.story(data['sheetname'])
    allure.dynamic.title(data['casename'])

上边用的是下边这种方式:pytest 结合 allure 描述用例的时候我们一般使用 @allure.title 和 @allure.description 描述测试用例的标题和详情。
在用例里面也可以动态更新标题和详情,使用allure.dynamic方法实现。

allure.dynamic 动态属性

feature 模块

allure.dynamic.feature(feature_name)

功能点 story

allure.dynamic.story(case_story)

 用例标题 title

allure.dynamic.title(case_title)

title 用例标题

用例标题也可以被动态更新

@allure.title("This title will be replaced in a test body")
def test_with_dynamic_title():
    assert 2 + 2 == 4
    allure.dynamic.title('After a successful test finish, the title was replaced with this line.')

allure.dynamic支持的常用方法,灵活使用能够重外部数据控制测试用例的详细展示内容

 

 

 

还有另一种方法动态展示用例标题:

参数化

参数化时候,可以使用@allure.title给用例不同标题

@allure.title("Parameterized test title: adding {param1} with {param2}")
@pytest.mark.parametrize('param1,param2,expected', [
    (2, 2, 4),
    (1, 2, 5)
])
def test_with_parameterized_title(param1, param2, expected):
    assert param1 + param2 == expected

也可以在用例里面使用allure.dynamic.title更新用例的标题

import pytest
import allure

 
def login(username, password):
    '''登录'''
    print("输入账号:%s" % username)
    print("输入密码:%s" % password)
    # 返回
    return {"code": 0, "msg": "success!"}
 
 
# 测试数据
test_datas = [
    ({"username": "yoyo1", "password": "123456"}, "success!", "输入正确账号,密码,登录成功"),
    ({"username": "yoyo2", "password": "123456"}, "failed!", "输入错误账号,密码,登录失败"),
    ({"username": "yoyo3", "password": "123456"}, "success!", "输入正确账号,密码,登录成功"),
]
 
 
@allure.story("登录用例")
@pytest.mark.parametrize("test_input,expected,title",
                         test_datas
                         )
def test_login(test_input, expected, title):
    '''测试登录用例'''
    # 获取函数返回结果
    result = login(test_input["username"], test_input["password"])
    # 断言
    assert result["msg"] == expected
    allure.dynamic.title(title)

 

二、allure报告中allure.title 在动态参数后如何去掉后方的参数化显示
动态参数化后的报告,所有参数都默认显示出来,把用例标题的样式给挤乱了。

如何解决?
1.解决方法如下 ,修改第三方包包的listener.py文件。
找到python目录下 \Lib\site-packages\allure_pytest\listener.py 文件

(/usr/local/python3/lib/python3.7/site-packages/allure_pytest/listener.py )

(如果在python目录未找到,就在当前项目的虚拟环境下边找到这个文件)

  将下图中红色部分test_result.parameters.extend([]) 中参数改成空列表就行了

 

 

标签:动态显示,title,dynamic,标题,用例,allure,test
From: https://www.cnblogs.com/may18/p/17751978.html

相关文章

  • allure 报告页面logo和名称定制
    1)找到本地allure安装路径,找到static文件夹(我的是:/Users/may/Downloads/allure-2.7.0/plugins/custom-logo-plugin/static), 将要更换的图片放入这个文件夹中,命名为allure_log.jpeg 2)修改取值文件,在同一个文件夹(static)下,找到styles.css,打开该文件(不建议用记事本)原来代码如......
  • allure定制化
    安装allure-pytest库pipinstallallure-pytest使用@allure.feature来标记一个特性,使用@allure.story来标记一个故事,使用@allure.step来标记一个步骤。当你运行测试并生成Allure报告时,你可以在命令行中使用allureserve命令来查看报告。你也可以将报告生成为HTML文件,然后在浏......
  • 静态方法不依赖实例对象的调用例题
    publicclassNull{publicstaticvoidsmile(){System.out.println("haha");}publicstaticvoidmain(String[]args){((Null)null).smile();}} 问代码之后之后,能否正常打印? 答案:是可以的,打印“haha” 解释:由于静态方法......
  • 04-共阳数码管的动态显示
    共阳数码管的动态显示代码如下:#include<REGX52.H>voidDisplay_Dynamic();unsignedcharmonth=1;voidDelay_ms(unsignedintxms){ unsignedinti,j; for(i=0;i<xms;i++){ for(j=0;j<299;j++); }}voidDelay(unsignedchart){ while(t--){ //......
  • Metadata.allowExtensions 注解的一个实际使用例子
    @UI注解随着SAP标准的FioriElements应用一起发布。如果SAP发布的标准CDSview包含了@Metadata.allowExtensions:true的注解,意味着Partner或者其他IndustrySolution可以通过Extensionview的方式来override标准CDSview里的annotation,前提是这些Extensio......
  • 【14.0】中间件、跨域资源共享、后台任务、测试用例
    【一】中间件【1】中间件介绍FastAPI中间件是在处理请求和响应的过程中介入的组件,允许你在请求到达处理函数之前或响应离开处理函数之后执行一些逻辑。中间件在FastAPI中起到非常灵活的作用,可以用于日志记录、身份验证、异常处理等。【2】中间件的工作原理(1)注册中间件......
  • pytest + yaml 框架 -56. 输出日志优化+allure报告优化
    前言v1.4.8版本优化接口请求和响应输出日志,生成的allure报告也按步骤优化request和response详情日志优化日志用例test_log1:-name:log1request:url:http://127.0.0.1:8000/api/test/demomethod:GETvalidate:-eq:[status_code,200]-eq:......
  • 在idea中使用allure
    首先配置maven和allure环境--略环境可能遇到问题见:点击查看在pom.xml文件中引入扫描build标签:<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-mav......
  • Allure
    简介Allire是一款轻量级的开源自动化测试报告生成框架,JAVA语言开发的,支持大部分测试框架,如pytest,unittest等,生成的测试报告是最漂亮的。,而且还可以配合pytest和jenkin实现CI集成官方文档:https://docs.qameta.io/allure/#_pytest 安装安装JAVA环境Allure的运行需要以来jav......
  • uvm 用例选择机制(run_test)
    UVM的用例选择机制run_test()1、编写基于UVM的最简单代码harness.vmoduleharness(clk,rst);inputclk;inputrst;endmoduletest_uvm.sv```sv`include"uvm_pkg.sv"importuvm_pkg::*;classmy_driverextendsuvm_driver;`uvm_component_utils(my_driver);//......