当前位置: 首页 > news >正文

接口自动化学习三:参数化parameterize

使用parametrize之前:

def add(x,y):
    return x+y
class TestAddFunction(object):
    def test01(self):
        res=add(2,4)
        assert 6==res

    def test02(self):
        res=add(4,6)
        assert 10==res

parametrize参数化之后:

import pytest
def add(x,y):
    return x+y

data=[(10,20,30),(200,300,600)]

class TestAddFunction(object):
    @pytest.mark.parametrize("x,y,expect",data)  
    def test_add(self,x,y,expect):#通用测试方法
        res=add(x,y)  #调用待测函数
        assert expect==res   #断言预期结果是否正确

参数化:@pytest.mark.parametrize(“a,b,expect”,[(),()…])
参数2必须要求是[(),()…]格式

数据来源于json文件的话,需要对其进行处理
在这里插入图片描述
封装一个函数,对json进行处理:

def read_json_data():
    with open("add_data.json","r",encoding="utf8") as f:
        json_data=json.load(f)
        data_list=[]
        # print(json_data)
        for data in json_data:
            val=data.values()
            tmp=tuple(val)
            data_list.append(tmp)
        print(data_list)

在这里插入图片描述
将文件名作为一个参数,传入进去:

def read_json_data(file_name):
    with open(file_name,"r",encoding="utf8") as f:
        。。。。。
if __name__ == '__main__':
    # read_json_data()
    res_list=read_json_data("add_data.json")
    print(res_list)

后续需要增加测试数据的时候,只需要在json文件中添加更多数据,代码不需要修改。

参数化步骤:
1.将 测试数据 ,按照[{},{}…]形式,组织到json文件中;
2.读取json文件,将数据转为[(),()…]格式
3.在通用测试方法的上一行,添加装饰器@pytest.mark.parametrize()
4.传参。 参1:字符串类型,内容为json文件中一组数据的key。参2:[(),()…]格式的数据。
5.给通用测试方法传入形参(与参1字符串内容一致)。

相关文章:

  • 多品种金融数据高效导入丨DolphinDB 希施玛历史数据自动化导入模块介绍
  • 【目标检测】【深度学习】【Pytorch版本】YOLOV3模型算法详解
  • JVM深入原理(一+二):JVM概述和JVM功能
  • 《解锁Qwen2.5-Omni:AI全模态大模型部署实战指南》
  • 企业出海如何选择全球化软件工具?Websoft9 推荐开源作为理性可行的选择
  • 写给新人的深度学习扫盲贴:向量与矩阵
  • DayDreamer: World Models forPhysical Robot Learning
  • 基于图扑 HT 技术的电缆厂 3D 可视化管控系统深度解析
  • 第3期 基于改进YOLOv8的卫星下的船舰检测算法与系统实现
  • STM32平衡车开发实战教程:从零基础到项目精通
  • 顺序容器 -forward list单链表
  • YOLO系列
  • 嵌入式电量与功耗优化:从理论到实战
  • Linux:环境变量
  • LLaMA-Factory大模型微调全流程指南
  • 【rabbitmq基础】
  • Nature Communications上交、西湖大学、复旦大学研发面向机器人多模式运动的去电子化刚弹耦合高频自振荡驱动单元
  • 从零开始学Rust:结构体(struct)详解
  • leetcode每日一题:数组美丽值求和
  • 【重点】文件摆渡系统如何简化跨平台跨网络的文件传输?
  • 做商城网站需要备案吗/美国婚恋网站排名
  • 做五金批发的适合在哪些网站/深圳关键词推广优化
  • gis做图网站/长春seo快速排名
  • 网站怎么做才能上百度首页/上海网站推广排名公司
  • 珠海网站制作推广/常德今日头条新闻
  • 网站建设方案怎样写/世界军事新闻