LoadRunner11腳本小技能之添加請求頭+定義變量+響應內容亂碼轉換打印+事務拆分


一、添加請求頭

存在一些接口,發送請求時需要進行權限驗證、登錄驗證(不加請求頭時運行腳本,接口可能會報401等等),所以需要在腳本中給對應請求添加請求頭。注意:請求頭需在請求前添加,包含url類、submit類請求。

	char *a="038f4201048a6319b4d2f538b2dd54d8";   
	lr_save_string( a,"b" );
	lr_output_message(lr_eval_string("{b}"));


	web_add_header("access-token","{b}");
	web_add_header("loginaware","true");

二、定義變量

上面提到添加請求頭的問題,例如系統部署時配置需要經過網關做權限認證,才能正常登錄訪問系統,所以每個接口請求都需要添加請求頭!如上圖中,包含了access-token,這個token存在有效期,超過30分鍾就會失效;當token失效時,運行腳本前就得拿新的token值替換掉腳本中失效的token,手動一個個替換的話很費時;這里可以通過定義變量進行引用解決!

如圖,在腳本中各事務前定義變量a,並將字符串a賦值給b,並在后續的腳本的請求頭中引用b的值;通過定義變量,后續當token失效時,只需替換變量a中的值即可。

1 char *a="1b284eb3ec923775528440a631af5868";   #定義變量a
2 lr_save_string( a,"b" );                      #使用lr_save_string()將以""結束的字符串(a)保存到參數b中
3 lr_output_message(lr_eval_string("{b}"));     #lr_eval_string()  所有出現參數b的地方用它的當前值來代替;lr_output_message() 打印函數,打印b的值

三、響應內容亂碼轉換為中文

前幾篇文章有提到過LoadRunner11接口響應內容亂碼的問題,當插入檢查點時,在日志中就無法判斷檢查結果是否符合預期結果。因此可以將查找的亂碼內容轉換為中文並打印,可在日志中直接看到真實結果。

 文本檢查點技巧相關知識請查閱另一篇博文,此處不過多描述,僅提供亂碼內容轉換為中文的代碼:

 1 //將查找目標轉為utf8編碼,放在變量test_find中
 2     lr_convert_string_encoding( "鍒樻絿娼",
 3         LR_ENC_UTF8,
 4         LR_ENC_SYSTEM_LOCALE,
 5         "text_find" );
 6 
 7 //將test_find內容變為string,存在變量find中
 8     lr_save_string( lr_eval_string("{text_find}"),"find" );
 9 
10 //打印變量find的值
11     lr_output_message("檢查點亂碼內容轉譯 = %s", lr_eval_string("{find}"));

實際運行結果:

四、事務拆分

有時錄制腳本,一個事務可能會出現在它的重定向頁面中,腳本中沒能體現,如下圖,一個html頁面包含了很多個接口:

為了查看該頁面的每一個接口的具體響應時間,需要將頁面下的每一個接口進行拆分,具體代碼如下:

    web_custom_request("query.v",
                       "URL=http://ip+端口/請求URL",
                       "Method=GET",
                       "Resource=0",
                       "Referer=",
                       "Snapshot=t1.inf",
                       "Mode=HTTP",
                       "EncType=text/html;charset=UTF-8",
                       "Body=",
                       LAST);

 

五、備注

1、定義的變量的是全局的,只需要定義一個即可;

2、 output_message調試腳本時才使用,壓測時需注釋;

3、init-action-end場景運用。action才加事務;

4、每個場景腳本,均需要有退出,否則有可能出現某些用戶無法再測登錄的情況;

5、無關的關聯需刪除,會消耗資源和性能;


免責聲明!

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



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