@import url(http://www.tkk7.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
LoadRunner設置檢查點的幾種方法介紹 《轉載》
前段時間在群里跟大家討論一個關于性能測試的問題,談到如何評估測試結果,有一個朋友談到規范問題,讓我頗有感觸,他說他們公司每次執行壓力測試的時候,都要求腳本中必須有檢查點存在,不然測試結果將不被認可,這是他們公司的規范。其實,在做壓力測試過程,我們很容易忽略很多東西,而且隨著自身的技術演變,我們很容易去丟失掉一些很好的習慣,當我們再碰到這些問題的時候,我們才發現其實是我們太粗心大意了,所以說好的習慣要保持。這次我剛好也要接手一些性能工作,因此就如何規范設置檢查點來談談一些基本的流程和方法。
使用LoadRunner做壓力測試,大致如下幾個流程:
1、明確測試目標
2、錄制測試腳本
3、腳本優化、調試
4、場景運行
5、分析測試結果
當然這里都是概況性的標題,但從這里我們可以明確的是測試腳本是整個壓力測試過程中的重點步驟,如果測試腳本都不能確保正確與否,后面的測試過程就無從說起了。很多時候我們把腳本調試就簡單的認為是腳本回放沒有錯誤就認為腳本是沒有問題的,這當然不能這么肯定,腳本調試是一個非常嚴謹的過程,我大致歸納如下幾步:
1、明確每一行腳本的作用,也就是說每一行腳本執行的功能是什么;
2、刪減不需要的腳本語句,比如在錄制過程由于LR默認設置導致錄制之后出現很多冗余的腳本,這些個腳本對我們的測試過程沒有用途的應該刪除掉,至于哪些是冗余就要具體分析了,所以說腳本錄制完之后要分析腳本運行的過程,方能理解腳本執行的用途,不然在后面施壓時運行錯誤,就會開始到處找問題,而又找不出問題;
3、查找存在的關聯并進行相關設置
4、設置檢查點,設置檢查點的目的就是為了驗證頁面每次運行之后是否正確,設置檢查點的過程總要通過不能的回放來進行驗證檢查點設置是否正確。
5、通過測試目標明確腳本執行的目標事務,并添加事務;
6、對需要進行并打操作的功能設置集合點
7、根據實際情況設置ThinkTime
8、在以上所有腳本調試步驟完成之后,設置迭代次數,通過在Vuser中設置多次迭代來驗證腳本在多次循環運行時是否存在錯誤
注意:在Vuser中運行和回放腳本的過程,要密切關注replay log,也就是回放日志,很多問題通常都暴露在回放日志中,只不過我們沒有認真去檢查,所以沒發覺。因為大多數情況是我們在回放腳本之后只觀察回放日志中有沒有紅色的錯誤提示信息,如果沒有我們就認為我們的腳本是ok的,其實不然,很多時候一些隱藏的錯誤就在回放日志中可以被發現,比如回放日志中的Warning信息,也就是警告信息,這些信息一旦你不去理會它,它將在場景運行過程中開始頻繁暴露出來,而在場景中報錯之后我們就認為可能是系統有問題或者是測試過程存在其他問題等等,而很難去考慮到是腳本的問題,是腳本在Vuser中調試就存在的問題。還有的時候一些問題在一次腳本回放中就不能被發現,他需要通過Vuser中設置多次迭代才能在回放日志暴露出問題來,所以說我們通常的思維就是一旦測試腳本沒有一次回放沒有出現錯誤,就去場景中運行,結果在場景中哪怕是運行10個用戶都還會報錯,這就是問題的根源所在。
下面還是重點說說檢查點吧,三種常用的文本檢查web_reg_find的方法:
1、 將腳本切換到樹結構,在page view頁面上找到你要check的文本內容, 并執行鼠標右鍵,選擇Add a text check.
2、 通過Vuesr界面去設置檢查點,如圖所示:

3、將腳本切換回代碼界面, 在光標閃爍的上行,添加如下的代碼:
添加的代碼根據你檢查的方式不同而不同, 你可以選擇其中之一即可。
代碼一:
web_reg_find("Text=Payment Details",LAST);
注:“Payment Details” 為你要檢查的文本;
腳本執行到此處,若在頁面上找到了這幾個字符串,那腳本繼續執行下去;若沒有找到,腳本將在此報錯并且結束。
代碼二:
web_reg_find("Text=Payment Details", "SaveCount=para_count", LAST); //check 的函數
這里是要運行的頁面腳本
if (atoi(lr_eval_string("{para_count}"))>0) //驗證是否找到了頁面上的要檢查的字符串
lr_output_message("Pass!");
else
lr_output_message("Failed!");
注意:
“Payment Details” 為你要檢查的文本;
腳本執行到此處,不管頁面上是否存在你要檢查的字符串,腳本都不會報錯,而是執行下去。
此段代碼將找到的你要檢查的字符串的個數,存為一個參數。 然后在頁面代碼的后面,通過檢查這個參數的值是否大于0,來判斷是否找到了你所要檢查的字符串。
注意:這里的測試結果均以200狀態碼返回,其失敗的結果將在分析報告中進行分類標識。
代碼三:
web_reg_find("Text=Payment Detdils", "Fail=NotFound",LAST);或者
web_reg_find("Text=Payment Detdils", "Fail=Found",LAST);
以上兩段腳本就比較簡潔,通過查詢文本內容來決定此次運行的測試結果是否失敗。
注意:在使用檢查點的時候我們還需要注意一些問題,通常我們都要設置一些中文檢查點,但是LR默認不支持,如果你設置了中文檢查點而報錯,那你就應該注意了,在錄制腳本的時候去掉默認設置的UTF-8選擇,如下圖所示:

并且還設置啟用圖片和文本檢查點,如下圖所示:

以上就是設置檢查點的全過程,設置檢查點的目的不只是為了驗證我們的腳本沒有錯誤,而更重要的是一個規范問題,如何使得測試結果更具有說服力,那就所有的測試腳本中都添加檢查點設置。
posted on 2013-09-26 16:08
zouhui 閱讀(212)
評論(0) 編輯 收藏 所屬分類:
2.軟件測試 性能自動化