只需一行命令:sh jmeter.sh -n -t http.jmx -l result_*.jtljava
步骤:linux
一 安装jmetervim
1 把你笔记本的jmeter添加到压缩包 jmeter.zip服务器
2 上传jmeter.zip到linux服务器:我用rz方式上传到了/opt/soft网络
3 解压,进入路径/opt/soft/jmeter/bin测试
4 查看jmeter.sh是否可以执行,若不能未其添加执行权限,我直接 chmod 777 jmeter.sh,可用 sh jmeter.sh -v 来检测命令是否可用。插件
二 编写测试计划线程
1 在GUI模式下,新建一个测试计划,保存并上传到linux机器对应目录,可在测试计划里添加对应的定时器,聚合报告等。3d
2 在linux目录下找到你的测试计划,vim打开进行编辑代理
<stringProp name="ThreadGroup.num_threads">200</stringProp> 线程数 <stringProp name="ConstantTimer.delay">100</stringProp> 固定定时器的时间间隔 添加过的元器件其对应参数均可以在里面找到,进行参数调整时只要在这里编辑就ok了。
三 结果文件
结果文件即以前保存过的result.jtl格式文件
该文件能够使用 GUI 模式下的聚合报告查看,能够打开 JMeter GUI 界面 -> 测试计划 -> 添加线程组 -> 添加聚合报告 -> 点击 "浏览..." 按钮找到你刚生成的 jtl 文件打开便可统计结果进行分析。
四 这里是咱们使用非 GUI 模式运行测试脚本时能够使用的一些命令:
例如:jmeter -n -t test1.jmx -l logfile1.jtl -H 192.168.1.1 -P 8080
五 问题
1)Error in NonGUIDriver java.lang.NullPointerException
产生该错误的缘由,目前有两种状况:
状况1,低版本的JMeter运行高版本的测试计划(测试计划是在高版本的JMeter上编制的)。解决方法:使用相同或更高版本JMeter运行该计划。
状况2,使用第三方插件生成的测试计划,运行在没有该第三方插件的JMeter上。解决方法:在JMeter上安装插件或从新生成不包含插件的测试计划。
2)写了一个scf压测jar包,由于网络通讯的关系,放到同台服务器上运行。
运行没多久看到一个进程cpu飙到了600%(8核),load到了50多。服务端已经不怎么能处理了。觉得服务不行了
仔细看了下,cpu 600多的进程是个人jmeter执行命令,由于我没在jmeter端进行限制,因此发请求发疯了。后来加了定时器,限制其每秒发的请求数,服务可正常运行了。
六 输出实例