前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >接口测试平台代码实现80: 多接口用例-20

接口测试平台代码实现80: 多接口用例-20

作者头像
我去热饭
发布2022-05-19 09:20:08
2460
发布2022-05-19 09:20:08
举报
文章被收录于专栏:测试开发干货

本节我们承接上节。

编写body请求体 的具体替换代码:

首先请求体类型是none的情况:

什么都不用处理,很简单。

然后是form-data和x-www,这里我为了尽快结束本模块,暂时写成一样的处理方式。等到本模块结束,后续对整个平台进行细化优化的时候,会重新更标准的处理这块底部请求。

最后是raw。

首先我设计raw-Json的格式:

然后代码是:

注意,这里用的是repr() 并不是str()

然后看看报告:

没问题,qid变成了字符串,en是整形。

最后是raw的其他4种字符串格式的情况:Text,JavaScript,Html,Xml

全是字符串,直接替换即可:

复制版本:

代码语言:javascript
复制
if api_body_method == 'none':
    pass
elif api_body_method == 'form-data' and api_body_method == 'x-www-form-urlencoded':
    rlist_body = re.findall(r"##(.*?)##",api_body)
    for i in rlist_body:
        api_body = api_body.replace("##"+i+"##",str(eval(i)))

elif api_body_method == 'Json':
    rlist_body = re.findall(r"##(.*?)##",api_body)
    for i in rlist_body:
        api_body = api_body.replace("##"+i+"##",repr(eval(i)))

else:
    rlist_body = re.findall(r"##(.*?)##", api_body)
    for i in rlist_body:
        api_body = api_body.replace("##" + i + "##", str(eval(i)))

好了,目前我们暂时处理完了请求体替换部分,接下来是最后的断言规则。

我们先把请求的返回体 打印出来,方便我们查看报告时判断。

然后我们运行一下该用例,看看输出:

可以看到,因为我们第一个接口是真实的,返回的是json串,第二个接口是我们随便写的,报了404,返回的是一个html大段落。

这俩种返回体,很方便我们进行后续断言调试了:

不过我们要先去设计好 这三种断言规则:

三种断言和上面提取 的 摆放不一致,

都是等号左侧 放实际寻找代码,右侧放 预期值。大家仔细阅读三种规则,然后在我们依次实现之前,要修复一个bug!!!:

注意上图中,我把这三个断言的id 写混了,

修改一下,成为下面的情况:

复制版本:

代码语言:javascript
复制
 <textarea  id="assert_path"  rows="3" style="width: 90%;background-color: rgba(245,236,222,0.29)" placeholder="断言返回值-路径法:
路径=预期值,字符串必须写引号,等号右侧会被求值。多个用换行分隔,例如:
/data/[3]/username='wangzijia'
/data/[2]/userid=0123
/data=[1,2,3]"></textarea>
    <textarea  id="assert_zz"  rows="3" style="width: 90%;background-color: rgba(245,236,222,0.29)" placeholder="断言返回值-正则法:
左边界字符串(.*?)右边界 = 预期值,字符串必须写引号,等号右侧会被求值,多个用换行分隔,例如:
username':(.*?),='wangzijia'
uid':(.*?),=12345"></textarea>
    <textarea  id="assert_qz"  rows="3" style="width: 90%;background-color: rgba(245,236,222,0.29)" placeholder="断言返回值-全文检索:
进行全文检索,存在即通过,全部按照字符串检索,不要加引号,多个用换行分隔,例如:
123495
请求成功
code:200"></textarea>

修复bug后,刷新页面,开始调试。

首先是断言路径法:

我们就拿第一个步骤接口做实验:

我们之前章节的数次测试可以知道这个queryid的值并不是123456,我们这个故意写错的。

代码实现:

我们来运行下看看结果:

这里用例不出意外的失败了,爆出了 值不等 的失败详情。

今天就到这里了。大家多消化消化,不要着急。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-11-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试开发干货 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档