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

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

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

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

  第一個(gè)請(qǐng)求(注意,上面圖片路徑應(yīng)該為/socket.io/?EIO=3&transport=polling   少了個(gè)問號(hào)==!)

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