需求: (1)在linux下发送http请求
(2)从两个csv文件中读取不同的数据进行压测。
1、添加Jmeter测试计划
具体每个参数的含义,参看我的另外一篇博文JMeter的使用(完成一次简单的测试计划)
保存之后是.jmx文件。将.jmx文件和.csv文件(数据)上传到Linux下,注意.csv文件的路径
在jmeter的bin目录下执行 $jmeter -n -t ***.jmx -l log.jtl就可以执行这次测试计划。
参数说明:
-n表示以nogui方式运行测试计划
-t表示测试计划,后面跟测试计划名称
-l表示测试结果,后面跟测试结果文件名称
结果说明:
2、由于我们要不停的修改并发数,可以在***.jmx文件中进行修改。但是每次都要打开文件修改比较麻烦,我们可以通过shell脚本来实现:通过输入参数来修改并发数。
那么我们现在就可以通过$sh run.sh 并发数 命令来执行测试计划了。
在压测的过程中,还可以通过top -p Pid 来查询某个进程信息,同时使用vmstat命令来观察测试情况。
如:通过端口号来查找进程命令:$ netstat -anp | grep 8088
显示指定的进程信息: $top -p Pid
查看整个机器的cpu、内存,IO信息:$vmstat 2
附:Jmeter命令行选项:
JMeter在windows系统下启动的是一个Swing GUI界面,也可以在Linux/Unix系统中作为一个命令使用。调用JMeter的 “jmeter -?”命令将打印所有命令选项的一个列表。列表如下:
-h, --help 打印使用信息并退出
-v, --version 打印版本信息并推出
-p, --propfile {argument} 使用的JMeter属性文件
-q, --addprop {argument} 附加的属性文件
-t, --testfile {argument} 运行的jmeter测试文件(.jmx)
-l, --logfile {argument} 日志取样文件
-n, --nongui 非用户界面运行JMeter
-s, --server 运行JMeter服务器
-H, --proxyHost {argument} 设置JMeter使用的代理服务器
-P, --proxyPort {argument} 设置JMeter使用的代理服务器端口
-u, --username {argument} 设置JMeter使用的代理服务器用户名
-a, --password {argument} 设置JMeter使用的代理服务器密码
-J, --jmeterproperty {argument}={value} 定义附加的jmeter属性
-D, --systemproperty {argument}={value} 定义附加的System属性
-S, --systemPropertyFile {filename} 一个属性文件被做为系统属性添加
-L, --loglevel {argument}={value} 定义日志等级: [category=]level 例如jorphan=INFO or jmeter.util=DEBUG
-r, --runremote 从非用户界面模式启动远程服务器
-d, --homedir {argument} 使用的JMeter目录
-j,--jmeterlogfile {argument} the jmeter log file
-G,--globalproperty (argument)[=value] 定义一个JMeter属性并发往所有远程服务器。如:-Gport=123、-Gglobal.properties
-R,--remotestart serverl,... (non-GUI only) 在指定远程服务器上运行
-X,--remoteexit Exit the remote servers at end of test (non-GUI)