Jenkins+Jmeter+ant自动化集成环境搭建

其实此类文档网上有很多,随手百度就是一堆,但别人的不代表就是自己的,所以还是想按实际项目自己再整理一遍属于自己的文档

1.环境准备

1.1Ubuntu 环境配置

1.1.1 服务器配置java环境
jmeter以及ant依赖于java环境,所以需要在运行的服务器搭建java运行环境
1.1.2 jmeter安装与配置
(1)选择安装目录执行下载解压缩即可:wget http://archive.apache.org/dist/jmeter/binaries/apache-jmeter-5.0.zip
(2)配置环境变量(可选):export PATH=/opt/apache-jmeter-XX/bin/:$PATH export JMETER="/opt/apache-jmeter-XX
(3)环境变量配置后,任意目录下执行 jmeter -v 查看是否配置成功
1.1.3 ant环境配置
(1)安装ant: apt-get install ant
(2)执行 ant -version查看是否安装成功

1.2windows环境配置

1.2.1JDK安装与配置(基本技能)
1.2.2ANT
:Apache-ant-XXX
(1)下载后添加环境变量如:ANT_HOME:D:\Progrom Files\apache-ant-1.9.7
(2)系统path添加: %ANT_HOME%\bin
1.2.3Jmeter:下载最新的Binaries版
(1)官网下载后直接解压缩即可使用( Source 是源代码版需手动编译,Binaries是可执行版,解压即可用)
(2)新建系统变量在变量名中输入:JMETER_HOME,内容配置如:D:\Progrom Files\apache-jmeter-5.01
(3)在环境变量Path中添加%JMETER_HOME%\bin
(4)按需插件下载,解压缩后将插件ext文件下的内容拷贝到\apache-jmeter-3.0\lib\ext:https://jmeter-plugins.org/downloads/old/

1.3配置jar包

1.3.1 ant运行jmeter依赖的jar包 复制jmeter的ant jar包到ant目录:cp $JMETER_HOME/extras/ant-jmeter-1.x.x.jar $ANT_HOME/lib/
其实很多人不知道为啥要这么做,似乎是别人都这么说了也就这么做了,其实自己试一下就知道了,如果不复制会报错找不到build中的task

BUILD FAILED
/opt/apache-jmeter-5.0/extras/api_test/database_test/build.xml:96: taskdef class org.programmerplanet.ant.taskdefs.jmeter.JMeterTask cannot be found
using the classloader AntClassLoader[]

1.3.2ant邮件发送依赖的jar包:下载javax.mail-1.X.X.jar到ant/lib/下
1.3.3数据库连接依赖jar包:下载mysql-connector-java-5.1.47-bin.jar 放到jmeter的lib下

2.jmeter配置

2.1jmeter build.xml 配置

其实很多人到这里头就大了,不知道这个文件里面乱七八糟的到底是什么东西,其实很简单,我在这里贴上我实际使用的文件,做了一些备注信息,也许便于理解吧






Sample build file for use with ant-jmeter.jar
See http://www.programmerplanet.org/pages/projects/jmeter-ant-task.php
To run a test and create the output report:
ant -Dtest=script
To run a test only:
ant -Dtest=script run
To run report on existing test output
ant -Dtest=script report
The "script" parameter is the name of the script without the .jmx suffix.
Additional options:
-Dshow-data=y - include response data in Failure Details
-Dtestpath=xyz - path to test file(s) (default user.dir).
N.B. Ant interprets relative paths against the build file
-Djmeter.home=.. - path to JMeter home directory (defaults to parent of this build file)
-Dreport.title="My Report" - title for html report (default is 'Load Test Results')







 
 
 

 











    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
  
    
    
    
    
    
    
    

    

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    






   
























Cannot find all xalan and/or serialiser jars
The XSLT formatting may not work correctly.
Check you have xalan and serializer jars in ${lib.dir}
















2.2jmeter html报告配置

2.2.1html简要报告生成
如我的文件build.xml target="xslt-report-summary”中提到的:style="${basedir}/jmeter-results-report${style_version}.xsl"这里使用的就是jmeter的原生的HTML 风格的报告,类似于我们聚合报告,有一个整体的执行情况以及错误反馈

image.png

2.2.2html详细报告
简要报告只是一个整体执行情况概览,对于需要详情信息是不足够的,所以需要用到detail报告
(1)下载最新的jmeter.results.shanhe.me.xsl到$JMETER_HOME/extras下
(2)进入$JMETER_HOME/bin下修改jmeter.properties:取消需要的配置信息注释并改为true,这样做是为了获取响应的数据或属性

jmeter.save.saveservice.data_type=true
jmeter.save.saveservice.label=true
jmeter.save.saveservice.response_code=true
#response_data is not currently supported for CSV output
jmeter.save.saveservice.response_data=true
#Save ResponseData for failed samples
jmeter.save.saveservice.response_data.on_error=false
jmeter.save.saveservice.response_message=true
jmeter.save.saveservice.successful=true
jmeter.save.saveservice.thread_name=true
jmeter.save.saveservice.time=true
jmeter.save.saveservice.subresults=true
jmeter.save.saveservice.assertions=true
jmeter.save.saveservice.latency=true
#Only available with HttpClient4
jmeter.save.saveservice.connect_time=true
jmeter.save.saveservice.samplerData=true
jmeter.save.saveservice.responseHeaders=true
jmeter.save.saveservice.requestHeaders=true
jmeter.save.saveservice.encoding=false
jmeter.save.saveservice.bytes=true
#Only available with HttpClient4
jmeter.save.saveservice.sent_bytes=true
jmeter.save.saveservice.url=true
jmeter.save.saveservice.filename=true
jmeter.save.saveservice.hostname=true
jmeter.save.saveservice.thread_counts=true
jmeter.save.saveservice.sample_count=true
jmeter.save.saveservice.idle_time=true

报告样式示例


image.png

3.定时任务

目前为止基本环境已经搭建完成了,在build所在路径下执行ant就可以生成报告了,但是我们期望定时执行并且定时清理产生的历史测试报告

3.1定时执行脚本

因为我是在Ubuntu下执行的,所以执行可以建一个定时脚本即可,也可以使用Jenkins构建定时任务,但是那个有些牛刀小用了
关于定时Linux定时脚本的问题,可以后面再聊聊了

3.2定时删除脚本

例如每天的0点0分删除历史文件
0 0 * * * /bin/bash /usr/local/jmeter/extras/report/delete_log.sh

你可能感兴趣的:(Jenkins+Jmeter+ant自动化集成环境搭建)