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

    本节我们承接上节。

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

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

5add9df93e0f132910d8f162dd385d34.png

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

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

75a0ef94f060cd5315be2aea4ad41383.png

最后是raw。

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

e2d6f2e6301c1eba68a8ea5c709fe284.png

然后代码是:

858fa959a091f9a75a7fe26fa43ce710.png

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

然后看看报告:

ef8b4002b247be94e36c8a6f07d64d2b.png

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

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

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

7e7d49f631062dcc3baa977f7c24807c.png

25c5516b442de99cead3ffdd2909b456.png

04710df61f308468100aad4a99aea1f1.png

复制版本:

if api_body_method == 'none':    passelif 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)))

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

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

34b97b149d02749b74d3c300a2555078.png

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

e39f115c3538f568d5e1781a3a3e8bca.png

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

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

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

5be66f84f3ce2f7c162189d209bf3397.png

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

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

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

fd5c4bf9ebd9b9f5cd5c849ab2cdbc2d.png

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

d3fc31452f71bdefbbd61ecdaa65505a.png

复制版本:

 <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后,刷新页面,开始调试。

首先是断言路径法:

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

10f2674bc3f455aa89e7f02eb2f546b2.png

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

代码实现:

8563f4e6f3a2540a64dcd9bda1157dc8.png

我们来运行下看看结果:

850c99e3582ad08fed1474824780bbe2.png

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

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

别忘了点赞和分享

感兴趣的可以加群,加博主微信:qingwanjianhua 拉你入群

加社团:https://testerhome.com/wqrf

关注博主博客:https://wangzijia.blog.csdn.net/

点亮该项目:https://github.com/Woqurefan/ApiTest/

体验在线地址:http://47.97.77.125:8000/home/

本公众号:测试开发干货

64a6fbe09c578f95817893af9d44da5a.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值