一、 利用BadBoy錄制自動化腳本,錄制事件為禪道中創建bug
在badboy地址欄輸入被訪問的URL地址
錄制成功后截圖如下:
錄制完成后在badboy窗口中回放確定腳本錄制的正確性,回放成功后清除響應,然后導出為JMeter腳本。
清除響應: Setp1 (右鍵)->clear Response
導出JMeter腳本: File->Export to JMeter
第二步: 在JMeter窗口中打開BadBoy中錄制的.jmx的腳本文件
打開后如下所示:
第三步: 添加“察看結果樹”並調試腳本
1. 添加監視器->“察看結果樹”
2. 運行腳本,在“察看結果樹”中查看運行情況
從上圖可以看到回放的結果,綠色表示通過,紅色表示失敗。 看到這些失敗的紅色不要害怕,我們來分析一下。
3. 選擇“察看結果圖”中的HTML視圖能夠更加直觀的查看運行結果
4. 刪除無用的http請求
可以看到紅色對應項的請求均為null, 且響應結果為java異常。對應到step中的請求步驟,可以發現圖中紅色標示的http請求項為":///...",對應的"服務器名稱為IP"為空。
度娘告訴我這可能是禪道系統請求的本地資源,至於是與不是,我們不管它,因為它不影響我們的腳本運行結果,直接在step1下選中這些項,刪除即可。
清除后的HTTP請求如下所示,是不是干凈多了?
5. 繼續調試->回放結果
此時可以再次回放,查看回放結果。為了回放結果更加直觀,按上圖紅線標識所示,選中添加bug的頁面,給bug 的標題(title)取名為NewBugByJMeter;
6. 清除結果樹的log
按如下步驟清除結果樹中的log
7.點擊回放按鈕,回放腳本, 查看禪道的bug列表
至此, bug添加成功,說明JMeter腳本沒有問題了。
補充兩個我遇到的問題:
1. Jmeter中查看HTML時的亂碼問題
解決辦法:
Jmeter安裝目錄/bin/jmeter.properties中sampleresult.default.encoding默認為ISO-8859-1,將參數修改為
sampleresult.default.encoding=utf-8 即可,注意將注釋符號#去掉。
2. Jmeter腳本回放成功,但禪道系統中並沒有增加相用的bug,也就是bug添加失敗。
解決辦法:
將“添加bug”頁面的結果樹-響應結果(選擇text視圖)復制到一個txt文件中,並重命名為html, 用瀏覽器打開就能夠很直觀到看到這個頁面的情況。
從頁面中我發現有一個sql插入錯誤,其中有一項"HTTP-X-REQUEST"值為true,但數據庫中的bug表里面是沒有這個字段的,初步估計為Jmeter自帶的。
刪除該項之后,重新運行腳本成功。
刪除Jmeter自帶的"HTTP-X-REQUEST"項后的結果如下所示