jmeter非GUI运行的坑


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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM