Jenkins+ant+jmeter接口自动化环境搭建

1.搭建环境需要安装的软件(windows环境)

 1.JDK:jdk1.8.0_144

下载地址: http://www.oracle.com/technetwork/java/index.html

 2.ant:apache-ant-1.10.1

下载地址:http://ant.apache.org/bindownload.cgi

3. jenkins:jenkins-2.99

下载地址:https://jenkins.io/download

4. jmeter :apache-jmeter-2.12  

下载地址:http://jmeter.apache.org/

2. 工具安装

2.1 jdk安装

双击JDK安装包,选择安装路径(为了节省C盘系统盘空间,不建议选择默认路径)


1)系统变量→新建 JAVA_HOME 变量 。

变量值填写jdk的安装目录(本人是 C:\Program Files (x86)\Java\jdk1.8.0_144);

2)系统变量→寻找 Path 变量→编辑

在变量值最后输入%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

3)系统变量→新建 CLASSPATH 变量

变量值填写.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有一点)

系统变量配置完毕

4)检验是否配置成功 运行cmd 输入 java -version (java 和 -version 之间有空格)

若如图所示显示版本信息则说明安装和配置成功


2.2 jmeter安装

1)jmeter安装比较简单,直接解压apache-jmeter.zip 到指定目录即可


Jmeter插件安装,Plugins Manager(插件管理工具)JMeterPlugins-Standard(标准插件包)

Plugins Manager:

官网地址:https://jmeter-plugins.org/downloads/all/

JMeterPlugins-Standard:

官网地址:https://jmeter-plugins.org/downloads/old/

下载插件包后,将对应ext目录下的文件拷贝到jmeter安装目录lib\ext下

jmeter环境变量配置

2)设置环境变量,新建系统变量在变量名中输入:JMETER_HOME,变量值中输入:D:\软件\apache-jmeter-2.12(请输入自己的安装目录),点击确定即可

在环境变量CLASSPATH中添加%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;

%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-1.2.jar;

在环境变量Path中添加%JMETER_HOME%\bin[if !supportLists]

3)检查是否安装成功

检验是否配置成功运行cmd输入 jmeter -v (jmeter和 -v 之间有空格)

若如图所示显示版本信息则说明安装和配置成功。



2.3 ant安装

1)解压apache-ant-1.10.1-bin.zip到指定目录下(自己选择目录)

2)配置ant环境变量

a.新建环境变量

ant_home:D:\软件\ant\apache-ant-1.10.1-bin\apache-ant-1.10.1此为你的ANT安装路径;

设置完成后,点击"确认"来保存。

    b.在环境变量PATH的最后面添加一下内容:

;%ANT_HOME%\bin注意前面的分号,如果PATH中最后没有分号";"的话要加上,有的话就可去除

C. 进入cmd命令窗口,在CMD窗口中输入ant -version,敲击回城键,会显示出你安装的ANT版本,如果成功显示,说明你的配置应该是成功了


3) 本地调试使用ant构建运行Jmeter,并且生成jtl、Html报告

·  jmeter默认保存的是.csv格式的文件,所以我们先要设置一下bin/jmeter.properties文件内容,修改jmeter.properties文件 jmeter.save.saveservice.output_format=xml;

·  将apache-jmeter-2.12\extras\ant-jmeter-1.10.1.jar拷贝到apache-ant-1.10.1\lib目录下;

.将jmeter.results.shanhe.me.xsl 样式放入\apache-jmeter-2.12\extras目录下;同时修改jmeter.properties文件,修改内容如下


·  在\apache-jmeter-2.12\extras目录下打开CMD,运行"ant.bat -file build.xml -Dtest=Test" . 查看\apache-jmeter-2.12\extras目录下是否出现Test.jtl、Test.html文件,若有,则构建成功。注意:Test.jmx是默认存在的Sample脚本文件。 若构建失败,请分析cmd打印的日志消息,定位问题;(修改好build.xml中的路径)


Build文件 推荐     jmeter.results.shanhe.me.xsl 样式(文件不可以上传,可自行百度或者联系我)


2.4 jenkins安装

到官网下载windows安装包,双击,按照提示一步步操作即可, jenkins的默认端口是8080,如果发现接口冲突,修改jenkins的配置即可;修改安装目录下的jenkins.xml文件,



安装成功后,打开任意浏览器输入localhost:8080;进入jenkins登录界面;然后进入Manage Plugins界面,可以根据自己的需要安装插件。


3. jenkins集成API自动化

3.1编写一个jmeter接口脚本

找到jmeter的安装目录,在bin目录下找到jmeter.bat,双击打开

a.新建线程组,右键测试计划,添加选择线程组,


b.右键线程组,添加栏选择配置元件,选择HTTP信息头管理器



然后添加Content-Type:application/json

C.右键线程组,添加栏选择Sampler,选择HTTP请求




D.右键线程组,添加栏选择断言,选择响应断言



e.右键线程组,添加栏选择监听器,选择断言结果和查看结果树


F. 保存测试计划到指定目录

G. 跑压测,并发设置


H. 聚合报告说明

Label:每个JMeter的element的Name值。例如HTTP Request的Name

#Samples:发出请求数量。如第三行记录,模拟20个用户,循环100次,所以显示了2000

Average:平均响应时间(单位:)。默认是单个Request的平均响应时间,当使用了Transaction Controller时,也可以以Transaction为单位显示平均响应时间

Median:中位数,也就是50%用户的响应时间

90%Line:90%用户的响应时间

95%Line:95%用户的响应时间

99%Line:99%用户的响应时间

Min:最小响应时间

Max:最大响应时间

Error%:本次测试中出现错误的请求的数量/请求的总数

Throughput:吞吐量。默认情况下标示每秒完成的请求数

KB/sec:每秒从服务器端接收到的数据量






3.2 工程目录创建

将jmeter的脚本文件和build.xml文件放在同一目录下,同时并创建一个report文件夹存放jmeter生成的报告,report里新建一个html文件夹和jtl文件夹;


4. jenkins创建job任务

4.1创建jenkins任务

创建项目,选择一个自由风格的


设置工作空间


构建选择ant(需提前在Jenkins中设置好变量)


构建后操作:在进入任务的配置页面,然后在构建后操作模块增加构建后的操作“Editable Email Notification”,如图






 注意:在高级设置中设置邮件触发条件


邮件配置:设置Extended E-mail Notification

进入“系统管理”-“系统设置”,对Extended E-mail Notification进行配置,具体参考下图: 


注意:上图中的Password不是qq密码,而是在QQ邮箱申请开通IMAP/SMTP服务后收到的密码


我的邮件模板代码:

<!DOCTYPE html>  

<html>  

<meta charset="GBK">  

<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"  

    offset="0">  

    <div>

    <table width="95%" cellpadding="0" cellspacing="0"

        style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">

        <tr>  

            <td colspan="2" align="center"><br />

测试报告</h2>

            </td>  

        </tr>

        <tr>

            <td colspan="2" align="center">

                   <div>${FILE ,path="D:/apiautomation/User-center/report/html/TestReport.html"}</div>

            </td>

        </tr>

    </table>

    </div>

  </body>  

</html>

4.2.构建jenkins

创建好jenkins任务后,点击立即构建,构建成功后,会发送邮件到指定邮箱,可以查看接口测试结果



4.3. [endif]定时触发构建

我们在使用Jenkins构建项目的时候。

  常用到定时构建,定时在某个时间自动构建

  我们需要在配置job的时候选择构建触发器

  在日程表中按照格式写入时间,文本框下会显示上一次和下一次运行的时间,如图:

定时构建输入格式的设置:

输入的时间格式由五部分组成,每一部分用空格分隔

每个部分代表的含义以及取值范围分钟,取值范围(0~59):若其他值不做设定,则表示每个设定的分钟都会构建

如:5 * * * * ,表示每个小时的第5分钟都会构建一次小时,取值范围(0~23):若其他值不做设定,则表示每个设定小时的每分钟都会构建

如:* 5 * * * ,表示在每天5点的时候,一小时内每一分钟都会构建一次日期,取值范围(1~31):若其他值不做设定,则表示每个月的那一天每分钟都会构建一次

如:* * 5 * *,表示在每个月5号的时候,0点开始每分钟构建一次月份,取值范围(1~12):若其他值不做设定,则表示每年的那个月每分钟都会构建一次

如:* * * 5 *,表示在每年的5月份,1号0点开始每分钟构建一次星期,取值范围(0 ~ 7):若其他值不做设定,则表示每周的那一天几每分钟都会构建一次

如:* * * * 5,表示每周五0点开始每分钟构建一次

每一部分的表达方式

*:表示任意合理的数

a-b:表示一个范围,比如:5-8 * * * * OR * 5-8 * * *。具体表达的意思参考上面的含义

a-b/c OR */c:表示一个范围内每个c构建一次,比如:5-10/2 * * * * OR * */3 * * * 具体表达的意思参考上面的含义

a,b,c:表示为a、b、c时构建一次,比如:7,8,9 * * * * OR * * 13,5 * * 具体表达的意思参考上面的含义

附录

5.1邮件报告显示乱码解决方法

服务器添加环境变量JAVA_TOOL_OPTIONS:-Dfile.encoding=UTF-8,然后重启Jenkins即可


微信搜索:不懂测试的攻城狮  关注我的公众号,可查看更多资料!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容