jmeter for linux jmeter环境变量配置

大家好,今天来为大家解答jmeter for linux这个问题的一些问题点,包括jmeter环境变量配置也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

如何在linux系统上安装jmeter

在Linux系统上安装JMeter,可以实现更加精准的高并发测试,减少网络条件对结果的影响。下面简要介绍在Linux环境下安装JMeter的步骤。

首先,准备安装环境。确保Linux系统已安装,以及网络连接稳定。然后,下载并准备JMeter安装包以及JDK。

一、安装JDK

下载与Linux系统版本相匹配的JDK安装包。对于32位Linux系统,下载32位JDK。通过Linux的终端界面,将JDK安装包上传至系统中,并解压至指定目录,如`/usr`。通过编辑系统配置文件(通常在`/etc`目录下),添加JDK的环境变量配置。执行配置保存并重启系统,确保JDK环境配置生效。

二、安装JMeter

在Linux终端中,使用`wget`或`curl`命令下载JMeter安装包。完成下载后,解压安装包。根据提示执行JMeter安装命令。完成安装后,验证JMeter是否成功安装。可以通过在终端中输入`jmeter`命令,如果出现JMeter帮助信息,则表示安装成功。

三、上传-执行-下载测试脚本

准备测试脚本并上传至Linux服务器。使用相应的文件传输工具(如Xshell、Xftp)将测试脚本文件上传至服务器指定目录。执行测试脚本,观察并记录测试结果。确保测试过程中网络环境稳定,以获取准确的数据。

四、分析测试结果

测试结束后,生成的测试结果文件通常为`.jtl`格式。使用JMeter GUI界面打开该文件,进行结果分析。在JMeter GUI中,添加聚合报告组件,浏览并加载`.jtl`文件,系统将自动生成详细的测试结果报告,包括响应时间、错误率等关键指标,便于分析与优化测试性能。

通过以上步骤,在Linux系统上成功安装并使用JMeter进行测试,有效提升测试的精准度与效率。

linux上如何启动jmeter

一、配置java环境

1:先查看系统32/64: uname-a

根据系统的版本去Oracle官网下载jdk,下载后安装jdk即可。

2:配置JAVA环境变量:

vi/etc/profile

追加如下内容:

JAVA_HOME=/opt/jdk1.6.0_20

PATH=$JAVA_HOME/bin:$PATH

CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/tools.jar

export JAVA_HOME

export PATH

export CLASSPATH

其中的JAVA_HOME为jdk的安装路径

3:验证 echo$PATH或者 java-version

二、安装resin

下载resin后,解压运行安装脚本:./resin.sh console。然后在自己pc上访问 server ip:port看到resin默认欢迎页面即说明安装成功。之后把在web项目的war包拷进 ren目录下的webapps文件夹内,即可在外网访问服务器上的web项目了。

三、安装jmeter

下载:同样在jemeter官网下载对应的安装包,解压后执行:./jmeter-n-t../ssdb_test.jmx-l../log.jtl

命令说明:

a.-n参数说明不用验证是否安装了图形库

b..jmx文件可以在windows环境下的用jmeter图形化生成,涉及参数以及测试结果的.csv文件路径可以直接用notepad++ vi等修改.jmx文件,确保其相对于.jmx文件路径正确。

c.log.jtl保存测试结果既然没装图形界面库,那么测试结果.jtl文件就只能在windows下用jmeter来查看了。执行效果如下:

[@zjm_44_250 bin]#./jmeter-n-t../ssdb_test.jmx-l../log.jtl

Creating summariser<summary>

Created the tree successfully using../ssdb_test.jmx

Starting the test@ Mon Dec 29 18:43:20 CST 2014(1419849800772)

Waiting for possible shutdown message on port 4445

summary= 100 in 0.3s= 289.9/s Avg: 105 Min: 3 Max: 285 Err: 0(0.00%)

Tidying up...@ Mon Dec 29 18:43:21 CST 2014(1419849801734)

... end of run

最后,执行命令:/home/apache-jmeter-2.8/bin/jmeter-n-t download.jmx-l log.jtl

linux下最好输全路径,不然可能报bash:jeter:command not found,找不到执行文件错误,参数介绍如下:

-n This specifies JMeter is to run in non-gui mode

-t [name of JMX file that contains the Test Plan].

-l [name of JTL file to log sample results to].

-r Run all remote servers specified in JMeter.properties(or remote servers specified on command line by overriding properties)

The script also lets you specify the optional firewall/proxy server information:

-H [proxy server hostname or ip address]

-P [proxy server port]

Jmeter 问题锦集

java.io.FileNotFoundException:rmi_keystore.jks

文件校验问题

1、不进行文件校验,打开 [ jmeter安装目录 ]\bin\jmeter-server.bat文件

2、运行 create-rmi-keystore.bat(Windows)/ create-rmi-keystore.sh(Linux)文件并自行填写相关信息,运行后,bin目录下会多出一个 rmi_keystore.jks文件,然后将这个文件拷贝到想要运行的 slave机上,就可以不使用方法1

Error in rconfigure() method java.rmi.ConnectException: Connection refused to host: 192.168.xxx.xxx; nested exception is:

java.net.ConnectException: Connection timed out: connect

1、192.168.xxx.xxx这个IP可能是虚拟网卡的 IP,关闭所有的虚拟网卡,只保留本地网络

2、检查slave服务器的防火墙是否打开,需要关闭

3、通信双方的机器没有识别到有效的远程IP,考虑将远程方法调用服务器的主机IP进行固定设置,再作效果检查

4、开始测试,但是测试速度非常慢,测试结果也是非常大的值,检查slave服务器和被测试服务器之间是否可以 ping通地址

第3点分析相应解决方法:

Master机修改 jmeter.bat(windows)/ jmeter.sh(Liunx)

Error in rconfigure() method java.rmi.ConnectException:Connection refused to host

1、查看端口是否被占用

1、更换端口

java.net.ConnectException:Connection timed out:connect

由于连接被拒绝,这意味着防火墙可能已切断连接

需要在JMeter和目标服务器之间打开端口

Response too large to be displayed. Size: 412152> 204800

未设置察看结果树的大小

1、打开 [ jmeter安装目录 ]\bin\user.property文件

2、右击测试用例——添加——监听器——保存响应到文件,填写要保存的文件名

3、将文件中的返回结果粘贴到此用例的响应断言中

Not able to find Java executable or version. Please check your Java installation. errorlevel=2

1、errorlevel=1,当前系统安装的 jdk版本过低

2、errorlevel=2,没有配置 jdk环境变量所致

3、errorlevel=3,当前系统安装的 jdk版本过低,不符合 jmeter要求所致

通用方法:

配置对应这个 jmeter版本的 jdk版本的环境变量

第1点分析,其他解决方法:

打开 jmeter.bat文件,注释 set DUMP=-XX:+HeapDumpOnOutOfMemoryError

Bad call to remote host

1、检查 salve机器上的 jmeter-server是否启动

2、检查 JMeter.properties中 remote_hosts的配置是否错误

1、启动 salve机器上的 jmeter-server

2、正确配置 JMeter.properties中 remote_hosts

1、Non HTTP response message: The target server failed to respond

2、Non HTTP response code: java.net.SocketException

调整超时时间,jmeter的 http请求中,工具会默认勾选 Use KeepAlive,在运行时,jmeter.properties中的 httpclient.timeout设置默认是注销的,也就是连接空闲,立马断开

打开 [ jmeter安装目录 ]\bin\jmeter.properties文件

根据情况设置10-60毫秒,能解决报错问题,问题还是没有真正解决

Server failed to start: java.rmi.RemoteException: Cannot start.*** is a loopback address.

An error occurred: Cannot start.*** is a loopback address.

没有指定主机导致这个错误

1、修改 hosts文件

2、打开 [ jmeter安装目录 ]\bin\jmeter.properties文件

Waiting for possible shutdown message on port 4445

在 master跑测试脚本时,会一直提示如下信息,导致测试一直跑不起来

这个是用于监听shutdown message的,如果不需要,可以直接设置为0即可

打开 [ jmeter安装目录 ]\bin\jmeter.properties文件

Could not reserve enough space for 2097152KB object heap

errorlevel=1

Jmeter内存不足

打开 [ jmeter安装目录 ]\bin\jmeter.bat文件

could not find ApacheJmeter_core.jar

找不到 jdk环境

1、正确安装对应版本的 jdk

2、正确设置环境变量

jmeter.gui.action.RemoteStart: Failed to initialise remote engine java.rmi.ConnectException: Connection refused to host: 127.0.0.1; nested exception is:

配置了 127.0.0.1,但是未开启本机的 jmeter-sever.bat/jmeter-sever

开启本机的 jmeter-sever.bat/jmeter-sever

运行成功,响应断言也正确通过,但是察看结果树里为空

模式(Mode)(采样结果发送模式)默认是Standard,在采样结果产生后立即发送

打开 [ jmeter安装目录 ]\bin\jmeter.properties文件

Response code: Non HTTP response code: java.net.SocketTimeoutException

Response message: Non HTTP response message: connect timed out

发生该错误时,jmeter已经连接上服务器,查看load time没有超过设定的request timeout时间,错误可能的原因是,服务器那边未处理该线程的请求,或者为保证服务能力,断掉了连接。

为了验证该猜想,持续大于半小时向服务器发送该并发数量的请求,一段时间后,request收到503的response,证明猜想

Java.NET.BindException: Address already in use: connect

短时间内new socket操作很多,而socket.close()操作并不能立即释放绑定的端口,而是把端口设置为TIMEWAIT状态,过段时间(默认240s)才释放,(用netstat-na可以看到),最后系统资源耗尽(windows上是耗尽了pool of ephemeral ports,这段区间在1024-5000之间)

在运行 JMeter agent的机器上,添加注册表条目HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

jmeter脚本运行的过程中,服务器性能参数没有明显变化(CPU,内存,I/O),但request的响应时间很长。

观察jmeter agent机器网络使用情况,网络使用持续达到带宽的限制峰值。request发送的过程中pending在网络中,实际并发的request并没有同一时间到达服务器,所以服务器没有明显变化。

提高jmeter agent机器网络带宽。

java.io.IOException: Error writing to server

java.net.SocketException: Connection reset

可能是本机的 JVM太小了

打开 [ jmeter安装目录 ]\bin\jmeter.bat文件

java.net.SocketException: Unrecognized Windows Sockets error: 0: recv failed

打开 [ jmeter安装目录 ]\bin\jmeter.properties文件

java.net.SocketTimeoutException: Read timed out

打开 [ jmeter安装目录 ]\bin\jmeter.properties文件

For performance it is advised to check"Interpret Condition as Variable Expression"

and use __jexl3 or __groovy evaluating to true or false or a variable that contains true or false.

${JMeterThread.last_sample_ok) can be used to test if last sampler was successful

对于4.x之后的版本 JMeter中的 If Controller,在Expression输入框中直接输入判断的表达式,如1== 1、${threadNum}> 2,而不做求值计算(true/false)就执行JMeter是没有效的,达不到预期的效果。采用JMeter比较早期的版本(如:2.x版本),直接就写判断的表达式,并没有作真假求值运算也能被识别

1、在Expression输入框中,建议将判断条件解释为变量表达式,并使用__jexl3函数或__groovy函数对该变量表达式求值为true/false

2、可输入值为true/false的变量

3、${JMeterThread.last_sample_ok}可用于检测最后一个取样器是否成功执行

java.lang.IllegalStateException: Engine is busy- please try later

1、可能是防火墙规则被阻止

2、控制机、执行机未设置需要连接的IP

1、关闭控制机、执行机的防火墙

2、打开 [ jmeter安装目录 ]\bin\jmeter-server文件

3、打开 [ jmeter安装目录 ]\bin\system.properties文件

Response code: Non HTTP response code:org.apache.http.conn.ConnectTimeoutException

Response message: Non HTTP responsemessage: Connect to 10.15.107.112:9089 timed out

Non HTTPresponse code说明没有收到来自服务器的 response。

导致 ConnectTimeoutException错误的可能有 JMeter本身问题,也可能是服务器问题。

通过分布式运行 JMeter的方式来消除 JMeter本身的影响

阅读剩余
THE END