在 CentOS 上使用 JMeter 进行自动化测试
一 环境准备与安装
sudo yum install -y java-1.8.0-openjdk-devel/etc/profile 中添加
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdkexport PATH=$PATH:$JAVA_HOME/binjava -versionwget https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.3.tgz && tar -xzf apache-jmeter-5.4.3.tgz -C /opt//etc/profile 中添加
export JMETER_HOME=/opt/apache-jmeter-5.4.3export PATH=$PATH:$JMETER_HOME/binjmeter -vsudo docker pull jmeter:latestsudo docker run -it --rm -v /path/to/scripts:/scripts jmeter:latest -n -t /scripts/test.jmx -l /scripts/result.jtl -e -o /scripts/report二 编写可自动化的 JMeter 脚本
${username}、${password}三 在 CentOS 上非 GUI 执行与报告生成
jmeter -n -t /path/to/testplan.jmx -l /path/to/result.jtl
-n 非 GUI 模式-t 指定测试计划-l 指定结果文件(JTL/CSV)-j 指定日志文件-e -o 测试结束后生成 HTML 报告(需保证输出目录为空)jmeter -g /path/to/result.jtl -o /path/to/reportjmeter -n -t /opt/jmeter/script/test.jmx -l /opt/jmeter/log/test.jtl -j /opt/jmeter/log/run.log -e -o /opt/jmeter/html/report四 与 Jenkins 集成实现持续自动化
rm -rf /opt/jmeter/log/* /opt/jmeter/html/* ${WORKSPACE}/test.jtl/opt/jmeter/bin/jmeter.sh -n -t /opt/jmeter/script/test.jmx -l test.jtl -j /opt/jmeter/log/test.log${WORKSPACE}/test.jtl)五 性能与稳定性优化要点
jmeter 或 jmeter.sh 中设置 -Xms/-Xmx,一般不超过物理内存的 2/3)httpclient4.idletimeout=10000(单位毫秒)/etc/security/limits.conf 中设置 * soft/hard nofile 65536、* soft/hard nproc 65565/etc/sysctl.conf 中设置
net.ipv4.tcp_tw_reuse=1、net.ipv4.tcp_fin_timeout=30net.ipv4.ip_local_port_range=1024 65000sysctl -p 生效jmeter.properties 中设置 remote_hosts=slave1_ip:1099,slave2_ip:1099jmeter-server(Slave),Master 命令行使用 -R slave1_ip,slave2_ip 远程启动