前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Pytest参数化用例

Pytest参数化用例

原创
作者头像
霍格沃兹测试开发Muller老师
发布于 2024-05-14 10:33:19
发布于 2024-05-14 10:33:19
11801
代码可运行
举报
运行总次数:1
代码可运行

Pytest参数化用例

参数化:通过参数的方式传递数据,从而实现数据与脚本分离,并且可以实现用例的重复生成与执行。undefined装饰器:@pytest.mark.parametrize

单参数

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
import pytest

search_list = ["appium","selenium","pytest"]

# 参数化实现测试用例的动态生成
# 第一种:单参数情况,每一条测试数据都会生成一条测试用例
@pytest.mark.parametrize("search_key",["appium","selenium","pytest"," "])
def test_search(search_key):
    assert search_key in search_list

多参数+ids参数重命名

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
import pytest

# 第二种:多参数情况
@pytest.mark.parametrize("username,password",[["right","right"],
                                              ["wrong","wrong"],
                                              [" ","right"],
                                              ["right"," "]
                                              ],
                         # 用例重命名-添加 ids 参数,将别名放在列表中
                         # ids=["right username and right password","wrong username and wrong password","username is null","password is null"])
                         # ids支持中文
                         ids=["正确的用户名和密码","错误的用户名和密码","用户名为空","密码为空"])

def test_login(username,password):
    print(f"登录的用户名:{username}, {password}")

注意:必须在同目录下创建conftest.py文件,将下面内容添加进去,运行脚本后,才可以正常显示中文的重命名。

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
def pytest_collection_modifyitems(items):
    """
    测试用例收集完成时,将收集到的用例名name和用例标识nodeid的中文信息显示在控制台上
    """
    for i in items:
        i.name=i.name.encode("utf-8").decode("unicode_escape")
        i._nodeid=i.nodeid.encode("utf-8").decode("unicode_escape")

笛卡尔积

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
import pytest

@pytest.mark.parametrize("a",[1,2,3])
@pytest.mark.parametrize("b",["你","好","啊"])
@pytest.mark.parametrize("c",["a","b","c"])
def test_param(a,b,c):
    print(f"笛卡尔积形式的参数化中 a={a},b={b},c={c}")

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
图解MySQL的语句执行流程
点评:该文章《【MySQL】MySQL安装》提供了一份详尽的MySQL在CentOS系统上的安装指南。文章首先指导用户检查系统中是否已安装MySQL或MariaDB,并提供了卸载旧版本的方法,确保了安装环境的干净。随后,文章详细阐述了如何配置MySQL的yum源,并通过yum包管理器安装MySQL社区版服务器,期间还贴心地提醒了可能遇到的秘钥过期问题及解决方案。
小白的大数据之旅
2024/11/26
1850
图解MySQL的语句执行流程
MySQL执行SQL语句过程详解
开发人员基本都知道,我们的数据存在数据库中(目前最多的是MySQL和Oracle,由于作者更擅长MySQL,所以这里默认数据库为MySQL),服务器通过sql语句将查询数据的请求传入到MySQL数据库。数据库拿到sql语句以后。都是进行了哪些操作呢?这里向大家介绍下我的个人的理解,欢迎大家评论区批评指正。
星哥玩云
2022/08/17
3.8K0
MySQL执行SQL语句过程详解
MySQL的逻辑架构--逻辑架构剖析、SQL执行流程、数据库缓冲池(buffer pool)
TCP连接收到请求后,必须分配给一个线程专门与这个客户端的交互,所以还有个线程池,每一个连接从线程池中获取线程,省去了创建和销毁线程的开销 所以连接管理的职责就是负责认证、管理连接、获取权限信息
才疏学浅的木子
2022/11/22
6990
MySQL的逻辑架构--逻辑架构剖析、SQL执行流程、数据库缓冲池(buffer pool)
麦斯蔻(MySQL)的一生
🐬 在一个遥远的数字王国里,MySQL是一位勤劳的数据库管家,负责管理和守护着庞大的数据宝库。每当有人向王国发出查询请求,就是麦斯蔻(MySQL)大显身手的时刻。
不惑
2024/05/14
4720
麦斯蔻(MySQL)的一生
Mysql语句的执行过程
当你希望MySQL能够以更高的性能运行查询时,最好的办法是弄清楚MySQL是如何优化和执行查询。《高性能MySQL》
_春华秋实
2018/08/17
2.7K0
Mysql语句的执行过程
MySQL探秘(二):SQL语句执行过程详解
 昔日庖丁解牛,未见全牛,所赖者是其对牛内部骨架结构的了解,对于MySQL亦是如此,只有更加全面地了解SQL语句执行的每个过程,才能更好的进行SQL的设计和优化。  当希望MySQL能够以更高的性能运行查询时,最好的办法就是弄清楚MySQL是如何优化和执行查询的。一旦理解了这一点,很多查询优化工作实际上就是遵循一些原则能够按照预想的合理的方式运行。  如下图所示,当向MySQL发送一个请求的时候,MySQL到底做了什么:
程序员历小冰
2018/08/30
1.9K0
MySQL探秘(二):SQL语句执行过程详解
MySQL架构与执行流程
  MySQL数据库自己用了也有两三年了,基本上只是掌握增删改查的sql语句,从没有思考过MySQL的内部到底是怎么根据sql查询数据的,包括索引的原理,只知道加了索引查的就快,不知道为什么加上索引效率就会提升,包括索引的限制和优化也知之甚少,所以决定开一专题来学习与记录MySQL。
会说话的丶猫
2020/08/06
8500
MySQL架构与执行流程
MySQL执行流程
server层:连接器,查询缓存,解析器,预处理器,优化器等,所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图,函数等,还有一个通用的日志模块 binglog日志模块。
阿珍
2024/12/12
2340
MySQL执行流程
从Mysql架构看一条查询sql的执行过程
首先,MySQL必须要运行一个服务,监听默认的3306端口。在我们开发系统跟第三方对接的时候,必须要弄清楚的有两件事。
架构狂人
2023/10/26
3350
从Mysql架构看一条查询sql的执行过程
浅谈MySQL的整体架构
由于换工作,找房子这一系列事情都推在了一起,所以最近停更了一个多月。现在所有的事情都已尘埃落定,我也可以安安静静的码字啦。
陈琛
2020/06/12
4360
浅谈MySQL的整体架构
【SQL】Mysql中一条sql语句的执行过程
先来看下MySQL的体系结构,下图是在MySQL官方网站上扒下来的,所以有很高的权威性和准确性。
人不走空
2024/03/01
6460
【SQL】Mysql中一条sql语句的执行过程
重生之MySQL SQL 执行的 7 大关键步骤,解锁新技能
我的名字是萧剑臣,一个 34 岁的普通人。2024 年接近尾声,浅圳这座钢铁森林依旧喧嚣。
码哥字节
2024/11/23
760
重生之MySQL SQL 执行的 7 大关键步骤,解锁新技能
MySQL原理简介—1.SQL的执行流程
如果Java系统要访问数据库,首先得与数据库建立一个网络连接。那么这个连接由谁来建立呢?其实就是由MySQL驱动来建立的,它会在底层与数据库建立网络连接。有了网络连接才能去发送请求给数据库服务器,如下图示:
东阳马生架构
2025/02/04
1380
一条SQL查询语句是如何执行的?
MySQL是典型的C/S架构(客户端/服务器架构),客户端进程向服务端进程发送一段文本(MySQL指令),服务器进程进行语句处理然后返回执行结果。
星哥玩云
2022/06/08
1.5K0
一条SQL查询语句是如何执行的?
一、 MySQL的起源
MySQL用了很久,但是一直也是工作的使用,对于MySQL的知识点都比较零散碎片,一直也没有整体梳理过,趁着最近不忙,梳理一下相关的知识点。
云扬四海
2022/09/26
8710
MySQL SQL的完整处理流程
客户端提交一条sql语句,先在查询缓存中查询,如果缓存没有命中,将会进行查表操作。查表的流程总结过为如下:
终有救赎
2023/11/18
2880
MySQL SQL的完整处理流程
面试官:你说说一条查询SQL的执行过程?| 文末送书
为了理解这个问题,先从Mysql的架构说起,对于Mysql来说,大致可以分为3层架构。
艾小仙
2021/08/25
5100
面试官:你说说一条查询SQL的执行过程?| 文末送书
mysql的三层体系结构
第2层sql处理层(SQL Layer):主要有SQL Interface、Parser、Optimizer、Cache和Buffer
Kami米雅
2021/12/10
1.2K0
MySQL架构与SQL执行流程
负责监听对 MySQL Server 的各种请求,接收连接请求,转发所有连接请求到线程管理模块。每一个连接上 MySQL Server 的客户端请求都会被分配(或创建)一个连接线程为其单独服务。而连接线程的主要工作就是负责 MySQL Server 与客户端的通信, 接受客户端的命令请求,传递 Server 端的结果信息等。线程管理模块则负责管理维护这些连接线程。包括线程的创建,线程的 cache 等
Java学习录
2019/06/01
1.7K0
「mysql优化专题」这大概是一篇最好的mysql优化入门文章(1)
【mysql优化专题】:本专题全文围绕mysql优化进行全方位讲解,本篇为优化入门篇,让大家知道为什么要优化,究竟在优化什么。喜欢的朋友可以关注收藏。 优化,一直是面试最常问的一个问题。因为从优化的角
java进阶架构师
2018/08/15
3630
「mysql优化专题」这大概是一篇最好的mysql优化入门文章(1)
相关推荐
图解MySQL的语句执行流程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档