超简单两招搞定JSON接口自动化测试

纯文本协议模板构造JSON请求

上一个版本发布后,有一些同学反馈,旧版的协议模板(表单模式)使用,在测试restfull 接口(json格式)的时候,还是有一些懵,不知道怎么下手,感觉没有其他工具直接复制一个纯文件JSON来得直接跟方便。

所以在LuckyFrame V2.7版本中,新增加了一个纯文本模式构建请求的功能,你可以直接 复制JSON字符串到纯文本请求文本域中了,见下图:

SON测试的参数替换

那么问题来了,如果在用例步骤中,我想替换纯文本中某个key的value,要怎么替换呢,比如上图中的json串格式化后是以下这样的:

{ "ContractRoot": { "SvcCont": { "staffCode": "-1", "channelNbr": "-1", "traceId": "", "commonRegionId": "地区ID--需要参数化", "certPhoneNumRel": [ { "phoneNum": "手机号码--需要参数化", "certAddress": "湖北省京山县新市镇沿河南路321号附3号43户", "gPartyId": "", "certNum": "身份证号码1--需要参数化", "certType": "1", "custName": "张三", "actionType": "12", "serviceType": "1800", "lanId": "8420100" }, { "phoneNum": "手机号码--需要参数化", "certAddress": "湖北省京山县新市镇沿河南路66号附12号1098户", "gPartyId": "", "certNum": "身份证号码2--需要参数化", "certType": "1", "custName": "李四", "actionType": "12", "serviceType": "1800", "lanId": "8420100" } ] }, "TcpCont": { "TransactionID": "6002020001201707100000668354", "ReqTime": "20170710105338", "Method": "order.party.modCertPhoneNumRel", "Sign": "e3dfbb6619f04409a9845c09e664fae2", "Version": "V1.0", "AppKey": "6002020001" } }}

例子:我想把上面JSON字符串中的commonRegionId、第一个phoneNum(张三的)、第二个certNum(李四的)三个key中的默认值替换掉。

首先要明确的是,这里有三个参数需要替换。而在接口测试中参数替换的通用语法为:

参数1#替换参数值|参数2#替换参数值|参数3#替换参数值

所以,在整个json串中,如果没有重复的key,那么你可以直接这样写:

commonRegionId#860000|phoneNum#137777777|certNum#8777662

很明显这种写法只能应对整个JSON中没有重复key的情况

如果是针对上面的JSON串,在 phoneNum、 phoneNum都存在重复的情况下,我们应该怎么写呢?

重点来了:如果key存在重复,那么你可以写成key[index] index指的是key在整个字符串中的序号,表示你要替换同名key中的第几个,如果你有key后面没有带[index],会默认替换这个key的第一个。

写法一:会替换 commonRegionId、第一个phoneNum(张三的)、第一个 certNum (张三的)

commonRegionId#860000|phoneNum#137777777|certNum#8777662

写法二:会替换commonRegionId、第一个phoneNum(张三的)、第二个certNum(李四的)

commonRegionId#860000|phoneNum#137777777|certNum[2]#8777662

写法三:会替换commonRegionId、第一个phoneNum(张三的)、第二个certNum(李四的)

commonRegionId#860000|phoneNum[1]#137777777|certNum[2]#8777662

以上三种写法,写法二和写法三都能满足例子中的需求。

使用起来是不是很简单呢,如果你看明白了,就手动点个赞留个言吧!

温馨提示

如果喜欢本文,请分享到朋友圈,想要获得更多信息,请关注我。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181018G0CF8C00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券