Paw調(diào)用Javascript示例

Paw 是一款Mac上原生界面的HTTP客戶端測試工具富纸,最讓人稱道的是強(qiáng)大的Dynamic Values機(jī)制,而且內(nèi)置了大量的Dynamic Values稽鞭。一般我們在進(jìn)行接口測試時(shí)诵闭,經(jīng)常會(huì)遇到一些需要?jiǎng)討B(tài)計(jì)算的值采蚀,比如唯一的訂單號(hào)熊赖、簽名来屠、加密計(jì)算等,可用它內(nèi)置的Dynamic Values來完成震鹉。

image.png

順便提一下俱笛,內(nèi)置的Dynamic Values如果是來源于其它請求的RequestRespone時(shí),會(huì)自動(dòng)形成執(zhí)行時(shí)的依賴鏈传趾。在執(zhí)行有依賴的請求迎膜,會(huì)先依次執(zhí)行所有的被依賴請求。這點(diǎn)在測試中也非常的好用浆兰。

現(xiàn)實(shí)中也存在一些更復(fù)雜的場景磕仅,動(dòng)態(tài)計(jì)算的情況不能用內(nèi)置的或插件中的Dynamic Values來完成珊豹。這時(shí),還可以先安裝JS Script這個(gè)插件榕订,就可以用Javascript調(diào)用Paw提供的一些Api接口來定制Dynamic Values平夜。下面舉兩個(gè)示例。

  • 定制計(jì)算請求體的內(nèi)容
function evaluate(context){
  var request = context.getCurrentRequest();
  // A1156797
  var uin = getParameterFinallyValueByName(request, '_uin');
  var head_str = '<head><uin>' + uin + '</uin><sversion>10000</sversion><time>' + getDateFormatString() + '</time><sign_type>HMAC_SHA512</sign_type></head>';
  return head_str ;
}

function getParameterFinallyValueByName(request, paramName) {
  var dynamicStringObj = request.getUrlParameterByName(paramName, true);
  var component = dynamicStringObj.getComponentAtIndex(0);
  return (typeof component == 'string') ? component : component.getEvaluatedString();
};

// 這個(gè)版本的Paw定制返回時(shí)間串有bug
function getDateFormatString() {
     var d = new Date();
     var year = d.getMonth() + 1;
     var day = d.getDate();
     var month = d.getMonth() + 1;
     var hour = d.getHours();
     var min = d.getMinutes();
     var sec = d.getSeconds();
     var date_str = d.getFullYear() + '-' + (month < 10 ? '0' + month : month) + '-' +(day < 10 ? '0' + day : day) + ' ' + (hour < 10 ? '0' + hour : hour) + ':' + (min < 10 ? '0' + min : min) + ':' + (sec < 10 ? '0' + sec : sec) ;
     return date_str;
}
  • 在請中再發(fā)起另一個(gè)附加請求
function evaluate(context){
  var requestUuid = context.getCurrentRequest().id;

  var baseUrl = dynamicValue(requestUuid, "_urlBase"); 
  var callback_method = dynamicValue(requestUuid, "_callbackMethod");  
  var supUid = dynamicValue(requestUuid, "_supuid"); 
  var rawOrderIds = dynamicValue(requestUuid, '_orderidArray'); 
  var totalCount = dynamicValue(requestUuid, '_totalCount'); 
  console.log(rawOrderIds);

  if(rawOrderIds == "[]" | totalCount == "0") { return ""; }
  
  var orderIds = rawOrderIds.replace(/[\[\]"]/g, '');
  console.log(orderIds);
 
  var arrOrders = orderIds.split(",");
  var result_str = "";
  for(var i = 0; i < arrOrders.length; ++i) {
    var callbackUrl = baseUrl + callback_method + "?limittype=1&outorderid=NT&remark=KARA&card_no=SB&supuid=" + supUid + "&orderid=" + arrOrders[i]
    console.log(callbackUrl);
    var tmp = execute_callback(callbackUrl);
    result_str += arrOrders[i] + ": " + tmp + "\n";
  }  

  ///////////////////////////////// notify stub
  var notifyUrl = dynamicValue(requestUuid, "_notifyUrl"); 
  var bodystr = "result: [ " + result_str + " ]";
  result_str = notify_stub(notefyUrl, bodystr);
  return result_str;
}

var dynamicValue = function(requestUuid,param){
    return new DynamicValue('com.luckymarmot.RequestURLParamDynamicValue', {
        request: requestUuid,
        param: param
    }).getEvaluatedString();
}

function execute_callback(url){
  const http_request = new NetworkHTTPRequest();
  http_request.requestUrl = url;
  http_request.requestMethod = "GET";
  http_request.requestTimeout = 10000;
  http_request.setRequestHeader("Content-Type", "text/plain text; charset=utf-8");
  // http_request.requestBody = requestBodyStr;
  http_request.send();

  return http_request.responseBody;
};

function notify_stub(url, bodystr){
  const http_request = new NetworkHTTPRequest();
  http_request.requestUrl = url;
  http_request.requestMethod = "POST";
  http_request.requestTimeout = 10000;
  http_request.setRequestHeader("Content-Type", "text/plain text; charset=utf-8");
  http_request.requestBody = bodystr;
  http_request.send();

  return http_request.responseBody;
};
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末卸亮,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子玩裙,更是在濱河造成了極大的恐慌兼贸,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吃溅,死亡現(xiàn)場離奇詭異溶诞,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)决侈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進(jìn)店門螺垢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人赖歌,你說我怎么就攤上這事枉圃。” “怎么了庐冯?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵孽亲,是天一觀的道長。 經(jīng)常有香客問我展父,道長返劲,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任栖茉,我火速辦了婚禮篮绿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘吕漂。我一直安慰自己亲配,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布痰娱。 她就那樣靜靜地躺著弃榨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪梨睁。 梳的紋絲不亂的頭發(fā)上鲸睛,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天,我揣著相機(jī)與錄音坡贺,去河邊找鬼官辈。 笑死箱舞,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的拳亿。 我是一名探鬼主播晴股,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼肺魁!你這毒婦竟也來了电湘?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤鹅经,失蹤者是張志新(化名)和其女友劉穎寂呛,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瘾晃,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡贷痪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蹦误。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片劫拢。...
    茶點(diǎn)故事閱讀 39,703評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖强胰,靈堂內(nèi)的尸體忽然破棺而出舱沧,到底是詐尸還是另有隱情,我是刑警寧澤偶洋,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布狗唉,位于F島的核電站,受9級特大地震影響涡真,放射性物質(zhì)發(fā)生泄漏分俯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一哆料、第九天 我趴在偏房一處隱蔽的房頂上張望缸剪。 院中可真熱鬧,春花似錦东亦、人聲如沸杏节。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奋渔。三九已至,卻和暖如春壮啊,著一層夾襖步出監(jiān)牢的瞬間嫉鲸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工歹啼, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留玄渗,地道東北人座菠。 一個(gè)月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像藤树,于是被迫代替她去往敵國和親浴滴。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,097評論 1 32
  • 周六周天去長沙參加“夢想清單”的課程岁钓,順便參加了長沙的洋蔥線下讀書會(huì)升略,哈哈哈,還蹭了一頓美食~ 活動(dòng)主題:非暴力溝...
    韓林賀閱讀 2,183評論 1 1