1. 背景
對於 Http協議,Loadrunner 腳本可以使用通用模板反復粘貼,只需要修改其中的 URL 和 傳參,就可以完成一整個業務
2. Get 類型的接口
web_custom_request( // 名稱,最好用英文 "Hello", // 接口的 URL,建議 appboss 地址設置成變量,方便切換環境 "URL={appboss}/app/shopBuy/detail?tokenId={tokenId}", // 提交方式 "Method=GET", "TargetFrame=", "Resource=1", // 返回內容定義的類型 "RecContentType=application/json", "Referer=", // 請求內容定義的類型 "EncType=application/x-www-form-urlencoded; charset=utf-8", LAST);
3. POST 類型接口
web_submit_data( // 名稱,最好用英文 "Hello", // 接口的 URL,建議 appboss 地址設置成變量,方便切換環境 "Action={appboss}/app/shopBuy/detail?tokenId={tokenId}", // 提交方式 "Method=POST", "TargetFrame=", "Referer=1", // 返回內容定義的類型 "RecContentType=application/json", "Referer=", "Mode=HTML", ITEMDATA, // 請求體內容 "Name=傳參的鍵", "Value=傳參的值", ENDITEM, LAST);
4. 添加事務
事務是用來區分不同業務的,一個接口就可以用一個事務包含起來,方便統計
// 事務開始 lr_start_transaction("事務名稱"); web_submit_data( // 名稱,最好用英文 "Hello", // 接口的 URL,建議 appboss 地址設置成變量,方便切換環境 "Action={appboss}/app/shopBuy/detail?tokenId={tokenId}", // 提交方式 "Method=POST", "TargetFrame=", "Referer=1", // 返回內容定義的類型 "RecContentType=application/json", "Referer=", "Mode=HTML", ITEMDATA, // 請求體內容 "Name=傳參的鍵", "Value=傳參的值", ENDITEM, LAST); // 事務結束 lr_end_transaction("事務名稱", LR_AUTO);
5. 添加斷言
上面的腳本還缺少測試中最重要的一環,就是斷言,判斷執行的結果是否符合預期
// 事務開始 lr_start_transaction("事務名稱"); // 這個需要放到Http請求前面,從結果中查找預期匹配內容 web_reg_find( "SaveCount=存儲匹配次數的變量名",
// 想要匹配的內容 "Text=\"errorCode\" : \"200\",\n", LAST); web_submit_data( // 名稱,最好用英文 "Hello", // 接口的 URL,建議 appboss 地址設置成變量,方便切換環境 "Action={appboss}/app/shopBuy/detail?tokenId={tokenId}", // 提交方式 "Method=POST", "TargetFrame=", "Referer=1", // 返回內容定義的類型 "RecContentType=application/json", "Referer=", "Mode=HTML", ITEMDATA, // 請求體內容 "Name=傳參的鍵", "Value=傳參的值", ENDITEM, LAST); // 事務結束 // 根據匹配的數量進行判斷事務是否成功 if(atoi(lr_eval_string("{存儲匹配次數的變量名}"))>0) { // 事務成功 lr_end_transaction("事務名稱", LR_PASS); } else { // 事務失敗 lr_end_transaction("事務名稱", LR_FAIL); }
6. 添加集合點
既然是做性能,自然少不了並發用的集合點
// 集合點,需要放在事務之前 lr_rendezvous("集合點名稱"); // 事務開始 lr_start_transaction("事務名稱"); // 這個需要放到Http請求前面,從結果中查找預期匹配內容 web_reg_find( "SaveCount=存儲匹配次數的變量名", // 想要匹配的內容 "Text=\"errorCode\" : \"200\",\n", LAST); web_submit_data( // 名稱,最好用英文 "Hello", // 接口的 URL,建議 appboss 地址設置成變量,方便切換環境 "Action={appboss}/app/shopBuy/detail?tokenId={tokenId}", // 提交方式 "Method=POST", "TargetFrame=", "Referer=1", // 返回內容定義的類型 "RecContentType=application/json", "Referer=", "Mode=HTML", ITEMDATA, // 請求體內容 "Name=傳參的鍵", "Value=傳參的值", ENDITEM, LAST); // 事務結束 // 根據匹配的數量進行判斷事務是否成功 if(atoi(lr_eval_string("{存儲匹配次數的變量名}"))>0) { // 事務成功 lr_end_transaction("事務名稱", LR_PASS); } else { // 事務失敗 lr_end_transaction("事務名稱", LR_FAIL); }