jmeter+ant+jenkins 简单了解
嗯 最开始看 真的是一头雾水不知道从哪里下手 安装好的jenkins也又给卸载了,后来一篇博客对我的影响挺大的
简单说,就是 先学习 jmeter+ant 然后再集成到jenkins平台。哎 还是经验不够啊
呐 先放上这篇博客的链接点击打开链接
1.首先写jmeter脚本
这是对 获取验证码--登录--查看个人中心--修改个人资料--退出--自动登录 一个业务流用Jemter进行压力测试。
这里最后一个 是我我故意写错的请求,后面会用到。
顺便说一下,由于 登录需要第一个请求的验证码,但是验证码又不在服务器返回的数据里所以不能通过正则提取。在这里
我通过一个Cookie管理器,然后一个写死的验证码来进行登录这一步。
2.看一下我的jmeter的文件保存地址,里面都有些什么
report:这个是通过ant把JMeter的 .jmx文件 转化为xtml和jtl文件后 的文件夹,但是我这个文件夹里面是空的,我通过下面的那个build.xml把上述两个文件放到了 jenkins的文件路径下了
build.xml : ant的build 执行文件,通过修改这个文件来进行一些ant的配置
获取手机验证码.jmx : 就是 第一步 写的JMeter脚本文件
3.JMeter+ant
其实如果看过我最上面给出的大神链接,我一下说的基本都是废话
a.下载安装JMeter,并且会一些基本操作和使用
b.下载安装好ant,配置好了环境 ,确定在命令框 输入 ant -version 会出现ant的版本信息
c.看好 第二步 文件夹把 JMeter脚本文件.jmx 和 build.xml 放到一起 然后下面给出build.xml的代码:
<?xml version="1.0" encoding="UTF-8"?>
<project name="ant-jmeter-test" default="run" basedir=".">
<tstamp>
<format property="time" pattern="yyyyMMddhhmm" />
</tstamp>
<!-- 需要改成自己本地的 Jmeter 目录-->
<property name="jmeter.home" value="D:\JMeter\apache-jmeter-3.2" />
<!-- jmeter生成jtl格式的结果报告的路径 此处为jenkins持续集成 D:\Jenkins\jenkins-sys\workspace\report\ -->
<!-- <property name="jmeter.result.jtl.dir" value="D:\JMeter\apache-jmeter-3.2\workSp\report\jtl" /> -->
<property name="jmeter.result.jtl.dir" value="D:\Jenkins\jenkins-sys\workspace\report\jtl" />
<!-- jmeter生成html格式的结果报告的路径 -->
<!-- <property name="jmeter.result.html.dir" value="D:\JMeter\apache-jmeter-3.2\workSp\report\html" /> -->
<property name="jmeter.result.html.dir" value="D:\Jenkins\jenkins-sys\workspace\report\html" />
<!-- 生成的报告的前缀-->
<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" />
<target name="run">
<antcall target="test" />
<antcall target="report" />
</target>
<target name="test">
<taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
<jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
<!-- 声明要运行的脚本。"*.jmx"指包含此目录下的所有jmeter脚本-->
<testplans dir="D:\JMeter\apache-jmeter-3.2\workSp" includes="*.jmx" />
<property name="jmeter.save.saveservice.output_format" value="xml"/>
</jmeter>
</target>
<!-- 此处添加的代码是为了解决ant生成的html,jmeter报告中MinTime和MaxTime没有数据的情况
<path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
</path>
classpathref="xslt.classpath"
force="true"
<param name="dateReport" expression="${report.datestamp}"/>
-->
<path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
</path>
<target name="report">
<xslt
classpathref="xslt.classpath"
force="true"
in="${jmeter.result.jtlName}"
out="${jmeter.result.htmlName}"
style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" >
<param name="dateReport" expression="${report.datestamp}"/>
</xslt>
<!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
<copy todir="${jmeter.result.html.dir}">
<fileset dir="${jmeter.home}/extras">
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</copy>
</target>
</project>
看到这里知道为什么我上一步说,report那个文件夹是空的吧。为了集成jenkins就把JMeter生成的两个文件放到了 jenkins的文件路径下了 。这个 build.xml 很总要 可以多看几遍有注释也可以多参考别人的。比如最上面放的那个链接。
好了,然后 再命令框 进入当放build.xml和Jmeter的.jmx 路径下 输入 ant,如下图:
可以看到我的两个.jmx 已经被build succsessful
然后进入 上面写的结果报告路径看看一下
呐,一个html 一个jtl.都全了。
首先看看 html里面的内容 :
里面有我别的东西,被圈的就是 我们上面生成的 再打开来楼一眼:
是不是看着很舒服,几个http请求都有了,红色报错的就是我jmeter里面故意写的那个错误请求,为了又一个好的对比效果。
---------------------------------------这一步好长 来个分割线-------------------------------------------------------------
下面看 .jtl 文件
我直接打开了对应的jtl 文件,大家看一下。猛一看是不是看不懂,其实吧 仔细看好几眼也只能看个大概
下面给大家个一图,对比的看一下就明白了,都是些返回码 绝对时间 返回消息 字节大小之类的东西。
---------------------------------------分---分----分-----分--分---分---分割线-------------------------------------------
期间碰到了2个错误也顺便 贴出来:
第一个圈起来的额就不说了 就是把jmeter下的一个文件复制ant下,具体的 请百度
第二个圈起来的着实是让我 百度了好一会 实际情况是:
因为大家最开始很多都是复制的同一个代码所以很多这个问题。
哈哈哈,是不是很好玩。----------此处默默骂声 屁啊!
好了,jmete+ant 就到这里 下面开始集成jenjins
4.开始集成jenkins
说在前面的话:
本人对 jenkins是很不很不了解,搞不怎么清楚,现在也是。
所以 先给出一个链接大家先瞅瞅点击打开链接,然后百度下 jenkins怎么用
1.安装,可以百度下
2.看下主界面,然后点击新建
3.输入名字,构建一个自由风格软件项目,最下面 点击 ok
4.由于前面已经说了 自己也是菜,所以并没有配置很多东西,但是配置的都会把图贴上来
这个是,额 看图中文字表达。 也可以点后面的 ? 号。看不懂就 翻译
5.源码管理没有 构架触发器没有,
构建环境; 把安装jdk和ant 是 系统环境变量里的ANT_HOME 和 ANT_HOME 拿出来放到
系统管理--Global Tool Configuration--JDK&ANT就可以了如图 后呢***
***这里就能够选择了
6.在构建里 加入InvokeAnt 配置如图
在构建后操作里 加入 public HTML reports 配置如图
如果,没有找到 那就是插件没安装,至于怎么安装怎么安装 这个不难就不说了多看几篇博客 也是有很多好处的。
之前说了我菜 是真的才 还有一个图形的功能插件那个功能 我还没弄出来 老是报错。所以请像大神学习
7.最后了 就是运行了 点击 立即构建 然后点击HTML_Report 看看 结果就可以了。
在查看HTML Report 时如果发现请求并没有问题但是又大片的红,或者 显示不全的问题 请看这篇博客点击打开链接
-----------------------------------------一点点学习的分隔符----------------------------------------------
嗯,如果对这些有了解后 可以参照这篇博客点击打开链接
这次 我只是把报告优化了一下
对于那个 Performance Report ,虽然出现了一些数据但是 依旧有错。Rpeponse time 的折线图也没显示出来,哎 还是得继续扒资料 看!