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 实现持续集成测试

JMeter + Ant + Jenkins +SVN 接口自动化环境搭建

接口测试自动化:基于Ant+Jmeter+Jenkins

jmeter+jenkins+git+ant

接口测试持续集成

性能测试四十八:Jenkins+Ant+Jmeter系统部署