Jmeter+svn+ant+Jenkins
Posted openCode
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jmeter+svn+ant+Jenkins相关的知识,希望对你有一定的参考价值。
一、平台介绍
1、Jmeter实现接口请求与数据驱动;
2、Svn管理Jmeter代码测试数据;
3、ant管理工具及业务流程的加载顺序;
4、Jenkins集成,执行测试;
Jenkins调用ant插件,通过build.xml文件调用Jmeter工具,然后Jenkins调用执行脚本,启用Jmeter执行测试,最后通过publish html pulg插件生成测试报告;
二、平台部署
平台部署在Linux环境:CentOs
1、JDK部署
1.1、下载适合Linux版本(32Bit/64Bit)tar包或RPM包,将包解压到/usr/local/,并将解压文件夹修改为java
1.2、配置JDK环境
在 /etc/profile 文件尾增加(先检查不存在再增加):
JAVA_HOME=/usr/local/java
JRE_HOME=/usr/local/java/jre
PATH=$PATH:$JAVA_HOME/lib:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar;$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH CLASSPATH JAVA_HOME JRE_HOME
2、Ant部署
2.1、下载Ant包,解压到/usr/local/下;
2.2、将解压的文件夹名称修改为Ant
2.3、配置Ant环境
在 /etc/profile 文件尾增加(先检查不存在再增加):
ANT_HOME
PATH=$ANT_HOME/bin;$PATH
Export PATH
3、Tomcat部署
3.1、下载Tomcat最新版本;
3.2、解压到/usr/local/,并将解压的文件夹名称修改为tomcat;
3.3、配置tomcat环境
在 /etc/profile 文件尾增加(先检查不存在再增加):
CATALINA_HOME=/usr/local/tomcat
PATH=$CATALINA_HOME/bin;$PATH
Export PATH
4、Svn部署
4.1、使用yum installl subversion安装最新版本的Svn Server端
4.2、输入rpm -ql subversion查看安装位置
4.3、创建svn版本库目录:mkdir -p /var/svn/svnrepos (svnrepos可以自己定义)
4.4、创建版本库
svnadmin create /var/svn/svnrepos
4.5、
进入conf目录(该svn版本库配置文件)
authz文件是权限控制文件
passwd是帐号密码文件
svnserve.conf SVN服务配置文件
4.6、设置帐号密码
vi passwd
在[users]块中添加用户和密码,格式:帐号=密码,如dan=dan
4.7、设置权限
vi authz
在末尾添加如下代码:
[/]
dan=rw
w=r
意思是版本库的根目录dan对其有读写权限,w只有读权限。
4.8、修改svnserve.conf文件
vi svnserve.conf
打开下面的几个注释:
anon-access = read #匿名用户可读
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /var/svn/svnrepos # 认证空间名,版本库所在目录
4.9、启动svn版本库
svnserve -d -r /var/svn/svnrepos
5、Jenkins部署
5.1、下载jenkins包(1.6 或2.1)
5.2、将jenkins.war包拷贝到/usr/local/tomcat/webapps/下
5.3、启动tomcat,在浏览器中输入:http://localhost:8080/jenkins,即可按要求安排,就是要注意管理员的密码是生成CATALINA.out中
三、平台配置实现
1、配置Jmeter;
下载style文件:jmeter.results.shanhe.me.xsl(http://files.cnblogs.com/files/yangxia-test/jmeter.results.shanhe.me.rar)
2、把下载的文件放到jmeter的extras目录下。
3、修改jmeter.properties文件如下部分,这里都修改成true,这样执行完脚本后就会保存这些结果到.jtl文件里面:
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
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
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
2、配置Ant;
2.1、将JMETER_HOME/exters/ant-jmeter.jar拷贝到ANT_HOME/lib中
2.2、生成Build.xml文件;
<?xml version="1.0" encoding="UTF-8"?>
<project name="ant-jmeter-test" default="run" basedir=".">
<!-- 需要改成自己本地的 Jmeter 目录-->
<property name="jmeter.home" value="/Users/Tools/Jmeter" />
<property name="report.title" value="接口测试"/>
<!-- jmeter生成jtl格式的结果报告的路径-->
<property name="jmeter.result.jtl.dir" value="./JmeterResult" />
<!-- jmeter生成html格式的结果报告的路径-->
<property name="jmeter.result.html.dir" value="./JmeterResult" />
<!-- 生成的报告的前缀-->
<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}.html" />
<target name="run">
<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="./JmeterScript" includes="*.jmx" />
<property name="jmeter.save.saveservice.output_format" value="xml"/>
</jmeter>
</target>
<path id="xslt.classpath">
<fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
<fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
</path>
<target name="report">
<tstamp> <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" /></tstamp>
<xslt
classpathref="xslt.classpath"
force="true"
in="${jmeter.result.jtlName}"
out="${jmeter.result.htmlName}"
style="${jmeter.home}/extras/jmeter-results-shanhe-me.xsl">
<param name="dateReport" expression="${report.datestamp}"/>
</xslt>
<!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
<copy todir="${jmeter.result.html.dir}">
<fileset dir="${jmeter.home}/extras">
<include name="collapse.png" />
<include name="expand.png" />
</fileset>
</copy>
</target>
</project>
3、配置Jenkins:
jenkins的默认工作文件夹为:/root/.jenkins/workspace/zf_Jmeter 其中/root/.jenkins/workspace为固定文件夹, zf_ Jmeter 为项目名称,
SVN中的文件就会直接下载到这个文件夹下;
配置Jenkins中的SVN
配置Ant 构建 步骤:
Ant -f ./build.xml
配置publish html pulg
Jenkins-->系统管理---> Jenkins Script Console
运行:System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
就可以看到HTML的正常格式的文件了
4、配置Svn
在根文件夹下面配置build.xml 文件,再增加三个文件夹:scrpit(脚本) result-jtl(结果) result-html(结果)
四、平台优劣
1、管理简单,每次更新build.xml文件,组织测试脚本范围;
2、Jmeter脚本添加完成后,直接通过SVN上传到服务器即可,同时上传配对的build.xml文件;
3、可以显示每一个接口的所有请求,不管是否正确。
劣势:
1、无法控制脚本顺序;
2、无法控制脚本场景及脚本复用;
以上是关于Jmeter+svn+ant+Jenkins的主要内容,如果未能解决你的问题,请参考以下文章
jmeter + tomcat + ant + svn +jenkins 实现持续集成测试