Jmeter (三十)jmeter+ant+jenkins持续集成
性能测试自动化环境搭建教程
所需软件清单:
===========================================================================
软件 下载地址
JDK http://www.oracle.com/technetwork/java/javase/downloads/index.html
Jmeter https://archive.apache.org/dist/jmeter/binaries/
Ant http://archive.apache.org/dist/ant/binaries/
Jenkins https://jenkins.io/download/
===========================================================================
安装步骤:
安装Jmeter、JDK前面章节有,这里不赘述...
安装Jenkins:
解锁 Jenkins
http://localhost:8080/login?from=%2F
安装插件:
设置管理员:
安装Ant:
解压软件:
设置环境变量
设置环境变量 ANT_HOME: D:\tool\apache-ant-1.9.7
设置环境变量 PATH: D:\tool\apache-ant-1.9.7\bin
验证安装:
ANT 与 Jmeter集成配置:
修改 Jmeter 默认保存配置
修改文件 D:\tool\apache-jmeter-3.1\bin\jmeter.properties
添加:jmeter.save.saveservice.output_format=xml
将 D:\tool\apache-jmeter-3.1\extras\ant-jmeter-1.1.1.jar 拷贝 D:\tool\apache-ant-1.9.7\lib 目录下
验证 ant 集成 jmeter
在 D:\tool\apache-jmeter-3.1\extras 目录下打开 CMD,运行"ant.bat -file build.xml Dtest=Test" . 查看 D:\tool\apache-jmeter-3.1\extras 目录下是否出现 Test.jtl、Test.html 文件,若有,则构建成功。注意:Test.jmx 是默认存在的 Sample 脚本文件。
若构建失败,请分析 cmd 打印的日志消息,定位问题;
安装 Jmeter 插件
Jmeter 插件的安装。解压 JMeterPlugins-Extras-1.1.2.zip、JMeterPlugins-Standard-1.1.2.zip,
ServerAgent-2.2.1.zip 将对应 ext 目录下的文件 jar 文件拷贝到 D:\tool\apache-jmeter-
3.1\lib\ext 目录下,将 ReportGen.jar、jmeter-plugins-manager-0.11.jar 拷贝到 D:\tool\apachejmeter-3.1\lib\ext 目录下
新建工作空间工作空间目录结构为:
安装Jenkins插件:
安装插件: HTML Publisher plugin
Jenkins配置任务:
新建任务:
丢弃旧的构建:
参数化构建:
result.home: E:\JENKINS\TEST\Report
build.home: E:\JENKINS\TEST
ReportName: PerfmanceTestingReport
Threads:1
Duration:60
jmeter.home: D:\tool\apache-jmeter-3.1
ant.home:D:\tool\apache-ant-1.9.7
构建:
cd /d %ANT_HOME%\bin
ant -f %build.home%\build.xml -Dresult.home=%result.home% -Dbuild.home=%build.home%
-Dtime=%BUILD_ID% -DReportName=%ReportName% -Dthreads=%threads% -
Dduration=%duration% -DPerMonhome=%result.home%/%BUILD_ID% DbuildId=%BUILD_ID% -DjobName=%JOB_NAME%
构建后操作:
HTML directory to archive:${result.home}/${BUILD_ID}/png/
Index page[s]:AggregateReport.png
Index page title[s] (Optional):聚合报告
Report title:聚合报告
HTML directory to archive:${result.home}/${BUILD_ID}/png/
Index page[s]:test_CpuMem.png
监控被测服务器:
将 ServerAgent-2.2.1.zip 上传至被压测服务器
启动监控:
Jmeter脚本配置:
线程组配置:
线程数:${__P(request.threads,1)} 持续时间:${__P(request.duration,300)}
监控服务器配置:
配置监控服务器 IP、端口、资源
写入文件:E:\JENKINS\TEST\perfmon\test-perfmon.jtl
配置输出文件格式
编写Build.xml:
文件位置:E:\JENKINS\TEST\build.xml
<?xml version="1.0" encoding="utf-8"?>
<!--
Author:Fresh.Qin
Email:lzqinfen@126.com
-->
<project name="ant-jmeter-test" default="all" basedir=".">
<!--
<tstamp>
<format property="time" pattern="yyyyMMddHHmmss" />
</tstamp>
-->
<!-- 需要改成自己本地的 Jmeter 目录-->
<property name="jmeter.home" value="D:\tool\apache-jmeter-3.1\"/>
<!-- 需要改成 Jmeter CMDRunner.jar 目录-->
<property name="CMDRunner.home" value="${jmeter.home}\lib\ext\CMDRunner.jar"/>
<property name="ReportGen.home" value="${jmeter.home}\lib\ext\ReportGen.jar"/>
<!-- 需要改成自己本地的 Jmeter 目录-->
<!--<property name="result.home" value="E:\jmeter\BCS\Report" />-->
<property name="cpuresult.home" value="E:\JENKINS\TEST\perfmon"/>
<property name="script.home" value="E:\JENKINS\TEST\Scripts"/>
<!-- jmeter 生成 jtl 格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="${result.home}\${time}\jtl\"/>
<!-- jmeter 生成 html 格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="${result.home}\${time}\html\"/>
<!-- jmeter 生成 png 格式的结果报告的路径-->
<property name="jmeter.result.png.dir" value="${result.home}\${time}\png\"/>
<!-- 生成的报告的前缀-->
<!--<property name="ReportName" value="TestReport" />-->
<!-- 相关报告路径配置-->
<property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}${ReportName}${time}.jtl"/>
<property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}${ReportName}${time}.html"/>
<!--给 Jmeter 传入的 参数-->
<!--
<property name="threads" value="1" />
<property name="duration" value="30" />
<property name="PerMonhome" value="E:\jmeter\BCS\Report" />
<property name="build.home" value="E:\jmeter\BCS\" />
-->
<target name="all">
<echo message="jmeter.result.jtl.dir=${jmeter.result.jtl.dir}"/>
<echo message="jmeter.result.html.dir=${jmeter.result.html.dir}"/>
<echo message="jmeter.result.png.dir=${jmeter.result.png.dir}"/>
<echo message="jmeter.result.jtlName=${jmeter.result.jtlName}"/>
<antcall target="clean"/>
<!--第一步 运行脚本-->
<!--<antcall target="run.script" />-->
<antcall target="test"/>
<!--第二步 生成基础报表
<antcall target="base.report" /> 存在性能问题,不再生成基础报表-->
<!--第三步 生成扩展报表-->
<antcall target="extras.report"/>
<!--第四步 清理生成的文件-->
<antcall target="finish"/>
</target>
<target name="clean">
<mkdir dir="${jmeter.result.jtl.dir}"/>
<mkdir dir="${jmeter.result.html.dir}"/>
<mkdir dir="${jmeter.result.png.dir}"/>
<delete includeemptydirs="true">
<fileset dir="${cpuresult.home}" includes="**/*.jtl"/>
</delete>
</target>
<target name="test">
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/>
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
<testplans dir="${script.home}" includes="*.jmx"/>
<property name="jmeter.save.saveservie.output_format" value="xml"/>
<property name="request.threads" value="${threads}"/>
<property name="request.duration" value="${duration}"/>
</jmeter>
</target>
<target name="extras.report">
<!--TPS 每秒事务数-->
<exec executable="cmd.exe">
<arg line="/c java -jar ${CMDRunner.home} --tool Reporter --generate-png ${jmeter.result.png.dir}/${ReportName}${time}_TPS.png --input-jtl ${jmeter.result.jtl.dir}/${ReportName}${time}.jtl --plugin-type TransactionsPerSecond --limitrows 100 --relative-times no"/>
</exec>
<!--RTP 响应时间的百分比-->
<exec executable="cmd.exe">
<arg line="/c java -jar ${CMDRunner.home} --tool Reporter --generate-png ${jmeter.result.png.dir}/${ReportName}${time}_RTP.png --input-jtl ${jmeter.result.jtl.dir}/${ReportName}${time}.jtl --plugin-type ResponseTimesPercentiles "/>
</exec>
<!--RTD 响应时间分布情况-->
<exec executable="cmd.exe">
<arg line="/c java -jar ${CMDRunner.home} --tool Reporter --generate-png ${jmeter.result.png.dir}/${ReportName}${time}_RTD.png --input-jtl ${jmeter.result.jtl.dir}/${ReportName}${time}.jtl --plugin-type ResponseTimesDistribution "/>
</exec>
<!--RLOT 响应时间随时间的变化曲线-->
<exec executable="cmd.exe">
<arg line="/c java -jar ${CMDRunner.home} --tool Reporter --generate-png ${jmeter.result.png.dir}/${ReportName}${time}_RLOT.png --input-jtl ${jmeter.result.jtl.dir}/${ReportName}${time}.jtl --plugin-type LatenciesOverTime --limitrows 100 --relative-times no"/>
</exec>
<!--CpuMem Cpu 内存监控结果生成-->
<exec executable="cmd.exe">
<arg line="/c java -jar ${CMDRunner.home} --tool Reporter --generate-png ${jmeter.result.png.dir}/${ReportName}${time}_CpuMem.png --input-jtl ${cpuresult.home}/test-perfmon.jtl --plugin-type PerfMon --limit-rows 100 --relative-times no"/>
</exec>
<!--生成聚合报告的 CSV 文件,后面需要二次处理-->
<exec executable="cmd.exe">
<arg line="/c java -jar ${CMDRunner.home} --tool Reporter --generate-csv ${jmeter.result.png.dir}/AggregateReport.csv --input-jtl ${jmeter.result.jtl.dir}/${ReportName}${time}.jtl --plugin-type AggregateReport"/>
</exec>
<!--CSV 转换成 PNG-->
<exec executable="cmd.exe">
<arg line="/c java -jar ${ReportGen.home} ${jmeter.result.png.dir}/AggregateReport.csv ${jmeter.result.png.dir}/AggregateReport.png"/>
</exec>
<!--服务器监控数据处理-->
<exec executable="cmd.exe">
<arg line="/c java -jar ${CMDRunner.home} --tool Reporter --generate-png ${jmeter.result.png.dir}/test_CpuMem.png --input-jtl ${cpuresult.home}/test-perfmon.jtl -- plugin-type PerfMon --limit-rows 100 --relative-times no"/>
</exec>
</target>
<target name="finish">
<copy todir="${jmeter.result.jtl.dir}">
<fileset dir="${cpuresult.home}">
<include name="**/*.jtl"/>
</fileset>
</copy>
</target>
</project>
一键压测:
转自:https://www.cnblogs.com/ai594ai/p/7127333.html
转载于:https://www.cnblogs.com/Lydia25/p/9989933.html
Jmeter (三十)jmeter+ant+jenkins持续集成相关推荐
- Gitlab+jenkins持续集成+自动化部署(三)
搭建gitlab+Jenkins自动化部署 在jenkins上安装插件 Build Authorization Token Root Plugin. Build Authorization Token ...
- 半天搭建你的Jenkins持续集成与自动化部署系统
前言 相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛.由于我们所做的系统业务复杂,系统庞大,设计到多个系统之间的合作,而核心系统更是采用分布式系统架构,由 ...
- 【测试开发】的Devops持续集成部署体系之Jenkins持续集成和持续部署基础应用
目录 [一]:Jenkins 持续集成安装及使用简介 一.前言 二.初始化 Jenkins 插件和管理员用户 2.1 进入如下页面,输入上面出现的口令 2.2 进入选择安装插件的页面后,可以选择安装社 ...
- Jenkins持续集成入门到精通
Jenkins持续集成入门到精通 文章目录 Jenkins持续集成入门到精通 1. 持续集成及Jenkins介绍 1.1 软件开发生命周期 1.2 软件开发瀑布模型 1.3 软件的敏捷开发 1.3.1 ...
- AndroidStudio目录结构 APP构建流程 Jenkins持续集成构建 Gradle介绍 Proguard混淆
Android Studio目录结构 通常我们是将工程设置成project模式,这个模式下我们的工程有很多目录: .gradle:包含一些Gradle编译脚本,gradle是Google推荐的编译工具 ...
- Jenkins持续集成
Jenkins持续集成 1.介绍.环境搭建 什么是Jenkins? Jenkins是一款开源CI&CD软件,用于自动化各种任务,包括构建.测试和部署软件,支持自定义工具集.多种交付通道 CI: ...
- Jenkins持续集成学习-Windows环境进行.Net开发4
目录 Jenkins持续集成学习-Windows环境进行.Net开发4 目录 前言 目标 Github持续集成 提交代码到Github 从Github更新代码 git上显示构建状态 自动触发构建 Gi ...
- 超详细的jenkins持续集成工作原理、功能、部署方式等介绍
文章由LinuxBoy分享于2019-08-30 11:08:39 超详细的jenkins持续集成工作原理.功能.部署方式等介绍 1. 概念 jenkins是一个开源项目,提供了一种易于使用的持续集成 ...
- 华为表哥手把手教你利用Jenkins持续集成iOS项目,教不会我花式拉翔!!!
手把手教你利用Jenkins持续集成iOS项目: 前言 众所周知,现在App的竞争已经到了用户体验为王,质量为上的白热化阶段.用户们都是很挑剔的.如果一个公司的推广团队好不容易砸了重金推广了一个APP ...
- Jenkins持续集成结合Docker Swarm集群实现Web应用部署的发布
案列环境: 准备5台虚拟机,其中3台用于部署Docker Swarm集群,1台部署代码版本控制系统,1台部署Jenkins持续集成工具. 192.168.80.10 swarm01 192.168.8 ...
最新文章
- 一个简单的更改让PyTorch读取表格数据的速度提高20倍:可大大加快深度学习训练的速度...
- setDrawingCacheEnabled(boolean flag)
- java字符排序规则_java 重写排序规则,用于代码层级排序
- boost::mpl模块实现replace_if相关的测试程序
- java两字符串是否相等_Java与JavaScript中判断两字符串是否相等的区别
- 图像处理中腐蚀与膨胀的原理
- 图解 继电器模组接线图_交流接触器,继电器的知识你了解多少?(值得收藏)...
- 疫情之下,哪些行业正在逆势爆发?
- mysql5.7 开启重连_MySQL5.7.9,怎样永久设置client、connection、results这三项为utf8?...
- 【元胞自动机】基于matlab界面聚合元胞自动机模拟【含Matlab源码 2004期】
- 网络协议分析-TCP协议分析
- IBM ServerGuide 8.42
- hive计算几个月的最大最小时一定要把string类型转换成int类型
- 企业微信实现消息通知功能
- 加拿大综合类大学排名获关注,盘点高校对雅思要求
- 请将文件MP_verify_xxxxxx.txt上传至填写域名或路径指向的web服务器(或虚拟主机)的目录 曲线救国
- python第五次笔记
- 学UI设计,用对这5款设计软件是关键
- Phong与Blinn-Phong
- python画聚类图、并且把聚类图保存起来_Python利用igraph绘制复杂网络聚类(社区检测)结果图-Go语言中文社区...