首页 > 其他分享 >Pytest参数化用例

Pytest参数化用例

时间:2024-05-14 18:44:33浏览次数:23  
标签:search right pytest mark Pytest 参数 化用例 password

Pytest参数化用例

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

单参数

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参数重命名

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文件,将下面内容添加进去,运行脚本后,才可以正常显示中文的重命名。

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")

笛卡尔积

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}")

标签:search,right,pytest,mark,Pytest,参数,化用例,password
From: https://www.cnblogs.com/hogwarts/p/18191929

相关文章

  • pytest Mark标记测试用例
    Mark标记测试用例场景:只执行符合要求的某一部分用例,可以把一个web项目划分为多个模块,然后指定模块名称执行。解决:在测试用例方法上加@pytest.mark.标签名执行:-m执行自定义标记的相关用例pytest-stest_command_param.py-m=webtestpytest-stest_command_param.py-map......
  • Pytest测试框架
    Pytest背景与优势pytest能够支持简单的单元测试和复杂的功能测试;pytest可以结合Requests实现接口测试;结合Selenium、Appium实现自动化功能测试;使用pytest结合Allure集成到Jenkins中可以实现持续集成;pytest支持315种以上的插件,拥有丰富的第三方插件,而且支持定制化插件开发;pyt......
  • Pytest配置文件pytest.ini
    pytest.ini配置pytest.ini是什么pytest.ini是pytest的配置文件可以修改pytest的默认行为不能使用任何中文符号,包括汉字、空格、引号、冒号等等pytest.ini修改用例的命名规则配置日志格式,比代码配置更方便添加标签,防止运行过程报警告错误指定执行目录排除搜索......
  • 如何优雅的使用aop记录带参数的复杂web接口日志
    1、新建一个自定义注解packagecom.ninestar.userFile.aop.annotation;importcom.ninestar.userFile.constant.Constants;importjava.lang.annotation.*;/***系统日志注解**@AuthorTring*@Date2024年5月7日14:31:18*/@Target(ElementType.METHOD)@Re......
  • python类函数定义第一个参数必须是self
     如果不写self,则会报错   加上之后错误就会消失 ......
  • Rust数据驱动-参数化测试
    需求假如有以下测试用例,同样的逻辑,我们需要测试多组数据。modtests{#[test]fntest_add(){leta=1;letb=2;assert_eq!(a+b,3);}}一般情况下我们不在用例中使用for循环(即subtests子测试模式)来验证多组数据。modtest......
  • pytest 学习 - 03 fixture
    前言有的场景setup与teardown无法满足,如:有的用例需要登录才能执行,有的用例不需要登录。fixturefixture可以满足以上特殊的场景。1.只有登录的函数上面加上 @pytest.fixture()2. 在要使用的测试方法中传入(登录函数名称),就先登录案例[email protected]()def......
  • shell传递参数
    执行脚本时传入参数[root@VM-12-15-centoshome]#vitest.sh#编写如下echo"Shell传递参数实例!";echo"执行的文件名:$0";echo"第一个参数为:$1";echo"第二个参数为:$2";echo"第三个参数为:$3";#设置权限[root@VM-12-15-centoshome]#chmod+xtest.sh......
  • m基于遗传优化的LDPC码OMS译码算法最优偏移参数计算和误码率matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:   2.算法涉及理论知识概要       低密度奇偶校验码(Low-DensityParity-CheckCodes,LDPCcodes)因其优秀的纠错能力和接近香农极限的性能而广泛应用于现代通信系统中。有序统计译码(OrderedStatisticsDecoding,OSD)......
  • 理解Nginx超时时间参数
    Nginx是一款自由、开源、高性能的HTTP和反向代理服务器,它可以通过不同的设置来提高网站的性能和安全性。其中,设置Nginx超时时间非常重要,因为它将直接影响网站的响应速度和用户体验。本文将从多个方面详细阐述Nginx超时时间的设置方法与注意事项。一、请求超时时间设置请求超时时......