ant jmeter jenkins 实现自动化测试

编者按:

  1. 本文核心的关键是ant去调用build.xml 执行自动化测试任务。
  2. bulid.xml 文件的内容按照注释修改为你自己服务器相关信息。
  3. 配置完成后一定要手动在服务器上执行一次,确保你配置的没有问题,在去配置jenkins服务。
  4. 我曾经就因为没有手动执行一下,导致卡了很长时间。

ant 安装及配置

ant有两个分支版本:1.9x支持的是java5,1.10.x支持的是java8的版本。
这里我们选择apache-ant-1.10.1-bin.tar.gz的版本。

cd /usr/local/src
wget http://mirrors.tuna.tsinghua.edu.cn/apache//ant/binaries/apache-ant-1.10.1-bin.tar.gz
tar -zxf apache-ant-1.10.1-bin.tar.gz
mv apache-ant-1.10.1 /data/app/
ln -s /data/app/apache-ant-1.10.1 /data/app/ant
### 增加环境变量
cat >>/etc/bashrc<<EOF
export ANT_HOME=/data/app/ant
export PATH=$ANT_HOME/bin/:$PATH
EOF
source /etc/bashrc

检查

ant -v
Apache Ant(TM) version 1.10.1 compiled on February 2 2017
Trying the default build file: build.xml
Buildfile: build.xml does not exist!
Build failed

安装jmeter

cd /usr/local/src
wget http://mirror.bit.edu.cn/apache//jmeter/binaries/apache-jmeter-3.3.tgz
tar -zxf apache-jmeter-3.3.tgz
mv apache-jmeter-3.3 /data/app/
ln -s /data/app/apache-jmeter-3.3 /data/app/jmeter
### 配置环境变量
cat >> /etc/bashrc<<EOF
export JMETER_HOME=/data/app/jmeter
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$JMETER_HOME/lib/logkit-2.0.jar:$CLASSPATH
export PATH=$JMETER_HOME/bin/:$PATH
EOF

开始使用前的优化(必须配置)

  • Ant+Jmeter生成的html报告,Min Time 和 Max Time 出现 NaN。
cp /data/app/jmeter/lib/serializer-2.7.2.jar /data/app/ant/lib/
cp /data/app/jmeter/lib/xalan-2.7.2.jar  /data/app/ant/lib/
  • 运行过程中会报缺少ant-jmater的错,需要提前拷贝包过去。报错如下:
taskdef class org.programmerplanet.ant.taskdefs.jmeter.JMeterTask cannot be found
 using the classloader AntClassLoader[]

解决办法:

cp /data/app/jmeter/extras/ant-jmeter-1.1.1.jar /data/app/ant/lib/
  • jmeter 使用jenkins运行时缺少一个jmeter-log.log的日志文件,日志文件配置在/data/app/jmeter/bin/log4j2.xml

解决办法:

touch /data/app/jmeter/bin/jmeter.log
  • 因为要实现jenkins调用ant来自动化生成测试报告,所以ant目录及jmeter目录需要赋值为jenkins属组。
chown -R jenkins.jenkins /data/app/ant/*
chown -R jenkins.jenkins /data/app/jmeter/*

编写build.xml文件

cd /data/app/jmeter/build/
vim build.xml
<?xml version="1.0" encoding="utf-8"?>
<project name="Ant-Jmeter-Test" default="all" basedir=".">
    <tstamp>
        <format property="time" pattern="yyyyMMddhhmm" />
    </tstamp>
    <!-- 需要改成自己本地的 Jmeter 目录-->
    <property name="jmeter.home" value="/data/app/jmeter" />
    <!-- jmeter生成jtl格式的结果报告的路径-->
    <property name="jmeter.result.jtl.dir" value="/data/app/jmeter/report/jtl" />
    <!-- jmeter生成html格式的结果报告的路径-->
    <property name="jmeter.result.html.dir" value="/data/app/jmeter/report/html" />
    <!-- 生成的报告的前缀 -->
    <property name="ReportName" value="TestReport" />
    <property name="jmeter.result.jtlName" value="${jmeter.result.jtl.dir}/${ReportName}${time}.jtl" />
    <property name="jmeter.result.htmlName" value="${jmeter.result.html.dir}/${ReportName}${time}.html" />
    <!-- 接收测试报告的邮箱 -->
    <property name="mail_to" value="[email protected]" />
    <!-- 电脑地址 -->
    <property name="ComputerName" value="test.niu" />
    <target name="all">
        <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="/data/db/jenkins/workspace/jm" includes="*.jmx" />
        </jmeter>
    </target>
    <target name="report">
        <!-- <xslt in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}" style="${jmeter.home}/extras/jmeter-results-detail-report_21.xsl" /> -->
        <xslt in="${jmeter.result.jtlName}" out="${jmeter.result.htmlName}" style="${jmeter.home}/extras/jmeter.results.shanhe.me.xsl" />
        <!-- 因为上面生成报告的时候,不会将相关的图片也一起拷贝至目标目录,所以,需要手动拷贝 -->
        <copy todir="${jmeter.result.html.dir}">
            <fileset dir="${jmeter.home}/extras">
                <include name="collapse.png" />
                <include name="expand.png" />
            </fileset>
        </copy>
    </target>
    <!-- 发送邮件 -->
</project>
  • 上面的build文件,根据自己服务的安装目录修改相应的配置即可(需要修改的地方)。
  • jmeter-results-detail-report_21.xsl 是默认的报告模板由于信息不全,推荐更换成jmeter.results.shanhe.me.xsl下载地址在文章最后。

jmeter 配置优化

  • jmeter配置文件位置:/data/app/jmeter/bin/jmeter.properties
  • jmeter.save.saveservice.output_format=csv: 将csv更改为xml。

在文件的末尾增加如何优化配置

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
# Report more error info message
jmeter.save.saveservice.assertion_results_failure_message=true
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  

检查配置是否成功

cd /data/app/jmeter/build/
ant
Buildfile: /data/app/apache-jmeter-3.3/build/build.xml

all:

test:
   [jmeter] Executing test plan: /data/db/jenkins/workspace/jm/test.jmx ==> /data/app/jmeter/report/jtl/TestReport201801250234.jtl
   [jmeter] Creating summariser <summary>
   [jmeter] Created the tree successfully using /data/db/jenkins/workspace/jm/test.jmx
   [jmeter] Starting the test @ Thu Jan 25 14:34:18 CST 2018 (1516862058701)
   [jmeter] Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445
   [jmeter] summary =      4 in 00:00:01 =    6.9/s Avg:    96 Min:    28 Max:   239 Err:     0 (0.00%)
   [jmeter] Tidying up ...    @ Thu Jan 25 14:34:20 CST 2018 (1516862060127)
   [jmeter] ... end of run

report:
     [xslt] Processing /data/app/jmeter/report/jtl/TestReport201801250234.jtl to /data/app/jmeter/report/html/TestReport201801250234.html
     [xslt] Loading stylesheet /data/app/jmeter/extras/jmeter.results.shanhe.me.xsl

BUILD SUCCESSFUL
Total time: 4 seconds

配置jenkins

jenkins的安装我就不说了,可以参考以前我写的文章。

第一步:配置ant路径位置
位置:全局配置 --> Global Tool Configuration

创建一个自由风格的软件项目

将jmeter的测试文件放置在git仓库中。

增加一个ant构建项目:

执行构建查看输出结果

参考文档

jmeter.results.shanhe.me.xsl-下载地址
接口自动化-步骤、遇到的问题及解决方法
jmeter学习笔记(一)-jmeter html测试报告

报错汇总

taskdef class org.programmerplanet.ant.taskdefs.jmeter.JMeterTask cannot be found
 using the classloader AntClassLoader[]

解决办法

cp /data/app/jmeter/extras/ant-jmeter-1.1.1.jar /data/app/ant/lib/

原文地址:https://www.cnblogs.com/biglittleant/p/8426785.html

时间: 2024-10-09 11:11:17

ant jmeter jenkins 实现自动化测试的相关文章

ant +jmeter+jenkins接口自动化测试二

[Jmeter篇]Jmeter+Ant+Jenkins接口自动化测试集成之半路逆转(二) 橙子探索测试发表于橙子探索测试订阅 72 [Jmeter篇]jmeter+Ant+Jenkins接口自动化测试集成(一) 一.更改方案 由于上一篇文章[Jmeter篇]jmeter+Ant+Jenkins接口自动化测试集成(一)中build.xml在cmd下执行ant正常且生成jtl文件和html文件,但是在jenkins构建多次一直失败,未能生成jtl文件和html文件,偶尔成功1次,未能找到解决原因,所

ant+jmeter+Jenkins接口自动化测试实战(1)

项目中需要做接口自动化测试,于是就去做实验,做实验要从搭建测试环境开始.在学习的过程中肯定会遇到不同的问题,于是就用了两天的时间做了一个简单的接口自动化环境,中间也遇到一些问题,现在把路上踩到的坑记录下来. 1,ant 环境搭建 下载ant包,配置环境变量. 配置方法见我另外一篇博客.地址如下: http://fangwei009.blog.51cto.com/5234706/1910384 2,jmeter 环境搭建 下载jmeter,搭建方法见另外一个博客,地址如下: http://fang

Ant+jmeter+jenkins 持续集成设置

1.创建任务http://i2.51cto.com/images/blog/201802/24/a5a104abf5fba828adab8bda5194ab38.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=" alt="Ant+jmeter+jenkins 持续集成设

Ant+jmeter+jenkins搭建测试的持续集成

前提: Ant+jmeter 已经搭建完成并成功运行(参看ant+jmeter自动化性能测试) Jenkins在本地已经安装可运行(参看上一篇) 1.下载Jenkins安装 2.浏览器输入地址http://localhost:8080/显示界面,安装成功 3.新建一个任务并配置 构建一个自由风格的软件项目即可. 4.配置参数 旧的构建保存了你在一次构建中的所有临时文件,如果构建没有保留的必要,就勾选丢弃旧的构建,同时设置保持构建天使和保持构建的最大个数两个参数. PS:三个设置必须同时设置,否则

centos7搭建ANT+jmeter+jenkins接口测试自动化环境

一.环境准备 因为用到了jmeter和apache-tomcat,centos7必须要有java环境,所以配置jdk和apache-tomcat什么的,就不多说了,自行操作 帮你们偷懒: ant下载地址:http://mirrors.hust.edu.cn/apache//ant/binaries/apache-ant-1.10.3-bin.tar.gz jmeter下载地址:http://mirror.bit.edu.cn/apache//jmeter/binaries/apache-jmet

ant+jmeter+jenkins 发送测试报告邮件

二.部署配置 2.1 jmeter 2.1.1 jar包二次开发: 将jmeter目录D:\apache-jmeter-5.0\extras中的ant-jmeter-1.1.1.jar包进行反编译.添加2个测试类 MailTask和JavaMail.具体代码参考文件中的java文件.然后进行编译生成新的jar包ant-jmeter-1.1.2-SNAPSHOT.jar. 2.1.2 添加build文件和测试文件 在jmeter目录D:\apache-jmeter-5.0\test下新增文件bui

ant+jmeter+jenkins+git持续集成以及邮件报告展示

前序准备工作: ant--下载地址:http://ant.apache.org/bindownload.cgi jmeter--下载地址:http://jmeter.apache.org/download_jmeter.cgi jenkins--下载地址:https://jenkins.io/ git--下载地址:https://git-scm.com/downloads jdk--http://www.oracle.com/technetwork/java/javase/downloads/i

Mac上部署JDK/Ant/Jmeter/Jenkins

一.安装JDK 1. 下载JDK 2. 下完后直接双击安装,默认安装到/Library/Java/JavaVirtualMachine下 3. 验证是否安装成功 1 java -version 二.安装Jmeter 1. 下载Jmeter,解压至/Library/Jmeter目录下 1 sudo mkdir /Library/Jmeter #创建Jmeter文件夹 2 sudo tar zxvf apache-jmeter-3.0.tgz -C /Library/Jmeter #解压 2. 直接

Ant+Jmeter+Jenkins集成

准备工作 安装配置Java环境 安装Tomcat和Jenkins 安装Ant 配置 1.将Jmeter安装目录apache-jmeter-3.0\extras文件夹中的ant-jmeter-1.1.1.jar复制到Ant安装目录下的lib文件夹下. 2.修改Jmeter配置文件jmeter.properties 修改jtl文件格式   添加jtl文件结果参数   3.编写ant的build.xml 1 <?xml version="1.0" encoding="UTF-