首页 > 其他分享 >接口自动化 参数化实现步骤

接口自动化 参数化实现步骤

时间:2023-05-19 10:44:22浏览次数:32  
标签:response1 步骤 dadCode 测试数据 json 参数 接口 自动化 parameterized

我们在写接口用例的时候可能同个case,会有不同等价类的传参,传统的固定传参,我们需要同个case写好多遍,但仅仅是传参不一样所以很冗杂。

通过参数化我们可实现测试数据与testcase的分离,简化代码量。

首先参数化用到的包是parameterized包

from parameterized import parameterized

 我们创建一个dada目录,用来存放我们的测试数据,(json文件格式)

e.g

{
  "searchAdressCase": [{
    "desc":"合法的参数",
    "dadCode": "正整数",
    "response1": "0"
  },{
    "desc":"不合法的参数",
    "dadCode": "汉字",
    "response1": "0"
  }]
}

 针对测试数据的json文件我们写一个公共的参数值提取方法

def getAdressCasedata(fileName,dataname,parma):
    # fileName,测试数据josn文件名
    #dataname ,测试数据总key名例如上面的searchAdressCase
    #parma,testcase用到的测试数据里的参数以"XX,XX"格式
    testdata=[]
    file = basedir + os.sep+'data'+os.sep+fileName
    with open(file,encoding='utf-8') as f:
        testcasedata= json.load(f).get(dataname)
        for a in testcasedata:
            parmavalue = []
            parmalist= parma.split(',')
            for i in parmalist:
                parmavalue.append(a.get(i))
            testdata.append(parmavalue)

    return testdata

 

testcase通过@parameterized.expand(上面的参数提取的方法)实现参数化(参数化里的参数,要与case接的参数个数顺序一致)

@parameterized.expand(app.getAdressCasedata("searchAdress.json","searchAdressCase","desc,dadCode,response1"))
    def test01_right(self,desc,dadCode,response1):#参数个数顺序要与expand里的一致,否则会乱套
        if dadCode== '正整数':
            r =  random.randint(1,100)
        else:
            r = str(random.random())
        response = self.searchsonadress.getsonadress(r).json()
        app.logger.info("{}".format(response))
        assert(response.get('code')== int(response1))

 

标签:response1,步骤,dadCode,测试数据,json,参数,接口,自动化,parameterized
From: https://www.cnblogs.com/RonnieQin/p/17414221.html

相关文章

  • 接口优化技巧
     1.批处理批量思想:批量操作数据库,这个很好理解,我们在循环插入场景的接口中,可以在批处理执行完成后一次性插入或更新数据库,避免多次IO。//for循环单笔入库list.stream().forEatch(msg->{    insert();});//批量入库batchInsert();2.异步处理异步思想:针对耗时比较长且......
  • 用Python调用chatGpt接口
    安装openaipipinstallopenai 编写python代码(chat.py)1importopenai2openai.api_key='个人的APIKEY'3whileTrue:4mesgs=[]5user_input=input('我:')6ifuser_input=='end':7break8mesgs.append......
  • Python自动化运维
    2-27在命令行窗口中启动的Python解释器中实现在Python自带的IDLE中实现print("Helloworld")编码规范每个import语句只导入一个模块,尽量避免一次导入多个模块不要在行尾添加分号“:”,也不要用分号将两条命令放在同一行建议每行不超过80个字符使用必要的空行可以增加代码的可读性运......
  • Python自动化
    3-20数据类型转换数据类型转换:   1.int(x):x代指对象,返回值是一个整数类型,对象->整数       x为字符串:字符串应全为整数       x为小数:只保留整数部分       x不能是负数       x为布尔类型:True=1False=0   2.float(x):x......
  • 小D-新版接口自动化教程- 接口自动化测试综合实战
    mysql安装:Win10安装MySQL5.7(图文详解)_51CTO博客_win10安装mysql5.7下载navicat若连接mysql报错:关于连接MySQL8.0.11出现2059错误(baidu.com)......
  • Postman+Newman生成HTML接口测试报告
    NewMan是官方提供的专门用于posman进行自动化的命令行工具环境配置:Node.js:Newman是基于Node.js,所以安装NewMan之前需要保证本地有安装Node.jsNewMan:npminewman-g,安装成功后输入newman-v来检查版本,显示出版本即表示安装成功html格式报告的插件:npminstall-gnewman......
  • 亚马逊AMAZON中国站API详情接口获取商品详情接口
       亚马逊中国站是亚马逊在中国开设的在线购物平台,提供包括图书、电子产品、家居生活、服饰鞋包等各类品类的商品。亚马逊为了满足中国消费者的需求,特别推出了全球购和自营模式两种购物方式,全球购支持跨境购物,自营模式则是由亚马逊直接发货并提供售后服务。同时,亚马逊还提......
  • Html中使用jquery通过Ajax请求WebService接口以及跨域问题解决
    场景VS2019新建WebService/Web服务/asmx并通过IIS实现发布和调用:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/130743584在上面实现发布WebService的基础上,怎样在html中通过jquery对接口发起请求和解析数据。注:博客:https://blog.csdn.net/badao_liumang_qiz......
  • EF Core 主从表修改主键类型步骤
    1.背景有两张表Blog与PostclassDiagramclassBlog{+GuidId+StringName+DateTimeCreateTime+intOrder+List<Post>Posts}classPost{+StringId+StringContent+GuidBlogId+BlogBlog}......
  • 【淘宝拼多多抖音】订单详情API接口系列
    订单详情接口主要是获取订单的详细信息,包括但不限于订单号、下单时间、支付状态、发货状态、收货人信息、商品信息、金额、物流信息、退货/换货信息等。这些数据可以用于订单管理和追踪订单状态,以提供更好的客户服务。搜索当前会话用户作为卖家已卖出的交易数据(只能获取到三个月......