純文本協議模板構造JSON請求
上一個版本發佈後,有一些同學反饋,舊版的協議模板( 表單模式)使用 ,在測試restfull 接口(json格式)的時候,還是有一些懵,不知道怎麼下手,感覺沒有其他工具直接複製一個純文件JSON來得直接跟方便。
所以在LuckyFrame V2.7版本中,新增加了一個純文本模式構建請求的功能,你可以直接 複製 JSON字符串到純文本請求文本域中了,見下圖:
JSON測試的參數替換
那麼問題來了,如果在用例步驟中,我想替換純文本中某個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
以上三種寫法,寫法二和寫法三都能滿足例子中的需求。
使用起來是不是很簡單呢,如果你看明白了,就手動點個贊留個言吧!
如果對軟件測試、接口測試、自動化測試、性能測試、LR腳本開發、面試經驗交流。感興趣可以175317069,羣內會有不定期的發放免費的資料鏈接~