Jmeter + Badboy 進行腳本錄制,對 Webtours 訂票系統進行多用戶並發測試


我們這里使用Loadrunner自在的Webtours訂票系統,進行腳本錄制。

第一步:錄制腳本

  1.打開Badboy,輸入Webtours地址,然后訪問,使用默認的用戶名和密碼完成一次購票流程!(這里我是把Webtours安裝在了我的Windows本機上面的,所以顯示啟動了Webtous的服務!)

  啟動Webtours服務:

  

 

 

 

  打開Badboy,輸入地址,訪問:(啟動Badboy以后,會看到左上角默認recording狀態,是默認開啟腳本錄制的,所以直接訪問就好。左側Script一欄就是我們要錄制的腳本的結構)

  

 

 

   

  然后,登錄,完成一整個購票流程:(這里我就不一步步截圖了,關於如何購票的可以百度,其實也不難!)

  錄制好以后,點擊 停止按鈕。停止腳本錄制。

  

 

  然后到處為Jmeter,也就是將我們錄制好的腳本保存為.jmx文本格式

  

 

 

 

 

 

 

第二步:打開Jmeter

  1.將保存好的腳本使用Jmeter打開(打開以后就是這個樣子的)

  

 

 

 

  2.我們先在Thread Group下面添加一個 察看結果樹 和 聚合報告。(添加察看結果樹方便我們查看每一個請求的響應結果,聚合報告是為了一會進行多用戶並發測試的時候查看性能指標使用的。)

  

 

 

 

  3.然后我們直接啟動一下試一下,看一下整個腳本是否是通的。然后發現是通的,而且都正確。

  

 

 

 

   4.這個時候我們需要模擬很多的用戶。(我的這些用於做多用戶並發測試的用戶都是通過Webtours注冊好的),首先需要確定一下,我們的用戶名和密碼是在哪一請求里面發出去的。

  

  5. 找到以后我們會發現,除了用戶名和密碼,還需要驗證userSession。那么我們就需要去找一下這個userSession是從哪個請求的相應里面取到的。我們去察看結果樹中找一下對應的請求。

  

 

  

  6. 找到對應的請求后,選中右擊添加>>后置處理器>>正則表達式提取器,將提起Session的正則表達式填寫進去。

  

 

 

 

  7.之后我們在輸入用戶名和密碼的請求中,將userSession的值更改為 變量名 ${userSession}

  

 

 

   

  8. Session的問題解決了,然后我們需要解決用戶的問題。將我們注冊好的用戶名和密碼。前面是用戶名,后面是密碼。

  

 

 

  9.在Thread Group右擊 添加 >> 配置原件 >> CSV 數據文件設置。將文件名指定成為我們剛才保存好的文件(前提是已經注冊好了的哈),變量名成按照圖中的設置。還有分隔符,也就是用戶文件中的逗號

   

 

  

  10.完成以后,我們需要重新設置一下我們的登錄請求的用戶名和密碼。都設置成為變量名 ${user} ${pwd},還有在確認訂單的時候也是有用戶名和密碼的輸入,我們也需要修改,如下圖:

  登錄請求:

      

 

  訂單確認請求:

      

 

 

 

  11.ok到了這一步,我們算是把購票測試腳本給處理完成,接下來運行看一下。

  我們先運行一個線程,使用的用戶就是我們用戶文件里面的第一個用戶了。發現是訂票成功的,用戶正是用戶文件中的用戶名,說明是可以的。

   

 

 

 

   然后我們增加線程數,增加循環次數,目的是看一下我們本機的性能變化。

  

 

 

 

  12.啟動線程,看一下電腦性能的變化以及聚合報告的性能指標的信息。可以看到,在啟動腳本以后,本機的CPU和內存都出現的明顯的提高。說明壓力來自Webtours服務。

  這里也引申出一個如何進行分布式性能測試的問題,就是當前我的電腦需要承載着發送線程的任務,又因為Webtours服務安裝在我的本機的緣故,同時還要承受着處理Webtours請求的任務。這就導致我預期想要給到服務器的壓力沒有達到預期。

  正常的工作中,服務器和測試機肯定不是在一台機器上面的,但是當我們要進行的性能測試,線程數超出了測試機器所能輸出的壓力時,這個時候就要考慮分布式了,也就是多台設備同時給一台服務器施加壓力,從而達到預期的壓力。

  


免責聲明!

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



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