當前位置:
首頁 > 最新 > LoadRunner生成二進位參數的方法

LoadRunner生成二進位參數的方法

作者介紹:陌路不歸

5年互聯網產品測試經驗,對功能、自動化、性能測試比較擅長,有個人博客,不定期更新文章,分享測試技術。?

在使用LoadRunner的web_custom_request的時候,有時會遇到BodyBinary需要使用二進位參數,但是LoadRunner本身沒有處理二進位參數的函數,碰到這個問題,那怎麼辦呢??

一開始遇到這個,糾結出了以下兩種方法:

1、使用python第三方語言處理,但是比較麻煩,需要文本複製轉換;

2、寫個處理二進位參數的介面,直接調用;

3、使用別人寫好的程序,複製和粘貼,然後放到參數化文件中;

以上3種方法都用過,使用起來都比較費時間,當需要大量的參數化數據時,又是捉襟見肘。

然後又在思考究竟如何讓LoadRunner生成二進位參數,在偶然看到URL編碼的例子後,有眉目了;URL編碼就是一個字元ascii碼的十六進位,需要在前面加上「%」。

比如「」,它的ascii碼是92,92的十六進位是5c,所以「」的url編碼就是%5c。那麼漢字的url編碼呢?很簡單,看例子:「胡」的ascii碼是-17670,十六進位是BAFA,url編碼是「%BA%FA」。??

在LoadRunner中,有個web_convert_param函數,使用方法如下:

web_convert_param("skey", "SourceEncoding=PLAIN", "TargetEncoding=URL", LAST ); //其中skey是一個lr參數名

該例子把參數skey中的原來的值url編碼後,覆蓋了原skey參數:lr_output_message("Url編碼 = %s",lr_eval_string(""));

HTML和PLAIN的區別,在http的相應頭信息中,Content-Type欄位可能有text/html和text/plain兩種取值:

如果是html,瀏覽器在獲取到這種文本時會自動調用html的解析器對文件進行相應的處理

如果是plain,意思是純文本的形式,瀏覽器在獲取到這種文件時並不會對其進行處理?

具體實現如下:

執行結果如下:

好了,生成二進位參數已經完成一半了,怎麼把編碼結果中的「%」

替換成「x」呢?

這裡就要用到字元替換的函數了,LoadRunner本身沒有字元替換的函數,但著完全可以用C寫出來,這個難度不大,下面是實現方法。?

再來執行一次,看看結果:

在替換的時候,使用了(strlen(str)/3-1))*4)這個表達式,可以思考下為什麼這樣用?

另外,如果需要在BodyBinary中參數化UTF-8編碼的中文漢字,需要加上lr_convert_string_encoding函數?。

實現方法如下:

執行結果:

好了,這些操作已經完成二進位參數化了,既可以參數化

ascii字元,也可以參數化UTF-8的中文漢字。?

歡迎大家踴躍留言,告訴小編你在使用LoadRunner遇到的疑難雜症吧~


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 搜狗測試 的精彩文章:

TAG:搜狗測試 |