测试人社区

面对多个参数的接口如何合理设计用例

在下单的接口中,由于有较多的参数需要填入,这样导致在参数化设计上不好把控,用例条数要么较少无法覆盖,要么太多用例非常臃肿,麻烦老师可以写实例便于借鉴

url = self.url_env + 'order?api_version=v3&os=pc&plat=pc&api_token=' + self.token

datas = {'sender[name]': u'梁山伯', 'sender[telephone]': '15888888888',
         'sender[province]': u'广东省', 'sender[province_code]': '440000',
         'sender[city]': u'深圳市', 'sender[city_code]': '440300',
         'sender[area]': u'福田区', 'sender[area_code]': '440304',
         'sender[address]': u'福田区*梅林街道卓悦汇', 'sender[lat]': 22.564938,
         'sender[lng]': 114.050546, 'sender[landmark]': '',
         'receiver[name]': u'祝英台', 'receiver[landmark]': '',
         'receiver[telephone]': '15999999999', 'receiver[province]': u'广东省',
         'receiver[province_code]': '440000', 'receiver[city]': u'广州市',
         'receiver[city_code]': '440100', 'receiver[area]': u'天河区',
         'receiver[area_code]': '440106', 'receiver[address]': u'燕岭路633号*天河汽车客运站',
         'receiver[lat]': 23.1709970, 'receiver[lng]': 113.3421020,
         'goods_type': u'设备', 'is_delivery': '1',
         'pay_type': '1', 'insure_value': '200',
         'match_marketing': '1', 'match_coupon': '0',
         'wooden_frame': '1', 'order_receipt': '1',
         'user_remark': u'测试', 'insure_status': 'true', 'weight': '50',
         'volume': '1', 'quantity': '2',
         'sender_lat': 22.564938, 'sender_lng': 114.050546,
         'receiver_lat': 23.170997, 'receiver_lng': 113.342102,
         'appointment': '2020-04-25 14:00:00',
         'goods_items[0][name]': '设备', 'goods_items[0][weight]': '50',
         'goods_items[0][volume]': '1', 'goods_items[0][quantity]': '2',
         'goods_items[0][count]': '2'
         }

有试过不同的设计方式,但均不大理想,想得到比较详细的实例设计回复,谢谢

后续的课程中会讲的,大概分为如下几种类型

  • 以普通的参数传递:f(a, b) 适合少量的参数
  • 以普通的命令参数传递 f(a=1, b=2, c=‘c3’, **kwargs ) 适合较多数据传递
  • 以数据结构体传递 json_data=read_from(); json_data[‘a’]=1; f(json=json_data) 适合大量的数据传递

你的用第二种和第三种都可以,学会python的kwargs参数用法