2026/5/23 22:52:38
网站建设
项目流程
东莞公司网站价格,WordPress考试,游戏网站开发什么意思,东莞医疗网站建设报价前言
Jmeter分布式测试时需要的特别注意
1#xff09;参数化文件的位置和内容
如果使用csv文件进行参数化#xff0c;即通过读取csv文件中的数据来为测试脚本提供不同的输入值#xff0c;那么需要注意以下两点#xff1a;
需要把参数文件在每台slave上拷贝一份#xf…前言Jmeter分布式测试时需要的特别注意1参数化文件的位置和内容如果使用csv文件进行参数化即通过读取csv文件中的数据来为测试脚本提供不同的输入值那么需要注意以下两点需要把参数文件在每台slave上拷贝一份最好都放置在bin目录下因为Jmeter会直接从bin目录下查找参数文件的内容要保持一致即每台slave上的参数文件的行数、列数、数据类型等都要相同否则可能会导致数据不匹配或缺失。2slave机器的响应数据slave机器执行脚本时若断言执行成功则在master机器上是看不到请求响应数据的只有在断言出错时才可见slave的返回。这是为了节省网络带宽和提高测试效率因为在分布式测试中通常只关心测试结果的统计和分析而不需要查看每个请求的详细数据。如果需要查看slave的响应数据可以在slave机器上打开jmeter.log文件或者在master机器上设置Jmeter属性modeStandard但这样会增加网络开销和测试时间。3TCP取样器的配置若要使用Jmeter分布式进行TCP协议的测试需要注意以下两点TCP取样器中“TCPClient classname”该栏必须填写对应的协议。例如如果要发送二进制数据就要填写org.apache.jmeter.protocol.tcp.sampler.BinaryTCPClientImpl。如果要发送文本数据就要填写org.apache.jmeter.protocol.tcp.sampler.TCPClientImpl。否则可能会出现数据格式错误或无法发送的问题以十六进制发送tcp数据包时TCP取样器中“End of line(EOL) byte value”必须填写数据包的结束符例如如果数据包以0D 0A结尾就要填写13否则jmeter会一直等待无响应。4Linux下配置jmeter环境变量如果在Linux系统下使用Jmeter需要配置jmeter环境变量以便于在命令行中直接启动jmeter。具体步骤如下编辑/etc/profile文件添加如下变量export JMETER_HOME/usr/local/jmeter-5.0 export CLASSPATH$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH export PATH$JMETER_HOME/bin:$PATH使配置文件立即生效执行命令source /etc/profile查看是否安装成功执行命令jmeter -vJmeter分布式测试的常见问题解决方法问题1在master上运行jmeter-server.bat时出现“Exception creating connection to:192.16…;nested exception is:java.io.FileNotFoundException:rmi_keystore.jks(系统找不到指定的文件)”错误原因Jmeter4.0以上的版本默认启用RMI连接的安全通信需要创建密钥库。所以如果没有创建密钥库就会出现这个错误。解决方法方法1修改apache-jmeter/bin/jmeter.properties 参数server.rmi.ssl.disabletrue备注将master和slave机器上的jmeter.properties文件 参数server.rmi.ssl.disable均改为true其中linux上是用以下命令:vi jmeter.properties 使用/server.rmi.ssl.disable/进行查找方法2手动生成秘钥和证书。执行create-rmi-keystore.batWindows适用或create-rmi-keystore.shLinux适用生成server.rmi.ssl.keystore.file的key文件然后将key文件复制到所有的负载机的bin目录下修改jmeter.properties中问题2在slave上linux系统运行jmeter-server时出现“An error occurred: Cannot start. localhost is a loopback address”错误原因Jmeter默认使用localhost作为RMI的主机名但是localhost是一个回环地址不能用于远程连接。解决方法方法1运行以下命令./jmeter-server -Djava.rmi.server.hostname192.16…本机ip方法2修改jmeter-server文件# vi jmeter-server 将jmeter-server中的RMI_HOST_DEF-Djava.rmi.server.hostname192.16.*.*本机ip运行./jmeter-server即可备注Linux下后台执行启用servernohup ./jmeter-server -Djava.rmi.server.hostname192.16… 查看确定jmeter是否启动成功ps axu | grep jmeter问题3远程启动slave机器时如出现“Jmeter nested exception is:java.net.ConnectException connection timed out:connect ”错误原因可能是由于以下几种情况导致的slave上的ip与master配置文件中的ip不一致slave机器上有虚拟网卡导致ip地址不正确防火墙或者安全软件阻止了RMI的通信。解决方法查看slave上的ip与master配置文件中的ip是否一致如果不一致查看slave机器上是否有虚拟网卡将网卡关闭在此启动Jmeter-server.bat查看是否正确查看防火墙是否关闭注centos7上关闭防火墙 firewall-cmd --state //查看防火墙状态bash复制代码systemctl stop firewalld.service //关闭防火墙问题4当设置csv文件路径时如果路径不对无响应原因Jmeter在读取csv文件时如果找不到文件会一直等待而不会报错。解决方法将csv文件以“相对路径”命名即将csv文件直接放入bin目录下在Jmeter路径中直接写入文件名问题5Linux默认端看1099被占用如何关闭某个被占用端口的方法原因Jmeter使用RMI进行分布式测试时需要使用1099端口作为注册端口如果该端口被其他程序占用就会导致无法启动jmeter-server或者无法连接slave。解决方法查看当前所有tcp端口执行命令netstat -ntlp查看所有1099端口使用情况执行命令nestat -ntulp |grep 1099查看占用1099端口的程序pid执行命令lsof -i:1099kill掉该进程执行命令kill -9 1109 //kill掉该进程问题6如果使用slave发送数据后长时间无响应原因可能是由于以下几种情况导致的发送的数据中存在csv参数文件但是slave机器的bin目录下没有该文件建立的tcp采样器中属性“TCPClient classname”处没有添加协议org.apache.jmeter.protocol.tcp.sampler.BinaryTCPClientImpl解决方法查看发送的数据中是否存在csv参数文件查看slave机器的bin目录下是否有该文件查看建立的tcp采样器中属性“TCPClient classname”处是否添加协议org.apache.jmeter.protocol.tcp.sampler.BinaryTCPClientImpl问题7如果你的JMeter返回数据是乱码原因可能是由于JMeter的默认编码和服务器的编码不一致导致数据转换出错。解决方法在JMeter安装路径的bin目录下打开文件jmeter.properties把Sampleresult.default.encoding的值改为 utf-8 即可。问题8启动jmeter时报错Error occurred during initialization of VM Could not reserve enough space for object heap errorlevel1原因可能是由于JMeter的默认堆内存大小不足以支持测试的负载导致内存溢出。解决方法bin目录下打开jmeter.bat文件查找set HEAP将set HEAP-Xms128m -Xmx512m修改为set HEAP-Xms512m -Xmx512m重新启动jmeter.bat即可问题9当jmeter用作数据库API测试时如果数据库接口中参数中传递一个数组如getAppsint nu, int appID[ ],实际使用过程中报语法错误原因可能是由于JMeter的默认参数分隔符是逗号而数组参数需要用分号分隔导致语法错误。解决方法在JMeter的数据库连接配置中将参数分隔符改为分号即可。问题10当jmeter在windows控制机中添加cvs文件参数化的时候负载机没有没有文件的时候远程启动后会执行失败。(即使cvs文件中的变量没有被引用)原因可能是由于JMeter在远程启动时会先检查参数文件的存在性如果不存在就会报错。解决方法在负载机上添加相同的参数文件或者在控制机上删除参数文件的引用。最后作为一位过来人也是希望大家少走一些弯路在这里我给大家分享一些软件测试的学习资料和我花了3个月整理的软件测试自学全栈这些资料希望能给你前进的路上带来帮助。视频文档获取方式这份文档和视频资料对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你以上均可以分享点下方小卡片即可自行领取。