python接口测试用例_通过python自动生成接口测试用例

以前做接口自动化测试时,有想过如何批量生成接口测试用例,研究了一下,实现了一个简单模型。

1、首先定义一个列表作为接口的参数信息(假定这是一个增加用户的接口,需要带这么多参数),如下:

case_list= [    # 名称        类型      最小长度min    最大长度mxa  是否必填  选项值    array    格式校验

['name',     'string',        '6',                  '30',              'yes',           '',          'no',        ''      ],

['sex',           'int',           '',                    '',                  'no',          '1,2',       'yes',       ''     ],

['age',           'int',           '',                    '',                  'no',            '',          'no',        ''     ],

['email',       'string',      '6',                 '250',               'no',            '',          'no',    '邮箱格式'],

['mark',       'string',        '4',                  '30',              'no',             '',          'no',        ''    ],

['mobile',     'string',       '11',                 '11',              'no',             '',          'no',    '手机格式'],

['birth',          'date',         '',                    '',                  'no',            '',           'no',    '日期格式']

]

2、根据参数的不同类型定义能够生成的用例名称

根据字符串类型生成用例名称:

def process_str(para_name, para_min, para_max):

print('用例名称: %s 参数长度为 %d' % (para_name, int(para_min)-1))

print('用例名称: %s 参数长度为 %d' % (para_name, int(para_max)+1))

if para_min == para_max:

print('用例名称: %s 参数长度为 %d' % (para_name, int(para_max)))

else:

print('用例名称: %s 参数长度为 %d' % (para_name, int(para_min)))

print('用例名称: %s 参数长度为 %d' % (para_name, int(para_max)))

根据整型生成用例名称:

def process_int(para_name):

print('用例名称: %s 参数为字符串' % para_name)

根据时间类型生成用例名称:

def process_date(para_name):

print('用例名称: %s 参数为字符串' % para_name)

根据浮点型生成用例名称:

def process_float(para_name):

print('用例名称: %s 参数为字符串' % para_name)

print('用例名称: %s 参数为整型' % para_name)

print('用例名称: %s 参数浮点型' % para_name)

根据单个参数生成用例名称:

def genera_para(para_list):

para_name = para_list[0]

para_type = para_list[1]

para_min = para_list[2]

para_max = para_list[3]

para_required = para_list[4]

para_choice = para_list[5]

para_array = para_list[6]

para_format = para_list[7]

if para_format:

print('用例名称: %s 参数 %s 不正确' % (para_name, para_format))

print('用例名称: %s 参数不填' % para_name)

if para_choice:

for x in para_choice.split(','):

print('用例名称: %s 参数值为 %s' % (para_name, x))

print('用例名称: %s 参数值不在可选项中' % para_name)

elif para_type == 'string':

process_str(para_name, para_min, para_max)

elif para_type == 'int':

process_int(para_name)

elif para_type == 'long':

pass

elif para_type == 'float':

process_float(para_name)

elif para_type == 'date':

process_date(para_name)

if para_array == 'yes':

print('用例名称: %s 参数为两个' % para_name)

根据所有的参数生成用例:

def generation(list_case):

for casein list_case:

genera_para(case)

把以上代码放到同一个文件中,然后加上generation(case_list) 这一句,就可以执行了。执行完成之后,可以生成以下的用例:

用例名称: name 参数不填

用例名称: name 参数长度为 5

用例名称: name 参数长度为 31

用例名称: name 参数长度为 6

用例名称: name 参数长度为 30

用例名称: sex 参数不填

用例名称: sex 参数值为 1

用例名称: sex 参数值为 2

用例名称: sex 参数值不在可选项中

用例名称: sex 参数为两个

用例名称: age 参数不填

用例名称: age 参数为字符串

用例名称: email 参数 邮箱格式 不正确

用例名称: email 参数不填

用例名称: email 参数长度为 5

用例名称: email 参数长度为 251

用例名称: email 参数长度为 6

用例名称: email 参数长度为 250

用例名称: mark 参数不填

用例名称: mark 参数长度为 3

用例名称: mark 参数长度为 31

用例名称: mark 参数长度为 4

用例名称: mark 参数长度为 30

用例名称: mobile 参数 手机格式 不正确

用例名称: mobile 参数不填

用例名称: mobile 参数长度为 10

用例名称: mobile 参数长度为 12

用例名称: mobile 参数长度为 11

用例名称: birth 参数 日期格式 不正确

用例名称: birth 参数不填

用例名称: birth 参数为字符串

当然这只是一个简单的生成用例模型,也并不复杂,更没有用到任何的算法,我们也还可以对此进行更多的自动化的操作,比如自动生成测试用例的数据。如果有自己做接口平台的同学,接口多的情况下可以试试这种方法。有兴趣的同学可以留言交流。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值