這幾天用JMeter對校招網(wǎng)站進行了壓力測試剪返。主要是四個Case:模擬200個用戶并發(fā)注冊涩盾;模擬200個用戶并發(fā)登錄州泊;模擬200個用戶并發(fā)更新簡歷里的基本信息十饥、教育背景窟勃、項目經(jīng)驗、工作經(jīng)歷逗堵;模擬200個用戶并發(fā)上傳簡歷附件秉氧。
也算是完成了對JMeter從陌生到熟悉的過程⊙殉樱總結(jié)一下遇到的幾個坑:
一個是Out of Memory的問題汁咏,解決方法:
可以在jmeter.bat文件中亚斋,把heap size改大一點,可以改成總共可用物理RAM的80%
HEAP="-Xms512m -Xmx512m"
就是把Xmx后面那項改大一點攘滩。這臺虛機的內(nèi)存是2G帅刊,然后讓jmeter的heap size為1.5G。
另外轰驳,graphical reporting listeners也容易讓console卡掉厚掷,尤其是在用戶數(shù)大于50的時候,如果把Listener都去掉级解,就能大大增快運行速度冒黑。不過對我來說不現(xiàn)實,想觀測響應(yīng)時間勤哗,所以加了Aggregate Report抡爹,想看具體的Response Data,所以View Results Tree也得留著芒划。
另外冬竟,之前錄的腳本其實錄多了,因為我在HTTP Proxy Server開始錄之后民逼,才進到相應(yīng)的網(wǎng)站泵殴,所以之前IE首頁哪些MSN主頁的亂七八糟的東西也錄在里面了。應(yīng)該先到userweb主頁再把IE的Internet Options里的代理服務(wù)器選上拼苍,或者先選上也行笑诅,先到userweb主頁再Start。
還有疮鲫,即使Aggregate Report的錯誤率是0吆你,也不代表沒出錯。比如更新簡歷的頁面俊犯,最一開始是單獨測這個妇多,錄腳本時是登錄狀態(tài)。雖然在run腳本的時候燕侠,這些api都成功發(fā)送出去了者祖,但是其實簡歷根本就沒有更新,而是返回了login界面贬循。所以說View Results Tree還是需要的咸包。
關(guān)于多用戶登錄那里,之前我只在CSV里寫好了兩百個USERNAME和PASSWORD杖虾,而csrf被hardcode了,其實這樣不行媒熊。進入log in頁面時奇适,response data里會返回一個csrf的值坟比,每次都不一樣,要把它取出來嚷往,通過Regular Expression Extractor, 也就是用正則表達式來提取葛账。然后真正log in時,它和USERNAME皮仁、PASSWORD都是request data的一部分籍琳。
在用JMeter進行上傳時,有三個選項要填的贷祈,F(xiàn)ile Path要寫完整路徑趋急,MIME Type根據(jù)你上傳的文件類型查一下就好。這個Parameter Name可不是自己定義的势誊,可以用Chrome的Developer Tool查一下上傳的按鈕的源碼呜达,里面的name字段的值就是這里的Parameter Name。