作用:实时采集JMeter测试数据,通过Grafana展示性能指标(如响应时间、吞吐量、错误率),实现可视化监控。
步骤:
/etc/influxdb/influxdb.conf)开启HTTP API(bind-address = ":8086")和Graphite数据格式支持(取消注释[graphite]部分)。http://<服务器IP>:3000登录,配置InfluxDB数据源(URL为http://<InfluxDB服务器IP>:8086,数据库名jmeter)。InfluxdbBackendListenerClient;配置InfluxDB连接信息(URL、数据库名、用户名/密码,若未设置则留空)。作用:通过Jenkins实现JMeter测试脚本的自动触发、执行及报告生成,支持代码提交后自动跑测试,提升测试效率。
步骤:
java -version验证)、Jenkins(通过YUM仓库安装,启动服务并设置开机自启)、Ant(下载解压,配置环境变量ANT_HOME,将ant/bin加入PATH)。extras目录下的ant-jmeter-1.1.1.jar复制到Ant的lib目录;修改JMeter配置文件(bin/jmeter.properties),将jmeter.save.saveservice.output_format设置为xml(便于Ant解析)。build.xml文件,配置JMeter任务(如jmeter目标调用jmeter.sh执行脚本,report目标生成HTML报告)。示例配置:<project name="JMeterTest" default="report" basedir=".">
<property name="jmeter.home" value="/usr/local/apache-jmeter-5.4.1"/>
<property name="jmeter.result.jtl" value="result/result.jtl"/>
<property name="jmeter.result.html" value="result/report.html"/>
<target name="run">
<exec executable="${jmeter.home}/bin/jmeter.sh">
<arg value="-n"/> <!-- 非GUI模式 -->
<arg value="-t"/> <!-- 指定测试脚本 -->
<arg value="script/test.jmx"/>
<arg value="-l"/> <!-- 结果文件 -->
<arg value="${jmeter.result.jtl}"/>
</exec>
</target>
<target name="report" depends="run">
<xslt in="${jmeter.result.jtl}" out="${jmeter.result.html}"
style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl"/>
</target>
</target>
build.xml路径和目标);添加后置构建步骤(“Publish HTML reports”,指定HTML报告路径result/report.html)。作用:将JMeter测试纳入Maven项目管理,通过Maven命令执行测试,适合Java项目集成。
步骤:
MAVEN_HOME,将maven/bin加入PATH);创建Maven项目(mvn archetype:generate)。ApacheJMeter_core、ApacheJMeter_java)和jmeter-maven-plugin插件;配置插件参数(如JMeter版本、结果文件格式xml、报告路径)。示例配置:<dependencies>
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_core</artifactId>
<version>5.4.3</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>com.lazerycode.jmeter</groupId>
<artifactId>jmeter-maven-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<jmeterVersion>5.4.3</jmeterVersion>
<resultsFileFormat>xml</resultsFileFormat>
<testFilesDirectory>${project.basedir}/src/test/jmeter</testFilesDirectory>
<generateReports>true</generateReports>
</configuration>
</plugin>
</plugins>
</build>
mvn verify,Maven会自动下载JMeter依赖,执行测试脚本,生成HTML报告(位于target/jmeter/reports)。作用:通过Docker容器运行JMeter,实现测试环境隔离,便于快速部署和扩展。
步骤:
justb4/jmeter),或自定义镜像(包含测试脚本)。docker run命令启动JMeter容器,挂载测试脚本目录(-v /local/script:/scripts),执行测试(-n -t /scripts/test.jmx -l /scripts/result.jtl)。示例:docker run -d --name jmeter-master -v /local/script:/scripts justb4/jmeter -n -t /scripts/test.jmx -l /scripts/result.jtl
docker run -d --name jmeter-slave -e JMETER_SLAVE=true justb4/jmeter),Master容器通过-R参数指定Slave节点(docker run -d --name jmeter-master -v /local/script:/scripts justb4/jmeter -n -t /scripts/test.jmx -l /scripts/result.jtl -R jmeter-slave)。作用:通过Prometheus采集JMeter性能指标,结合Granafa实现实时监控和告警(如响应时间超过阈值触发告警)。
步骤:
prometheus.yml),添加JMeter监控目标(如job_name: 'jmeter',static_configs: targets: ['<JMeter服务器IP>:8080'])。http://<Prometheus服务器IP>:9090)。Backend Listener(选择PrometheusBackendListenerClient),配置Prometheus服务器地址(url: http://<Prometheus服务器IP>:9090)。JMeter Overview),即可查看实时性能指标;配置告警规则(如response_time_seconds > 2),触发告警通知。