zoukankan      html  css  js  c++  java
  • [jmeter]linux下自动测试环境+持续集成ant+jmeter+Apache(httpd)环境搭建与使用

    前言:考虑搭建一个接口性能自动化测试平台,时间又比较紧急,所以就现想到了用jenkins+ant+jmeter完成,考虑到在linux环境中本身就可以设置定时任务,暂时该自动化用例还不与项目集成关联,所以先完成ant+jmeter+Apache(httpd)的搭建,这里Apache是为了方便报告读取。

     一、环境准备

    • Apache服务安装:

        linux环境中,最好用的安装软件命令,当然是yum莫属(如果其他环境,例如ubuntu请自行用wget)

        1、查看httpd包是否可用:# yum list | grep httpd

        2、安装Apache:# yum install httpd

          3、配置ServerName:# vi /etc/httpd/conf/httpd.conf
          a:里面需要注意的是“DocumentRoot”是Apache默认将网站的根目录,也就是读取报告的路径,后面会用到,需要注意;
          b:“Listen” 后面跟的是端口,如果端口冲突需要修改,并且在访问时带上用该出配置的端口;   
             c:“ServerAdmin root@localhost”这里是访问的域名,如果有自己域名可以修改localhost,我这里选择了默认,即IP访问。 
        4 启动:#service httpd start
        5 停止:#service httpd stop
        6 查看状态:# service httpd status
        7 设置开机自动启动:chkconfig httpd on
        8 安装目录介绍
          默认的主配置文件是/etc/httpd/conf/httpd.conf
          配置存储在的/etc/httpd/conf.d/目录
    • ant安装:

        下载路径:http://ant.apache.org/bindownload.cgi,界面“Current Release of Ant”目录下找到最新版本即可,这里我用的是apache-ant-1.10.1-bin.zip,下载下来后养成好习惯,MD5校验一下,防止安装包损坏。

        安装步骤:

          1、上传安装包到linux服务器,并解压安装包,用uzip命令即可;

          2、到文件夹目录,将解压后的文件夹挪到opt目录下(根据自己的需求):mv  apache-ant-1.10.1 ./opt/

          3、配置环境变量:sudo vim /etc/profile,并增加如下设置

            export ANT_HOME="/opt/apache-ant-1.10.1"    -------这个路径是你安装包路径,请根据实际情况修改

            export PATH="${ANT_HOME}/bin":$PATH   

          4、使配置生效:source /etc/profile

          5、安装完成验证:#ant -version

            

            如果显示命令不存在,请查看环境变量是否正确即可。

    • jmeter安装:

        下载路径:http://jmeter.apache.org/download_jmeter.cgi,界面“Binaries”目录下找到最新版本即可,这里我用的是apache-jmeter-3.2.tgz,下载下来后养成好习惯,MD5校验一下,防止安装包损坏。

        安装步骤:

          1、上传安装包到linux服务器,并解压安装包,用tar -xzvf 命令即可;

          2、到文件夹目录,将解压后的文件夹挪到opt目录下(根据自己的需求):mv  apache-jmeter-3.2 ./opt/

          3、配置环境变量:sudo vim /etc/profile,并增加如下设置

            export JMETER="/opt/apache-jmeter-3.2"     -------这个路径是你安装包路径,请根据实际情况修改

            export CLASSPATH=${JMETER}/lib/ext/ApacheJMeter_core.jar:${JMETER}/lib/jorphan.jar:$JMETER/lib/logkit-2.0.jar:${CLASSPATH}
            export PATH=${JMETER}/bin/:${PATH}

          4、使配置生效:source /etc/profile

          5、安装完成验证:#jmeter -v      

            

            如果显示命令不存在,请查看环境变量是否正确即可。

    二、报告配置

      1、jmeter报告的界面配置文件:/opt/apache-jmeter-3.2/extras/目录下jmeter-results-detail-report_21.xsl和jmeter-results-report_21.xsl

      2、报告路径展示等配置文件,可以自行配置,我配置在了testplan里面/opt/apache-jmeter-3.2/testplan/build.xml

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 
     3 <project name="ant-jmeter-test" default="run" basedir=".">
     4     <tstamp>
     5             <format property="time" pattern="yyyyMMddhhmm" />
     6                 </tstamp>
     7     <!-- 需要改成自己本地的jmeter目录-->
     8     <property name="jmeter.home" value="/opt/apache-jmeter-3.2/"/>
     9     <!-- jmeter生成的jtl格式的结果报告的路径-->
    10     <property name="jmeter.result.jtl.dir" value="/opt/apache-jmeter-3.2/testplan/report/jti" />
    11     <!-- jmeter生成的html格式的结果报告的路径-->
    12     <property name="jmeter.result.html.dir" value="/var/www/html/report/" />
    13     <!-- ʺ生成的报告的前缀-->
    14     <property name="ReportName" value="TestReport" />
    15         <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
    16             <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />
    17 
    18     <target name="run">
    19             <antcall target="test" />
    20                     <antcall target="report" />
    21                         </target>
    22 
    23     <target name="test">
    24             <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask" />
    25                     <jmeter jmeterhome="${jmeter.home}" resultlog="${jmeter.result.jtlName}">
    26             <!-- 声明要运行的脚本“*.jmx”指包含此目录下的所有jmeter脚本-->
    27             <testplans dir="/opt/apache-jmeter-3.2/testplan/" includes="*.jmx" />
    28 
    29            <property name="jmeter.save.saveservice.output_format" value="xml"/>
    30 
    31         </jmeter>
    32             </target>
    33                 <path id="xslt.classpath">
    34                             <fileset dir="${jmeter.home}/lib" includes="xalan*.jar"/>
    35                                         <fileset dir="${jmeter.home}/lib" includes="serializer*.jar"/>
    36                                             </path>
    37 
    38     <target name="report">
    39             <tstamp>
    40                    <format property="report.datestamp" pattern="yyyy/MM/dd HH:mm" />
    41             </tstamp>
    42             <xslt 
    43                     classpathref="xslt.classpath"
    44                     force="true"
    45                     in="${jmeter.result.jtlName}"
    46                     out="${jmeter.result.htmlName}"
    47                     style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl">
    48                     <param name="dateReport" expression="${report.datestamp}"/>
    49              </xslt>
    50                       <!-- 拷贝报告所需的图片资源至目标目录 -->
    51                 <copy todir="${jmeter.result.html.dir}">
    52                         <fileset dir="${jmeter.home}/extras">
    53                                 <include name="collapse.png" />
    54                                 <include name="expand.png" />
    55                         </fileset>
    56                 </copy>
    57         </target>
    58  </project>

    三、简单验证

    1、执行测试计划:

        进入testplan目录,将测试计划传入,执行ant命令即可(标红的是报告名称)

        

    2、查看报告:http://[服务器IP]:[端口]/report/[报告名称].html

    page下面那个后面+ 点开是每个请求详情。具体报告还需要优化,待续

     四、问题处理

    1、执行ant命令之后,报错taskdef class org.programmerplanet.ant.taskdefs.jmeter.JMeterTask cannot be found

    解决方案:将JMeter所在目录下的extras子目录里面的ant-JMeter-1.1.1.jar复制到Ant所在目录lib子目录下,再次执行,成功!

     

  • 相关阅读:
    sqlserver tips
    mysql tips
    小知识点集锦
    设计模式
    将微博或者qq空间的说说同步至博客园 wcf+js(ajax)跨域请求(1)
    WCF服务寄宿IIS与Windows服务
    C# 基础小知识之yield 关键字
    WPF命令绑定 自定义命令
    KnockOut 绑定之foreach绑定(mvc+knockout)
    P5019 铺设道路
  • 原文地址:https://www.cnblogs.com/amberly/p/7284482.html
Copyright © 2011-2022 走看看