jmeter性能測試—登錄百度進行搜索(圖解)(一)


在做web程序性能測試時,loadrunner和jmeter是兩款常用的工具,兩者比較起來,jmeter非常輕巧,且開源免費,上手快。這里簡單介紹下jmeter的使用,以登錄百度進行搜索為例。

jmeter運行需要jdk環境,這個不多做介紹。軟件界面:

  1. 右擊“測試計划”,添加一個線程組

    線程組界面可以配置線程的數量,“Ramp-Up Period(in seconds):"這個參數是

    配置這些線程組在多少時間內完全啟動(可以把時間設置長點,這樣防止一開始就對服務器造成很大壓力),還可以配置循環次數,后面還有調度器配置。

  2. 分析一下登錄百度的過程,首先訪問http://www.baidu.com,百度分配給你一個baiduid的cookie;點擊“登錄”按鈕,瀏覽器會帶着相關參數和cookie去請求nsclick.baidu.com;之后百度為了防止csrf攻擊(csrf詳細解析見:http://www.yeetrack.com/?p=220),會給客戶端發送一個token;其后輸入username、password,瀏覽器將用戶名、密碼、token及相關參數post給passport.baidu.com進行校驗,校驗成功后,百度會分配給瀏覽器cookie,這里用的到的有SAVEUSERID和BDUSS兩個,上面過程可以通過firefox的插件httpfox輕松得到(關於firefox的插件httpfox,詳細見http://www.yeetrack.com/post/2012-11-22/firefox%2520httpfox%25E6%258F%2592%25E4%25BB%25B6)

  3. ok,開始了,在線程組內新建一個http請求, 填寫域名、端口等信息

                                                                                                                                     訪問百度后,服務器會立刻分配一個BAIDUID的cookie,我們需要提取這個cookie,完成后續的認證,右擊這個http請求,添加一個正則表達式提取器                                                                                                                                                                                                                                                                                                                                                                 它的頁面應該類似這樣填寫:                                                                                                                                                                                                                                                                                                                                                                                                                                cookie在返回包中的消息頭中,選中消息頭,cookie名字為BAIDUID,正則表達式用來匹配消息頭中的cookie,http消息頭中的cookie是這個樣子:BAIDUID=EB8A76382372306096A079F34C1C84EA:FG=1;H_PS_PSSID=1690_1438_1541_1542_1662_1582,表達式BAIDUID=(.*);可以提取出其中的cookie value(如果不了解正則表達式,可以參見:http://www.yeetrack.com/post/2012-11-02/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%EF%BC%88%E4%B8%80%EF%BC%89),下面的模板的意思是如果我們寫的正則表達式匹配到了多條內容,我們去其中的第幾個,如$1$就是取第一個,下面的缺省值指如果沒有匹配到內容,就指定一個默認值,這里可以不填寫。

  4. ok,下一步,點擊百度頁面右上角的“登錄”,用httpfox或者瀏覽器自帶的網絡查看去找相應的參數。對應到jmeter中,就是再新建一個http請求,get方法。應該如下填寫:                                                                                                                                                                                                                                                   參數共8個,要分別填寫在表格里,其中有個參數t,指的是當前的Unix時間戳,jmeter提供一些函數,我們可以直接調用${__time()}這個就是調用jmeter的系統函數獲取本地時間。

  5. 呃,忘了一步,第三步中我們用正則表達式,提取出了返回消息http頭中的cookie,我們需要將這個cookie,放到jmeter的消息管理器中,這樣在jmter在發送http請求時會自動帶上相應cookie,右擊“線程組”添加cookie管理器組件:

    添加完畢,進行配置,應該是這樣樣子的:

    名稱是cookie的key,要和http消息頭中的名字對應;值是我們從正則表達式中提取的cookie value,${BAIDUID}是指取出BAIDUID這個變量的值(要和正則表達式頁面的名字對應),下面兩個是后面用到的。cookie的域和路徑依次填好。

轉載至:(作者:王學猛 來源:http://www.yeetrack.com/?p=51)


免責聲明!

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



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