Jmeter+ant+git+Jenkins接口自动化框架搭建

一、背景


  我们知道怎么利用Jmeter去编写接口自动化脚本,但是接口自动化测试单有脚本是不够的,我们还需要从git上拉取脚本,批量跑指定接口,生成接口运行报告,定位报错接口,接口定时任务,邮件通知等功能。
批量跑指定接口:我们可以利用ant批量跑指定目录下的Jmeter脚本;
生成接口运行报告:使用Jmeter(extras目录下)自带的 jmeter-results-detail-report_21.xsl样式文件,可根据项目实际需求做修改;目前项目中使用了两个模板,一个作为邮件正文,一个作为邮件附件。
接口定时任务:使用Jenkins的build periodically完成;

邮件通知:使用Jenkins的Extended E-mail Notification插件,顺序从Jmeter-》Jmeter+ant-》Jmeter+ant+git+Jenkins穿插原理,逐渐过渡。

二、Jmeter+ant+git+Jenkins接口自动化框架搭建

1 Jmeter

1、脚本testChimeInterface.jmx

/Users/renren/software/apache-jmeter-3.3/extras/InterfaceTest/testChimeInterface.jmx


2、添加jmeter环境变量

open -t ~/.bash_profile

Jmeter+ant+git+Jenkins接口自动化框架搭建_第1张图片

3、bash命令:

cd /Users/renren/software/apache-jmeter-3.3/extras/InterfaceTest

jmeter -n -t testChimeInterface.jmx -l log.jtl

-n 这是指定JMeter在非用户界面模式运行

-t 包含测试计划的JMX文件的名字

-l 记录取样结果的JTL文件的名字

Jmeter+ant+git+Jenkins接口自动化框架搭建_第2张图片

这里要讲两句,我们做接口自动化还好,要是用Jmeter做负载测试时,建议写好性能脚本后,用NON GUI模式进行负载测试,即非图形化界面,也就是建议使用命令行运行!因为图形化界面会消耗资源,导致负载测试结果不精确,特别是用图形化界面时还把查看结果树给打开,查看结果树输出的结果很多,所以,写完负载测试脚本后尽量把查看结果树等调试插件给禁掉

我们启动Jmeter3.0以上版本,也有建议不要使用图形化界面进行负载测试的提示:

Jmeter+ant+git+Jenkins接口自动化框架搭建_第3张图片

2 Jmeter+ant

1、下载ant后设置ant环境变量:

方法同上面的jmeter

Jmeter+ant+git+Jenkins接口自动化框架搭建_第4张图片

环境变量配置成功验证-》终端中输入ant,提示:Buildfile: build.xml does not exist

2、将JMeter所在目录下extras子目录里的ant-JMeter-1.1.1.jar复制到Ant所在目录lib子目录之下,这样Ant运行时才能找到"org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"这个类,从而成功触发JMeter脚本

3、主要逻辑思路:

/Users/renren/software/apache-jmeter-3.3/extras 

下有build.xml文件
运行

/Users/renren/software/apache-jmeter-3.3/extras/InterfaceTest 

下面的.jmx脚本,生成.jtl文件放入

/Users/renren/software/apache-jmeter-3.3/extras/result/jtl

然后ant再利用指定的.xsl文件去解析.jtl文件,生成对应的html文件放入

/Users/renren/software/apache-jmeter-3.3/extras/result/html中。

简写就是:跑完结果后,.xsl文件把.jtl文件转化成直观的html报告。

PS:XSL是什么
XSL是可扩展样式表语言(eXtensible Stylesheet Language)的外语缩写,是一种用于以可读格式呈现 XML(标准通用标记语言的子集)数据的语言。
易懂一点的说法:XSL可描述如何来显示 XML 文档,XSL 之于XML,就像CSS之于HTML。

build.xml文件中的内容如下:



    
		
        
        
        
    
    
    
    
    
    
    
    
    
    
    
        
        
    
    
    
        
        
            
            
        
    
    
    
        
            
            
        


        
             
        


        
             
        


        
            
                
                
            
        
    

切换到build.xml目录下

cd /Users/renren/software/apache-jmeter-3.3/extras 


目录下运行:

ant -f build.xml



提示:

BUILD SUCCESSFUL

Total time: 10 seconds


代表build.xml文件运行成功

/Users/renren/software/apache-jmeter-3.3/extras/result目录下会生成.jtl和.html文件

Jmeter+ant+git+Jenkins接口自动化框架搭建_第5张图片


3 Jmeter+ant+git+Jenkins

这里不在详细讲解,因为前一篇UI自动化框架中 git email已写的很详细,这里只列举差异

1.所需插件:

Jmeter+ant+git+Jenkins接口自动化框架搭建_第6张图片

2.Global Tool onfiguration中配置JDK、Git、Ant 我这块选择本地的安装位置

Jmeter+ant+git+Jenkins接口自动化框架搭建_第7张图片

接下来“构建环境”中添加with Ant中的ant和JDK

Jmeter+ant+git+Jenkins接口自动化框架搭建_第8张图片

3.在构建中增加构建步骤

Jmeter+ant+git+Jenkins接口自动化框架搭建_第9张图片

4.构建后操作

Jmeter+ant+git+Jenkins接口自动化框架搭建_第10张图片


5、设置定时任务,这里是设置每周一到周五的8点30分运行次JOB。
定时构建语法:

  • * * * * *(五颗星,中间用空格隔开)

第一颗*表示分钟,取值0~59
第二颗*表示小时,取值0~23
第三颗*表示一个月的第几天,取值1~31
第四颗*表示第几月,取值1~12
第五颗*表示一周中的第几天,取值0~7,其中0和7代表的都是周日

Jmeter+ant+git+Jenkins接口自动化框架搭建_第11张图片

三、扩展

1·执行多个目录的jmx脚本Jmeter+ant+git+Jenkins接口自动化框架搭建_第12张图片

改为

Jmeter+ant+git+Jenkins接口自动化框架搭建_第13张图片

2.生成多个html报告

我这里是生成两个,一个简单的汇总报告,一个详细的报告(用于定位接口报错)

Jmeter+ant+git+Jenkins接口自动化框架搭建_第14张图片

改为

Jmeter+ant+git+Jenkins接口自动化框架搭建_第15张图片

PS:
使用jmeter-results.......xsl的一些前置操作
1、下载或修改style修改文件:jmeter.results.xsl
2、把下载的文件放到jmeter的extras目录下。

3、修改jmeter.properties文件如下部分,我这里大部分都修改成true,这样执行完脚本后就会保存这些结果到.jtl文件里面,重启jmeter生效:

Jmeter+ant+git+Jenkins接口自动化框架搭建_第16张图片

3.XSL文件的定制

其实XSL语法跟XML挺像的,多看看我们可以进行定制,如定义接口排序,扩展性能指标,那样我们性能测试也能利用这个生成报告,响应时间超过3秒的接口标黄显示,直观显示接口响应的性能状态,主要还是看公司的业务需求,目前我们没有涉及到性能,主要是业务功能的接口测试,所以我这块以事物作为用例来,一个用例下面会包含一个或多个接口。


你可能感兴趣的:(jmeter)