如何運用LoadRunner腳本關聯的動態數據

發表于:2011-04-02來源:作者:點擊數: 標簽:
百度或Google一下“如何在LoadRunner腳本中做關聯(Correlation)”,你會搜索到在網上相互轉載的很經典的一篇文章。洋洋灑灑近6000漢字,像個小百科全書。對于關聯Correlation的概念,對web_reg_save_param()方法的參數的解釋,你還可以參考那篇文章學習一
百度或Google一下“如何在loadrunner/" target="_blank" >LoadRunner腳本中做關聯(Correlation)”,你會搜索到在網上相互轉載的很經典的一篇文章。洋洋灑灑近6000漢字,像個小百科全書。對于關聯Correlation的概念,對web_reg_save_param()方法的參數的解釋,你還可以參考那篇文章學習一下。對于如何手動關聯動態數據,如果按那篇文檔做,你可能需要2小時才能完成一個復雜測試場景的動態數據關聯,使用本文檔下面介紹的方法,不管多么復雜只需2分鐘就能完成關聯動態數據。

  為什么要關聯動態數據呢?舉個例子,在對我們平臺的工作流性能測試時,在待辦任務里面選擇一條記錄執行發送操作,LoadRunner VuGen會詳細記錄下來流程發送操作的細節,但在回放腳本的時候會有問題。待辦任務里面找不到那條記錄了,已經發送到下一個環節了。另一個更易理解的例子,在初始化查詢頁面,選擇一條記錄進行刪除,錄下腳本進行回放的時候會出錯,記錄已經刪除了,回放腳本的時候服務器返回的記錄不再包含那條記錄,再向服務器發送刪除那條記錄的請求,就報錯了。關聯動態數據需要我們在腳本中設置一個變量,保存從服務器返回的起標識作用的數據,發送請求的時候使用該變量代替動態數據,這樣再回放、反復測試就不會報錯了。需要關聯的標識性數據一般是各種主鍵,工作流的發送的例子很復雜,需要對流程編碼、環節編碼、參與者編碼、表單編碼等進行關聯,下面使用復雜的工作流發送的例子進行演示。

  手動關聯動態數據的復雜做法是,回放腳本,在Execution Log和Recoding Log打出的信息中找需要關聯的動態數據及動態數據的左右邊界。甚是麻煩,我沒怎么看明白。其實每次回放腳本,Recoding Log打印的信息都是一樣的,也和錄制腳本的時候生成的\data\RecordingLog.txt文件的內容一樣。下面直接使用\data\RecordingLog.txt文件,關聯動態數據的時候不再需要回放腳本,減少了關聯動態數據的工作時間。

  執行同樣的操作,先后錄制兩次腳本保存,比較一下生成的Action.c,注意動態數據不能放在vuser_init.c文件中。自帶的WinDiff工具不好使用,推薦使用Beyond Compare工具。不是所有的差異處都要關聯的,WEB_URL()等方法的參數列表的先后順序是沒關系的,思考時間當然也可以不同。下圖中右邊的腳本已經關聯過動態數據了,如果是剛錄制的兩份腳本,右邊的id、processId等也是32位的主鍵,左右兩份腳本的差異一目了然,記下這些動態數據的值。

  以左圖id的值:40287ae91c4b7dbb011c4b85e17204da為例,在腳本\data\RecordingLog.txt中查找該值。找其第一次出現的地方,一般在該值的上方會有這樣的字樣:*** [tid=2258     Action       145] Receiving response from host 192.168.250.105:7001 ( 10/9/2008 17:40:37 )。如下圖,記下40287ae91c4b7dbb011c4b85e17204da的左邊界:<input type=\"hidden\" name=\"id\" value=\"和右邊界:\">。注意看一下這樣的左右邊界是否唯一。

 在剛才的腳本的文件\data\RecordingLog.txt中小心向上翻動,可以找到這樣的字樣:     *** [tid=2258        Action       145] Recording Function ( 10/9/2008 17:40:37 )

  該字樣的下面緊接著是方法web_submit_data("jspformtaskdeal.cmd",……),這個方法在Action.c中是同樣存在的,通過這個方法我們可以知道在Action.c的什么地方插入web_reg_save_param()方法?,F在我們需要做的就是在腳本Action.c中,方法web_submit_data("jspformtaskdeal.cmd",……)的前面,緊挨著這個方法寫上web_reg_save_param()方法用于保存動態數據,其中LB、RB分別是剛才記錄下的左右邊界值,primary是我們起的變量名字。完整的方法如下:

web_reg_save_param("primkey",
   "LB=<input type=\"hidden\" name=\"id\" value=\"",
   "RB=\">",
   LAST);
  修改后的Action.c的腳本,見下圖:

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97