您的位置:軟件測試 > 開源軟件測試 > 開源性能測試工具 > Jmeter
使用Jmeter對Websocket進行壓力測試
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2015/6/29 14:26:17 ] 推薦標簽:性能測試工具

  前段時間本著練習angularJS+requireJS的目的寫了一個基于nodeJS和socket.io的聊天室,github地址為:https://github.com/towersxu/node-socketIO-angular-require-chatroom。當時沒有考慮性能方面的問題,本著功能實現(xiàn)的目的好。近剛好有空,打算測試一下這個聊天室的性能。
  測試工具我使用的是JMeter,版本為2.11。這個是同事拷貝給我的綠色版本。只要有Java環(huán)境可以運行(下載地址:apache-jmeter-2.11)。點擊bin目錄下的jmeter.bat可以運行了。我這個版本本身是不支持websocket測試的,于是需要下載一個插件叫做JMeterWebSocketSampler-1.0.2-SNAPSHOT.jar,這個插件需要下載6個依賴包,如下圖所示:

  在插件安裝好了后,可以使用jmeter來模擬socket.io的通信了。首先打開chrome控制臺,查看network。進入含有socket.io的頁面時,我們可以看到如下圖所示的幾個鏈接。

  我們只需要把這幾個鏈接用jmeter實現(xiàn)了,可以模擬瀏覽器和服務(wù)器的通信了。首先我們模擬前兩個請求。點擊請求我們可以看到這個請求的詳細信息,從header上我們可以發(fā)現(xiàn)其實這兩個請求還是HTTP請求,只不過帶的參數(shù)不一樣。第二個請求比第一個請求多帶一個參數(shù)叫sid,他的值是第一個請求所相應的。這兩個請求我們可以看做是TCP中的1次握手過程(我不懂TCP的三次握手,感覺這個應該和它差不多)或者說是一次認證,這個sid是通信的標識。下面我要使用jmeter模擬這兩個請求。在線程組的sampler里面選擇HTTP請求。如下圖所示:

  第一個請求(注意,上面圖片路徑應該為/socket.io/?EIO=3&transport=polling   少了個問號==!)

上一頁12下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd