[性能测试]JMeter之种种

这几天用JMeter对校招网站进行了压力测试。主要是四个Case:模拟200个用户并发注册;模拟200个用户并发登录;模拟200个用户并发更新简历里的基本信息、教育背景、项目经验、工作经历;模拟200个用户并发上传简历附件。
也算是完成了对JMeter从陌生到熟悉的过程。总结一下遇到的几个坑:

一个是Out of Memory的问题,解决方法:
可以在jmeter.bat文件中,把heap size改大一点,可以改成总共可用物理RAM的80%
HEAP="-Xms512m -Xmx512m"
就是把Xmx后面那项改大一点。这台虚机的内存是2G,然后让jmeter的heap size为1.5G。
另外,graphical reporting listeners也容易让console卡掉,尤其是在用户数大于50的时候,如果把Listener都去掉,就能大大增快运行速度。不过对我来说不现实,想观测响应时间,所以加了Aggregate Report,想看具体的Response Data,所以View Results Tree也得留着。

另外,之前录的脚本其实录多了,因为我在HTTP Proxy Server开始录之后,才进到相应的网站,所以之前IE首页哪些MSN主页的乱七八糟的东西也录在里面了。应该先到userweb主页再把IE的Internet Options里的代理服务器选上,或者先选上也行,先到userweb主页再Start。

还有,即使Aggregate Report的错误率是0,也不代表没出错。比如更新简历的页面,最一开始是单独测这个,录脚本时是登录状态。虽然在run脚本的时候,这些api都成功发送出去了,但是其实简历根本就没有更新,而是返回了login界面。所以说View Results Tree还是需要的。

关于多用户登录那里,之前我只在CSV里写好了两百个USERNAME和PASSWORD,而csrf被hardcode了,其实这样不行。进入log in页面时,response data里会返回一个csrf的值,每次都不一样,要把它取出来,通过Regular Expression Extractor, 也就是用正则表达式来提取。然后真正log in时,它和USERNAME、PASSWORD都是request data的一部分。

在用JMeter进行上传时,有三个选项要填的,File Path要写完整路径,MIME Type根据你上传的文件类型查一下就好。这个Parameter Name可不是自己定义的,可以用Chrome的Developer Tool查一下上传的按钮的源码,里面的name字段的值就是这里的Parameter Name。

你可能感兴趣的:([性能测试]JMeter之种种)