前言

使用参数化测试化后,allure的报告如下显示:

源代码如下:

# -*- coding: utf-8 -*-
# @Time : 2020/12/13 17:27
# @Author : longrong.lang
# @FileName: test_param_title.py
# @Software: PyCharm
# @Cnblogs :https://www.cnblogs.com/longronglang
import allure
import pytest @pytest.fixture()
def loginTo(request):
# 传入参数,登录
param = request.param
print(f"\nuserName : {param['userName']} ,passWord : {param['passWord']}")
# 登录成功,返回
return {"code": "0", "msg": "success!"} data = [{"userName": "jojo", "passWord": "1"},
{"userName": "rongrong", "passWord": "1"},
{"userName": "lilei", "passWord": "1"}
] @allure.story("讲述登录成功,返回成功的故事!")
@allure.title("测试登录接口")
@pytest.mark.parametrize("loginTo", data, indirect=True)
def test_loginTo(loginTo):
assert loginTo['msg'] == 'success!'

从代码看出,其实就是@allure.title("测试登录接口"),写死的呀。

如何解决

那么怎么搞?

这个问题问的好呀,动态的标题可以实现吗?试试呗?

方案一

直接拼接loginTo

示例代码如下:

# -*- coding: utf-8 -*-
# @Time : 2020/12/13 17:27
# @Author : longrong.lang
# @FileName: test_param_title.py
# @Software: PyCharm
# @Cnblogs :https://www.cnblogs.com/longronglang
import allure
import pytest @pytest.fixture()
def loginTo(request):
# 传入参数,登录
param = request.param
print(f"\nuserName : {param['userName']} ,passWord : {param['passWord']}")
# 登录成功,返回
return {"code": "0", "msg": "success!"} data = [{"userName": "jojo", "passWord": "1"},
{"userName": "rongrong", "passWord": "1"},
{"userName": "lilei", "passWord": "1"}
] @allure.story("讲述登录成功,返回成功的故事!")
@allure.title("测试登录接口 {loginTo}")
@pytest.mark.parametrize("loginTo", data, indirect=True)
def test_loginTo(loginTo):
assert loginTo['msg'] == 'success!'

allure报告

这样会使得报告,更具可读性,直观一些

方案二

使用元祖来做参数化,加一个参数为标题

示例代码如下:

# -*- coding: utf-8 -*-
# @Time : 2020/12/13 17:27
# @Author : longrong.lang
# @FileName: test_param_title.py
# @Software: PyCharm
# @Cnblogs :https://www.cnblogs.com/longronglang
import allure
import pytest data = [("jojo", "1", "登录成功的用例"),
("rongrong", "1", "登录成功的用例"),
("lilei", "1", "登录失败的用例")
] @allure.story("讲述登录成功,返回成功的故事!")
@allure.title("测试登录接口 {title}")
@pytest.mark.parametrize("userName,password,title", data)
def test_loginTo(userName, password, title):
print(userName + "\t" + password + "\t" + title)

allure报告

这种做法的优点

  • 可以自定义各式各样的标题
  • 单独一个值去维护标题值
  • 可读性比较好,容易维护

Pytest 学习(二十五)- 解决pytest参数化测试标题都一样问题的更多相关文章

  1. Java开发学习(二十五)----使用PostMan完成不同类型参数传递

    一.请求参数 请求路径设置好后,只要确保页面发送请求地址和后台Controller类中配置的路径一致,就可以接收到前端的请求,接收到请求后,如何接收页面传递的参数? 关于请求参数的传递与接收是和请求方 ...

  2. Salesforce LWC学习(二十五) Jest Test

    本篇参看: https://trailhead.salesforce.com/content/learn/modules/test-lightning-web-components https://j ...

  3. mysql进阶(二十五)解决数据库NO CONNECTION问题

    解决数据库NO CONNECTION问题 前言 数据库版本类型:Mysql5.5 在应用程序连接数据库时,提示数据库连接失败.打开数据库查看,显示如下. 究其原因,是因为mysql服务出现了问题,重启 ...

  4. JavaWeb学习 (二十五)————监听器(Listener)

    一.监听器介绍 1.1.监听器的概念

  5. ElasticSearch7.3学习(二十五)----Doc value、query phase、fetch phase解析

    1.Doc value 搜索的时候,要依靠倒排索引: 排序的时候,需要依靠正排索引,看到每个document的每个field,然后进行排序. 所谓的正排索引,其实就是doc values. 在建立索引 ...

  6. ballerina 学习二十五 项目docker 部署&& 运行

    ballerina 官方提供了docker 的runtime,还是比较方便的 基本项目创建 使用cli创建项目 按照提示操作就行 ballerina init -i 项目结构 添加了dockerfil ...

  7. C#学习基础概念二十五问

    C#学习基础概念二十五问 1.静态变量和非静态变量的区别?2.const 和 static readonly 区别?3.extern 是什么意思?4.abstract 是什么意思?5.internal ...

  8. python3.4学习笔记(二十五) Python 调用mysql redis实例代码

    python3.4学习笔记(二十五) Python 调用mysql redis实例代码 #coding: utf-8 __author__ = 'zdz8207' #python2.7 import ...

  9. 学习笔记:CentOS7学习之二十五:shell中色彩处理和awk使用技巧

    目录 学习笔记:CentOS7学习之二十五:shell中色彩处理和awk使用技巧 25.1 Shell中的色彩处理 25.2 awk基本应用 25.2.1 概念 25.2.2实例演示 25.3 awk ...

随机推荐

  1. MongoDB笔记2018.2.6

    MongoDB笔记2018.2.6 1.先简单接触下linux,大部分教程是在linux环境下的操作,要不然看不懂教程 2.找教程或视频 教程推荐菜鸟教程 学习MongDB前需要懂一定的Mysql语法 ...

  2. Python基础数据类型与for循环

    数据类型:int,bool,str,list, tuple元组,dict字典. 1.数字:12,3,4 在使用print打印数字时,在终端界面中无法判断出打印的是什么类型,当我们需要知道一个值是什么类 ...

  3. Spring扩展之一:ApplicationContextInitializer

    1.介绍 用于Spring容器ConfigurableApplicationContext在刷新之前初始化Spring的回调接口. 通常在需要对应用程序上下文进行一些编程初始化的Web应用程序中使用. ...

  4. Javaweb项目页面实时显示后台处理结果

    http://www.cnblogs.com/dong-xu/p/6701271.html 此博文甚好,项目参照博主代码可实现. 前端页面: <%@ page language="ja ...

  5. impala语句

    0.保留两位小数 round(字段a, 需要保留几位小数) round( data, 4) 1. case wen case when 字段a = '01' and 字段b = '01' and 字段 ...

  6. vue路由参数的获取、添加和替换

    获取路由参数 getUrlKey(name){//获取url 参数 return decodeURIComponent((new RegExp('[?|&]'+name+'='+'([^&am ...

  7. 怎么在苹果笔记本上用Folx重新下载已完成的任务

    大家在完成了任务下载后,有时会将下载的文件移动到其他文件夹中,或者是,当下载的文件已经使用完毕时,有些用户会将文件删除.以上的两种情况,都会导致Folx所属任务查看功能失效,也就是说,无法找到任务对应 ...

  8. 用FL Studio来给电子音乐混音的方法

    FL Studio也算是音乐人用的比较多的编曲.混音软件了,FL Studio的一大的特色就是电子音乐的制作.尤其是对混音的操作,混音是电音制作过程中一个非常重要的环节,非常重要. 混音是什么?混音的 ...

  9. DIV滚动条设置添加 CSS滚动条显示与滚动条隐藏

    <!DOCTYPE html> <html> <head> <meta charset="gb2312" /> <title& ...

  10. 精尽 MyBatis 源码分析 - SqlSession 会话与 SQL 执行入口

    该系列文档是本人在学习 Mybatis 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释(Mybatis源码分析 GitHub 地址.Mybatis-Spring 源码分析 GitHub ...