Jenkins+ant+jmeter小白入门篇(一)
本次在windows版本中进行研究
书写本文目的是为了跟我一样的小白们少走一些弯路,把我现在摸索出来的正确打开方式总结一下,望共勉,此外里面内容还有好多我不太懂的地方还请路过的大神们多多提出宝贵意见,3Q!
-
首先了解下什么是接口测试:
一、什么是接口测试?
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
接口测试适用于为其他系统提供服务的底层框架系统和中心服务系统,主要测试这些系统对外部提供的接口,验证其正确性和稳定性。接口测试同样适用于一个上层系统中的服务层接口,越往上层,其测试的难度越大。
接口测试实施在多系统多平台的构架下,有着极为高效的成本收益比,接口测试天生为高复杂性的平台带来高效的缺陷监测和质量监督能力。平台越复杂,系统越庞大,接口测试的效果越明显。
基于接口测试的重要性,以及它比较容易自动化的特性,通过持续集成的接口监控能够及时的发现项目中存在的问题,这对持续运营的项目来说,非常重要。二、接口测试的流程
1、 项目启动后,测试人员要尽早找到开发人员拿到接口测试文档
2、 获取接口测试文档后,就可以进行接口用例的编写和调试
3、 接口用例编写调试完成后,部署到持续集成的测试环境中,
4、 设定脚本运行频率,告警方式等基本参数,进行接口的日常监控
5、 每日进行接口脚本的维护更新,接口异常的处理
-
然后准备好测试脚本
- 那个不知道jmeter怎么用的可以先学习一下jmeter的 基本用法
- 至于jmeter需要使用的jmx文件,相信你们看了jmeter的 基本用法应该能自己编写了
- 这里是我们使用非 GUI 模式运行测试脚本时可以使用的一些命令:
-h 帮助 -> 打印出有用的信息并退出
-n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter
-t 测试文件 -> 要运行的 JMeter 测试脚本文件
-l 日志文件 -> 记录结果的文件
-r 远程执行 -> 启动远程服务
-H 代理主机 -> 设置 JMeter 使用的代理主机
-P 代理端口 -> 设置 JMeter 使用的代理主机的端口号
例如:
其中可以给jmx文件指定路径,也可以给输入日志文件指定输出路径jmeter -n -t test.jmx -l logfile1.jtl -H 127.0.0.1 -P 8080
![](https://images2015.cnblogs.com/blog/1012332/201706/1012332-20170622161925663-727044414.png)
-
如果要在windows机器上执行这个命令行,有两
第一种方法:通过cmd 进入到 *\apache-jmeter-2.13\bin(也就是jmeter所在的目录)中执行
第二种方法:通过给jmeter配置环境变量,1. JMETER_HOME:E:\workplace-jenkins\apache-jmeter-2.13\bin 2. PATH: %JMETER_HOME%bin 3. CLASS_PATH: %JMETER_HOME%lib
注:这里有的时候用%JMETER_HOME%不好用,可以换成绝对路径;如果用第二种方法配置以后,则在任何路径下都可以执行jmeter命令了,我比较推荐这个;在这里最好能实现通过命令行执行jmx以后再往下进行
-
Jenkins for windows 的安装
- 首先需要一个Jenkins.war. http://pan.baidu.com/s/1sl7A8Rb
- 将war包部署在tomcat的webapp目录下,启动tomcat,就
- 然后就是傻瓜式在浏览器打开Jenkins的网站:
即${安装机器的ip}:端口http://localhost:8080/jenkins
-
安装好了以后还需要准备一个build.xml文件
直接手动建立一个build.xml文件放在你认为合适的地方,因为一会建job还要用呢!
<?xml version="1.0" encoding="utf-8"?> <project name="JmeterTest" default="all" basedir="."> <tstamp> <format property="time" pattern="yyyyMMddhhmm" /> </tstamp> <!-- 需要改成自己本地的 Jmeter 目录--> <property name="jmeter.home" value="E:\workplace-jenkins\apache-jmeter-2.13\" /> <!-- jmeter生成jtl格式的结果报告的路径--> <property name="jmeter.result.jtl.dir" value="E:\workplace-jenkins\jmeter-restult\jtl\" /> <!-- jmeter生成html格式的结果报告的路径--> <property name="jmeter.result.html.dir" value="E:\workplace-jenkins\jmeter-restult\html\" /> <!-- 生成的报告的前缀 --> <property name="ReportName" value="TestReport" /> <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}.jtl" /> <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" /> <!-- 接收测试报告的邮箱 --> <property name="mail_to" value="XX@gmail.com" /> <!-- 电脑地址 --> <property name="ComputerName" value="andre" /> <target name="all"> <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="E:\workplace-jenkins\test_case" includes="*.jmx" /> </jmeter> </target> <target name="report"> <xslt in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}" style="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl" /> <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
-
<!--
jmeter.results.shanhe.me.xsl文件不存在的话,需要自己创建一个
/>
-
<copy todir="${jmeter.result.html.dir}"> <fileset dir="${jmeter.home}/extras"> <include name="collapse.png" /> <include name="expand.png" /> </fileset> </copy> </target> <!-- 发送邮件 --> </project>
查阅了大量的文章,有些写的都不够详细,还有点小bug,自己优化了一些,若有建议,欢迎指教
-
准备差不多了,现在就建个job体验一下
![](http://upload-images.jianshu.io/upload_images/1870882-07b7411653a48ff8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
然后:
![](http://upload-images.jianshu.io/upload_images/1870882-27cd34e912d94fd9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
别的不用管直接到增加构建步骤:
![](http://upload-images.jianshu.io/upload_images/1870882-210a6d7e09a96705.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/1870882-3d532c3447483b36.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
添加参数:
Targets:参数你研究一下build.xml文件就知道了 :我是直接写了all成功才能成功
build file : build.xml路径
![](https://images2015.cnblogs.com/blog/1012332/201706/1012332-20170622162114632-1007346938.png)
点击保存即可。
然后点击立即构建,摸索了几次,成功了。
![](https://images2015.cnblogs.com/blog/1012332/201706/1012332-20170622161352960-1052401672.png)
![](http://upload-images.jianshu.io/upload_images/1870882-c7e98ae22d2b6200.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
还可以去看一下生成的报告:
![](http://upload-images.jianshu.io/upload_images/1870882-dc205b7a4eb37964.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)