前言

使用参数化测试化后,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. PLSQL-解析XML

    DECLARE v_xmlclob CLOB := '<?xml version="1.0" encoding="UTF-8"?> <head ...

  2. nacos服务注册源码解析

    1.客户端使用 compile 'com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:2.2.3.RELEASE' compi ...

  3. Bugku-cms1

    一.先用御剑扫描 二.点击第一个目录,发现sql文件 三.把它载下来,用Notepad++打开.发现管理员的账号和密码(admin的密码好像被人改了,然后我用admin888登的后台)  四.后台地址 ...

  4. ABBYY FineReader 15快速转换文档详解

    作为一款专业的"PDF编辑器",用户可通过使用ABBYY FineReader  15的"快速转换"功能,将各种格式的一个或多个文件合并PDF文档.Micros ...

  5. 自定义IDM的网页嗅探下载浮条样式

    如果大家有用过IDM(Internet Download Manager)下载器的朋友应该会知道,我们在安装完IDM后,打开网页时,有时网页上会出现一个IDM的下载浮窗,这就是IDM的嗅探下载浮条. ...

  6. JavaScript中的链式调用

    链模式 链模式是一种链式调用的方式,准确来说不属于通常定义的设计模式范畴,但链式调用是一种非常有用的代码构建技巧. 描述 链式调用在JavaScript语言中很常见,如jQuery.Promise等, ...

  7. VueCli 4.0+ 版本安装插件与VueCLI 旧版本的不同

    通过VueCli 脚手架 4+ 版本创建的项目,在引入插件文件并配置时,是通过 import {Create* } ,旧版本是直接导入全部,在配置相应的文件时,重新new 一个:然后再通过Vue 进行 ...

  8. 浅谈JAVA servlet

    1.servlet是什么? servlet的本质是接口,接口就是一种规范.我们来看一下servlet接口中都有哪些函数: 图片来源:https://www.cnblogs.com/whgk/p/639 ...

  9. Windows下django项目部署 通过Apache2.4+mod_wsgi

    经过几天踩坑,记录在Windows10下通过Apache2.4部署Django项目的过程 运行环境: 先说下环境,怎么安装倒是其次的,版本很重要,我是根据mod_wsgi的版本要求下载的各个版本(py ...

  10. 网络编程原理与UDP实现

    如何发送数据包? Q:当应用程序产生数据的时候,需要去构造数据包并发送到网络上去,但是由谁负责处理呢? A:现代操作系统负责数据包得构造与发送,应用程序只需提供数据. 当应用程序产生数据时,应用程序将 ...