本次在windows版本中进行研究
书写本文目的是为了跟我一样的小白们少走一些弯路,把我现在摸索出来的正确打开方式总结一下,望共勉,此外里面内容还有好多我不太懂的地方还请路过的大神们多多提出宝贵意见,3Q!
-
首先了解下什么是接口测试:
一、什么是接口测试?
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
接口测试适用于为其他系统提供服务的底层框架系统和中心服务系统,主要测试这些系统对外部提供的接口,验证其正确性和稳定性。接口测试同样适用于一个上层系统中的服务层接口,越往上层,其测试的难度越大。
接口测试实施在多系统多平台的构架下,有着极为高效的成本收益比,接口测试天生为高复杂性的平台带来高效的缺陷监测和质量监督能力。平台越复杂,系统越庞大,接口测试的效果越明显。
基于接口测试的重要性,以及它比较容易自动化的特性,通过持续集成的接口监控能够及时的发现项目中存在的问题,这对持续运营的项目来说,非常重要。
二、接口测试的流程
1、 项目启动后,测试人员要尽早找到开发人员拿到接口测试文档
2、 获取接口测试文档后,就可以进行接口用例的编写和调试
3、 接口用例编写调试完成后,部署到持续集成的测试环境中,
4、 设定脚本运行频率,告警方式等基本参数,进行接口的日常监控
5、 每日进行接口脚本的维护更新,接口异常的处理
-
然后准备好测试脚本
- 那个不知道jmeter怎么用的可以先学习一下jmeter的 基本用法
- 这里我提前准备好了一个jmx文件(提取码:a446)
- 这里是我们使用非 GUI 模式运行测试脚本时可以使用的一些命令:
-h 帮助 -> 打印出有用的信息并退出
-n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter
-t 测试文件 -> 要运行的 JMeter 测试脚本文件
-l 日志文件 -> 记录结果的文件
-r 远程执行 -> 启动远程服务
-H 代理主机 -> 设置 JMeter 使用的代理主机
-P 代理端口 -> 设置 JMeter 使用的代理主机的端口号
例如:
jmeter -n -t test.jmx -l logfile1.jtl -H 192.168.1.1 -P 8080
其中可以给jmx文件指定路径,也可以给输入日志文件指定输出路径
-
如果要在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的安装包,或者根据自己需要Jenkins官网下载
-
下载好windows版以后,直接解压打开msi
安装包.png - 安装的过程中选择好路径,然后就是傻瓜式的下一步,完成后会自动打开Jenkins的网站:
http://localhost:8080
即${安装机器的ip}:8080 - 首次进入会有个密码,根据红色提示信息 ,复制到 在文件管理器中找到密码
- 选择推荐插件就行,运气好能少失败几个,然后就等着吧 ,等到进度条到头的时候(这时候Jenkins不一直在那不动,我也不知道为啥,欢迎指教),可以手动刷新页面再次进入Jenkins,选择continue就可以
可以先去修改个密码省的下次登录还得找 “系统管理->管理用户”
-
安装好了以后还需要准备一个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" />
<!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
<copy todir="${jmeter.result.html.dir}">
<fileset dir="${jmeter.home}/extras">
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</copy>
</target>
<!-- 发送邮件 -->
</project>
查阅了大量的文章,写法都差不多,但是我还不能自己优化,故直接拿来,记录下待他日有深刻体会时再次修改,特别说明一个地方:${jmeter.home}/extras/jmeter.results.shanhe.me.xsl这个是我下载的一个第三方模板(提取码:d982),有兴趣你也可以下个试试,不过jmter自带了4个模板
-
准备差不多了,现在就建个job体验一下
然后:
job名字.png别的不用管直接到增加构建步骤:
构建.png Paste_Image.png添加参数:
Targets:参数你研究一下build.xml文件就知道了
build file : build.xml路径
点击保存即可。
然后点击构建,我这里成功了。
Paste_Image.png Paste_Image.png还可以去看一下生成的报告:
Paste_Image.png-
到现在为止一个Jenkins+jmeter+ant自动化的框架基本搭建完事了,剩下的就是看你怎样发挥你的想象力去创造了,后续还会更新一些创建report,以及发送报警邮件等等的其它功能,待续!
网友评论
Unable to find build script at <xml路径>
我在系统管理/全局工具配置里设置了ant的,但依旧报错
[xslt] Processing /Users/lily/Work/performanceTest/apache-jmeter-3.2/jmeter-restult/jtl/TestReport.jtl to /Users/lily/Work/performanceTest/apache-jmeter-3.2/jmeter-restult/html/TestReport201801031134.html
[xslt] Loading stylesheet /Users/lily/Work/performanceTest/apache-jmeter-3.2/extras/jmeter.results.shanhe.me.xsl
[xslt] : Error! 前言中不允许有内容。
[xslt] : Error! com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: 前言中不允许有内容。
[xslt] Failed to process /Users/lily/Work/performanceTest/apache-jmeter-3.2/jmeter-restult/jtl/TestReport.jtl
你好,麻烦问下这个是怎么回事
'ant.bat' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
Build step 'Invoke Ant' marked build as failure
Finished: FAILURE
这样的错误