//上一篇的代碼有點問題,問題出在 web_reg_find()函數中,這個函數簡單的說是搜索下一步操作的請求對象(html)頁面中是否存在相應的文本字符串。所以用在登錄操作中,它搜索的是主頁.html,用在注冊中它搜索的就是注冊頁面,這里必須得感謝下51test論壇的luming同學幫我解決了這個問題。(所以雖然可以回放成功,但其實只是運氣好,上一篇的示例代碼就不去修改了,去掉web_reg_find函數就行了)。
(一) 代碼
1 Action() 2 { 3 /*集合點*/ 4 lr_rendezvous("同時登錄"); 5 6 /*事務開始*/ 7 lr_start_transaction("login"); 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=t44.inf", 16 "Mode=HTML", 17 LAST); 18 19 //檢查下一步操作請求對象(HTML頁面)中是否存在相應的文本字符串 20 web_reg_find("Text=Welcome,","Search=Body",LAST); 21 22 //登錄 23 web_submit_form("login.pl", 24 "Snapshot=t45.inf", 25 ITEMDATA, 26 "Name=username", "Value={username}", ENDITEM, 27 "Name=password", "Value={password}", ENDITEM, 28 "Name=login.x", "Value=58", ENDITEM, 29 "Name=login.y", "Value=11", ENDITEM, 30 LAST); 31 /*事務結束*/ 32 lr_end_transaction("login", LR_AUTO); 33 return 0; 34 }
(二)設置、運行場景
- 運行Controller。
或者
1、可以選擇面向目標場景、手動場景
面向目標場景:指定一個目標,loadrunner根據指定的目標自動生成方案。
手動場景:通過指定要運行的Vuser(虛擬用戶數)手動創建方案。
2、選擇面向目標場景時,可以設置場景目標。(這個比較像是直接測試軟件是否符合用戶需求,而不考慮系統能承受的最大負載、什么情況下系統會失效等問題)
場景目標設置好后,開始運行場景。
運行過程中,一開始還好,后面並發用戶數多了后,CPU占用太高了
3、運行結束后(這里我因為沒達到目標提前結束了)
查看錯誤信息。
第一個錯誤信息暫時看不明白。
第二個錯誤信息:web_reg_find 找不到welcome,
推測原因可能是:
1、 登錄成功后,資源響應太慢(比如在響應的html頁面只加載完成一部分內容的情況下,web_reg_find可能就執行檢查了),沒檢測到該文本字符串
2、 沒登錄成功
第三個錯誤信息就很明顯了,CPU占用過高。
(三) 分析結果、生成測試報告
1、打開Analysis。(點擊Controller的結果-分析結果可以直接打開,也可以點擊Analysis的快捷方式打開)
2、點擊SLA配置向導,添加服務水平協議,這里設置90%的事務響應時間不超過0.5秒。(這個在Controller運行場景前也可以設置)
3、看這邊應該是沒達到預計的目標,目標是90%事務響應0.5秒,這里實際顯示的是0.883。
4、生成html報告。(報告-html報告)
5、生成其他格式的測試報告(報告-新建報告)
直接點擊【生成】,然后save保存一個格式就行了。沒看到word格式的選項,不過可以導出PDF再轉為word。
(三) 待解決問題
1、 場景設計應該加強,根據需求設計需要的場景
2、 SLA服務協議配置應該加強,熟悉不同指標、不同選項的作用
3、 生成報告部分,設置不同的報告模板,適應不同的用戶。
4、 結果分析(不同圖表、指標的分析及相關概念等)應該加強