loadrunner筆記(二):飛機訂票系統--客戶信息注冊


(一)  幾個重要概念說明

  1. 集合點:同步虛擬用戶,以便同一時間執行任務。
  2. 事務:事務是指服務器響應用戶請求所用的時間,當然它可以衡量某個操作,如登錄所需要的時間,也可以衡量一系列的操作所用的時間,如從登錄開始到完成一張完整的訂單。一個完整的事務是由事務開始、一個或多個業務操作/任務、事務結束三部分構成。
  3. 檢查點:檢查點是在回放腳本期間檢查特定的文本字符串或者圖片等內容,從而驗證服務器響應內容的正確性。檢查點可以理解為檢查實際結果是否與預期結果一致。(其實就是簡單的檢查下功能的正確性,因為得考慮高負載情況下功能不穩定的問題)
  4. 思考時間:用戶在執行2個連續操作期間等待的時間稱為思考時間。loandrunner 在錄制腳本時,虛擬用戶產生器(VuGen)將錄制實際的停留等待時間並將該時間插入到腳本,腳本中的lr_think_time()函數就是思考時間。

(二)  飛機訂票系統安裝

loadrunner 12.55不會自動安裝飛機訂票系統,要自己手動安裝。

https://marketplace.microfocus.com/appdelivery/content/web-tours-sample-application

上面這個地址下載:(沒賬號的話要先注冊一個賬號)

 

https://pan.baidu.com/s/1lG7SyP9mwEKNfbZqC61WQA 百度網盤下載地址

下載並解壓后,可以看到這2個文件

 

1、 運行上面的strawberry-perl-5.10.1.0.msi 文件(我是安裝這個之前先解壓了WebTours.zip文件,這個文件解壓與否應該是不影響安裝的,影響的話就先解壓WebTours.zip文件再去安裝)

2、 解壓WebTours.zip文件,然后執行下面的文件啟動服務(StartServer.bat)

 

3、 在瀏覽器輸入http://127.0.0.1:1080/WebTours/就可以訪問了

 

(三)  飛機訂票系統---客戶信息注冊(正式錄制、修改腳本前的一些說明)

1、      創建一個新的腳本。(文件--新建腳本和解決方案)

vuser_int   Action   vuser_end,這三個文件應該依次是初始化(vuser_int)、測試(Action)、結束(vuser_end),例如:打開網頁(初始化部分)、注冊功能測試(測試部分)、關閉網頁(結束部分),當然,我們也可以將腳本全部寫在Action中。(但是有多個Action情況下,我們可以只寫一遍初始化和結束部分的代碼)

2、      錄制腳本

 

3、      這邊貌似不管怎么配置都會彈出一個無Internet的提示(一般來說確定有網,瀏覽器卻打不開網頁,可能的原因之一是代理服務器設置的問題,這邊不太了解loadrunner錄制時是直接用本地的網絡,還是自己有個代理服務器(運行時設置有個代理服務器的選項,不過設置成不用代理也沒什么用)),暫時的想法是只要網頁能正常打開、腳本能正常錄制就行了,所以我直接選擇不再檢查Internet訪問了。

 

4、      (幫助文檔是這么說明,不過暫時看不出什么區別)如果應用程序使用SSL連接(即協議是https的),需要在錄制選項的“網絡-映射和篩選”的端口映射中配置正確的SSL版本。這部分先略過了,以后在研究,先用HP的飛機訂票軟件學習下(這個是HPPT協議的,暫時用不到這個)。

(三)  飛機訂票系統---客戶信息注冊(開始錄制腳本、修改腳本)

(已經點擊第二步的【開始錄制】)開始錄制客戶信息注冊的腳本

  

            注冊成功后

 

錄制完成的初始腳本:(注釋部分是我加上的,這里說下錄制的時候錄制選項有2種模式,一種是下面這種簡略的,還有一種是比較詳細的(錄制選項中可以設置))

 1 Action()
 2 {
 3     /*加載指定url*/
 4     web_url("WebTours", 
 5         "URL=http://127.0.0.1:1080/WebTours/", 
 6         "Resource=0", 
 7         "RecContentType=text/html", 
 8         "Referer=", 
 9         "Snapshot=t8.inf", 
10         "Mode=HTML", 
11         LAST);
12     /*點擊相應的鏈接*,C語言中 ; 表示語句的結束,就像我們用句號。來表示結束一樣/
13     web_link("sign up now", 
14         "Text=sign up now", 
15         "Snapshot=t9.inf", 
16         LAST);
17     /*思考時間(停留時間),這次注冊過程中,這個沒什么用,可以去掉*/
18     lr_think_time(44);
19     
20     /*提交表單*/
21     web_submit_form("login.pl", 
22         "Snapshot=t10.inf", 
23         ITEMDATA, 
24         "Name=username", "Value=lai", ENDITEM, 
25         "Name=password", "Value=123", ENDITEM, 
26         "Name=passwordConfirm", "Value=123", ENDITEM, 
27         "Name=firstName", "Value=lai", ENDITEM, 
28         "Name=lastName", "Value=quanhua", ENDITEM, 
29         "Name=address1", "Value=贝贝村", ENDITEM, 
30         "Name=address2", "Value=51000", ENDITEM, 
31         "Name=register.x", "Value=43", ENDITEM, 
32         "Name=register.y", "Value=9", ENDITEM, 
33         LAST);
34 
35     return 0;
36 }

接下來,需要在腳本中

1、設置集合點(同時打開注冊頁面進行注冊)

2、插入事務開始、事務結束

3、設置檢查點(檢查注冊是否成功)

4、參數化注冊信息

集合和事務,用工具插入,也可以直接在需要的地方敲上相應的代碼。(或者直接鼠標右鍵-插入)

 

參數化

插入檢查點的方式,按之前的版本,錄制過程或快照 --- HTTP數據頁/頁面視圖都可以插入檢查點才對,不過目前這個選項是灰色的(不能點擊)。看了下幫助文檔,12.55的版本中,web_find()函數已經棄用,不知道是不是這個原因導致了添加文本檢查點選項是灰色的

 

我們的目的只是簡單的檢查下功能的正確性,這里改用web_reg_find()函數了:web_reg_find(Text="",Search="",LAST),簡單的說下這2個參數的意思,text指要搜索的文本字符串,search指搜索范圍(默認body,HTML代碼的BODY 部分),詳細可以看幫助文檔。在編輯器里輸入 web_reg_find(),然后按F1就行了。(這個函數要放到操作的前面,例如我們注冊一個賬戶,這個函數要放到注冊操作前,而不是注冊操作后面)

 

參數添加完后,代碼中要使用參數的地方,使用這種格式就行了{username} 

 修改后的代碼

 1 Action()
 2 {
 3     /*集合點*/
 4     lr_rendezvous("同時打開網頁進行注冊");
 5     
 6     /*事務開始*/
 7     lr_start_transaction("同時注冊事務");
 8 
 9     /*加載指定url*/
10     web_url("WebTours", 
11         "URL=http://127.0.0.1:1080/WebTours/", 
12         "Resource=0", 
13         "RecContentType=text/html", 
14         "Referer=", 
15         "Snapshot=t8.inf", 
16         "Mode=HTML", 
17         LAST);
18     
19     /*點擊相應的鏈接*/
20     web_link("sign up now", 
21         "Text=sign up now", 
22         "Snapshot=t9.inf", 
23         LAST);
24    /*檢查表單提交后,是否出現指定的text 值*/
25     web_reg_find("Text={username}",LAST);
26     /*提交表單*/
27     web_submit_form("login.pl",
28         "Snapshot=t10.inf",
29         ITEMDATA,
30         "Name=username", "Value={username}", ENDITEM,
31         "Name=password", "Value={password}", ENDITEM,
32         "Name=passwordConfirm", "Value={passwordCofirm}", ENDITEM,
33         "Name=firstName", "Value={firstname}", ENDITEM,
34         "Name=lastName", "Value={lastname}", ENDITEM,
35         "Name=address1", "Value={address1}", ENDITEM,
36         "Name=address2", "Value={address2}", ENDITEM,
37         "Name=register.x", "Value=43", ENDITEM,
38         "Name=register.y", "Value=9", ENDITEM,
39         LAST);
40    
41         
42     /*事務結束*/
43     lr_end_transaction("同時注冊事務", LR_AUTO);
44     
45 
46     return 0;
47 }


免責聲明!

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



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