接口测试平台-83: 多接口之 小用例:mock实现+正则无值(不改)

1. 随机文本mock

在之前章节已经成功对step步骤增加了mock_res 字段用来存放用户设置的写死的返回值。本节就来实现它们:

其实很简单,直接打开我们run_case.py,在demo函数中,原来的流程是这样的:

现在要给改下,加个判断。代码中这么改:

这个else包含的内容直到 这里:

重启服务,运行下看看:

实验的仍然是这第一个step步骤:

报错是因为mock的内容不是json,加个try:

 

2. 正常mock值

只输出了返回体,因为mock接口不关心请求数据了,反正没有真实请求。但这条用例算报错了,提取返回值的代码中,不能对这句话进行求值并提取。 

所以再换个 比较贴近真实的返回值mock,{"err_no":1234560,"errmsg":"谁不是路人","queryid":"999888777"}:

保存后,这次看看效果:按照预期,应该用例通过:

看来是通过了。mock成功生效了。

 

3. bug修复:(也可以不加,因为这里报错其实说明断言不过,一般不改)

# # 正则提取法
if get_zz != '':  # 说明有配置
    for i in get_zz.split('\n'):
        key = i.split('=')[0].rstrip()
        zz = i.split('=')[1].lstrip()
        values = re.findall(zz, res)
        if len(values) > 0:
            value = values[0]
        else:
            value = ''
        exec('global %s\n%s = "%s" ' % (key, key, value))

因为正则可能没结果,因此要修改一下

 

最后还需优化:正则提取和断言的res(mock时填写了空格),会报错,但不应该报错

 

本节结束,但是这段demo代码的容错性和健壮性都还远远不足,一个不规范输入就会引起用例报错,并且报错日志可读性不高,所以下节课会进行多用例模块的最后一节收尾章,会对此函数进行优化。

 

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页