Loadrunner:腳本編寫通用模板(Http協議類型)


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);
    }    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM