【pytest】参数化parametrize

  • 前言:
    • 软件测试中,输入相应值,检查期望值,是常见测试方法。
    • 在自动化测试中,一个测试用例对应一个测试点,通常一组测试数据无法完全覆盖测试范围,所以,需要参数化来传递多组数据。
    • pytest的测试用例参数化使用如下装饰器即可完成
@pytest.mark.parametrize(argnames, argvalues)
# 参数:
# argnames:以逗号分隔的字符串
# argvaluse: 参数值列表,若有多个参数,一组参数以元组形式存在
  • 一个参数多个值

  • 多个参数多个值

  • 多个参数的混合使用,笛卡尔积

  • 实际使用场景

import pytest,requests
test_data = [
    ("M", {"message": "update some data!", "code": 0}),
    ("F", {"message": "update some data!", "code": 0}),]

@pytest.mark.parametrize("test_input, expect", test_data)
def test_updata_info_32(login_fix, test_input, expect):
    '''修改个人信息'''
    url = "http://xxxxxx:9000/api/v1/userinfo"
    body = {"name": "test","sex": test_input, "age": 20,"mail": "xxxxxx@qq.com"}
    r = requests.post(url, json=body) 
    print(r.text)
    assert r.json()["message"] == expect["message"]
    assert r.json()["code"] == expect["code"]
posted @   Tony_xiao  阅读(98)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
点击右上角即可分享
微信分享提示