1、解压后进入bin目录,执行 jmeter -v查看是否成功,报以下错误
main ERROR FileManager (jmeter.log) java.io.FileNotFoundException: jmeter.log (Permission denied) java.io.FileNotFoundException: jmeter.log (Permission denied)
解决方案:在bin目录下手动创建Jmeter.log文件并赋予执行权限 chmod 777 jmeter.log
nmon在/home/atapserver/nmon路径下
2、跑脚本:jmeter -n -t /home/mcbadm/jmeter-test/atap.jmx -l /home/mcbadm/jmeter-test/atap.jtl
jmeter -n -t /home/mcbadm/jmeter-test/atap.jmx -r -l /home/mcbadm/jmeter-test/atap.jtl -e -o/home/mcbadm/apache-jmeter-5.2.1/resultReport
进入Jmeter启动位置: cd /home/mcbadm/apache-jmeter-5.2.1/bin
报以下错误:
Error in NonGUIDriver java.lang.IllegalArgumentException: Problem loading XML from:'/home/mcbadm/jmeter-testscript'. Cause: CannotResolveClassException: kg.apc.jmeter.vizualizers.CorrectedResultCollector
原因:Jmx脚本中包含其他插件的内容,需先删除或者先安装插件
安装插件:
将jmeter-plugins-manager-1.4.jar,JMeterPlugins-Extras.jar,JMeterPlugins-Standard.jar上传到服务器jmeter安装目录的lib/ext
3、输出dashboard网页版结果输出,加上-e -o参数,需要确保report文件夹是不存在或为空
jmeter -n -t /home/mcbadm/atap.jmx(测试脚本) -l atap.csv(测试结果) -e -o /home/mcbadm/apache-jmeter-5.2.1/report(放index.html文件的目录)
4、报错:
报错信息: Configuring remote engine: 127.0.0.1 Exception creating connection to: 127.0.0.1; nested exception is: java.io.FileNotFoundException: rmi_keystore.jks (No such file or directory) Failed to configure 127.0.0.1 Stopping remote engines Remote engines have been stopped Error in NonGUIDriver java.lang.RuntimeException: Following remote engines could not be configured:[127.0.0.1] An error occurred: Error in NonGUIDriver Following remote engines could not be configured:[127.0.0.1]
解决方案:
修改server.rmi.ssl.disable=true (记得去除server.rmi.ssl.disable=true前的#)
5、linux在文件编辑页面查找内容 用 /+查找内容,回车,按n向下查找
6、jmeter输出结果如果结果文件名称一致,需要将原输出文件内容清除,否则输出结果叠加
7、jmeter运行过程注意点:
(1)相同文件名的文件注意清除,否则输出结果会叠加
(2)配置/bin/user.properies文件,添加以下配置(可在GUI模式下配置并打开html文件)
#--------------------------------------------------------------------------- # Reporting configuration #--------------------------------------------------------------------------- jmeter.save.saveservice.output_format=csv jmeter.save.saveservice.bytes = true jmeter.save.saveservice.label = true jmeter.save.saveservice.latency = true jmeter.save.saveservice.response_code = true jmeter.save.saveservice.response_message = true jmeter.save.saveservice.successful = true jmeter.save.saveservice.thread_counts = true jmeter.save.saveservice.thread_name = true jmeter.save.saveservice.time = true # the timestamp format must include the time and should include the date. # For example the default, which is milliseconds since the epoch: jmeter.save.saveservice.timestamp_format = ms # Or the following would also be suitable jmeter.save.saveservice.timestamp_format = yyyy/MM/dd HH:mm:ss jmeter.save.saveservice.assertion_results_failure_message = true
# Configure this property to change the report title #jmeter.reportgenerator.report_title=Apache JMeter Dashboard # Change this parameter if you want to change the granularity of over time graphs. # Granularity must be higher than 1000 (1second) otherwise Throughput graphs will be incorrect # see Bug 60149 #jmeter.reportgenerator.overall_granularity=60000 Change this parameter if you want to change the granularity of Response time distribution # Set to 500 ms by default #jmeter.reportgenerator.graph.responseTimeDistribution.property.set_granularity=500 # Change this parameter if you want to override the APDEX satisfaction threshold. jmeter.reportgenerator.apdex_satisfied_threshold=1500 # Change this parameter if you want to override the APDEX tolerance threshold. jmeter.reportgenerator.apdex_tolerated_threshold=3000 # Sets the destination directory for generated html pages, it is better to change it for every generation # This will override the value set through -o command line option # jmeter.reportgenerator.exporter.html.property.output_dir=/tmp/test-report # Indicates which graph series are filtered (regular expression) # In the below example we filter on Search and Order samples # Note that the end of the pattern should always include (-success|-failure)?$ # Transactions per second suffixes Transactions with "-success" or "-failure" depending # on the result #jmeter.reportgenerator.exporter.html.series_filter=^(Search|Order)(-success|-failure)?$ # Indicates whether series filter apply only on sample series jmeter.reportgenerator.exporter.html.filters_only_sample_series=true
(3)配置完成后,可将在GUI输出结果jtl文件转化为html解析文件,方便分析(解析需要一定时间)
jmeter -g atap.jtl -e -o D:\2020\linux\resultReport(最后必须是空目录或者不存在目录,否则会报错)
(4)打开index文件会有分析图表
8、报错信息如下:
Error in NonGUIDriver com.thoughtworks.xstream.io.StreamException
解决方案:在testplan层进行保存,而非thread层
9、参数化文件拷贝到负载机上的路径要保持一致,因此负载机的系统要统一
10、分布式压测:
(1)选择GUI界面的Jmeter作为controller远程启动slave
(2)slave跟controller的jmeter跟jdk版本需要保持一致
(3)在controller的jmeter.properties配置slave的主机跟端口,有多个则用 , 隔开
remote_hosts=XXXXXXXXXXXX:port
(4)修改slave的jmeter.properties为本机主机ip,端口可以在server.rmi.localport = 1099处设置(若有多台slave则重复)
slave:在slave机的Jmeter的bin目录下,找到jmeter.properties文件,修改如下两个配置项,比如我这里修改为1888:
server_port=1888
server.rmi.localport=1888
remote_hosts=ip
(5)启动:在controller远程启动slave,注意用-r 参数
注意:启动controller前需要先启动slave,进入Bin目录执行Jmeter-server
命令行远程启动用:controller
- jmeter -n -t 监听设置.jmx -r -l log.jtl
- 参数说明 :
-n 告诉jmeter使用非GUI模式执行测试
-t 执行的测试脚本名
-r 远程执行 , 在Jmter.properties文件中指定的所有远程服务器
-l 结果文件,如果不写路径,则在执行目录生成
11、controller的日志看bin目录下面的jmeter.log
压力机的日志看bin目录下面的jmeter-server.log