引言
前面已经介绍了postman断言和参数提取,这个是针对接口运行后的操作,那么接口运行之前,我们需要做哪些了?毋庸置疑的就是参数化,它可以帮我们提前造测试数据,针对一些加密和认证的接口,我们需要提前做这些,带着这些参数去请求,接口才会通。下面我讲讲实际测试中的参数化,批量执行测试用例以及生成测试报告。
参数化
在之前介绍《使用Postman工具做接口测试(二)——环境变量与请求参数格式》文中讲过环境变量的设置,其实就是参数化,现在,我介绍参数化其他几种形式。
第一种:自己定义的参数。
下面用户签名接口为例,下面代码是本地开发的接口。
# 用户签名
# 鉴权: 签名+时间戳
def user_sign(request):
if request.method == 'POST':
client_time = request.POST.get('time','')
client_sign = request.POST.get('sign','')
address = request.POST.get('address','')
print(client_sign,222)
print(address,333)
else:
return '错误'
if client_time == '' or client_sign == '':
return '签名为空'
# 服务器时间
now_time = time.time()
server_time = str(now_time).split('.')[0]
# 时间差
time_diff = int(server_time) - int(client_time)
if time_diff >= 60:
return '请求超时'
# 签名
md5 = hashlib.md5()
sign_str = client_time + '&guest-test'
# 转换成encode
sign_bytes_utf8 = sign_str.encode(encoding = 'utf-8')
md5.update(sign_bytes_utf8)
server_sign = md5.hexdigest()
if server_sign != client_sign:
return '签名失败'
else:
return '签名成功'
从上面可以看出,加密方式:client_time + '&guest-test'。
如果要请求被加密接口,必须提前对请求参数中需要加密的信息进行参数化,如下&#x