解锁 Jenkins+Ant+Jmeter 自动化框架搭建新思路

一、框架概述与优势

(一)简述

Jenkins 是一款广泛应用的开源持续集成与持续交付(CI/CD)工具,具备强大的任务调度和自动化执行能力,能方便地与各种测试和构建工具集成,实现自动化流程的编排与管理。Ant 作为一款基于 Java 的构建工具,通过简洁的 XML 文件即可定义灵活多样的构建任务,尤其擅长自动处理诸如编译、测试、打包等重复繁琐的操作,大大提高了开发效率。Jmeter 则是一款功能强大的性能测试工具,能够对各类应用程序进行全面的性能测试,包括但不限于 Web 应用、数据库、FTP 等,可模拟高并发场景下的用户请求,精准地分析系统的性能瓶颈和稳定性

当这三者有机结合构建自动化框架时,在性能测试和接口测试等领域展现出显著优势。一方面,能够实现测试流程的高度自动化,从测试计划的构建、脚本的执行到结果的收集与分析,全程无需人工过多干预,极大地节省了人力成本和时间成本;另一方面,借助 Jenkins 的强大调度和监控功能,可以方便地定期执行测试任务,及时发现系统性能的变化和潜在问题,为系统的持续优化提供有力的数据支持,确保软件系统在上线后能够稳定、高效地运行,满足用户日益增长的需求。

二、准备工作

(一)环境要求

搭建 Jenkins+Ant+Jmeter 自动化框架需要满足一定的基础环境条件。首先,确保操作系统的兼容性,常见的 Windows、Linux 等操作系统均可支持,但需根据实际情况选择合适的版本和发行版。对于 JDK(Java Development Kit),建议安装 JDK 8 及以上版本,以保证 Jenkins、Ant 和 Jmeter 能够正常运行,在安装过程中注意配置好 JAVA_HOME 环境变量,确保系统能够正确识别 Java 安装路径,例如在 Windows 系统中,通过"控制面板"->"系统"->"高级系统设置"->"环境变量"进行添加和编辑,在 Linux 系统中,编辑 ~/.bashrc 或 /etc/profile 文件进行相应的配置。

(二)工具安装

Jmeter 安装与配置

Jmeter 的安装相对简单,可从官方网站(https://jmeter.apache.org/)下载最新版本的二进制压缩包,下载完成后解压到指定目录,例如在 Windows 系统中解压到"C:\Program Files\ApacheJMeter"目录,在 Linux 系统中解压到"/usr/local/apache-jmeter"目录。解压后,进入解压目录,找到 bin 目录下的 jmeter.bat(Windows)或 jmeter.sh(Linux)文件,双击(Windows)或在终端中执行(Linux)该文件,即可启动 Jmeter。为了方便在任何目录下都能启动 Jmeter,需要配置环境变量。在 Windows 系统中,新建系统变量 JMETER_HOME,值为 Jmeter 的安装目录,如"C:\Program Files\ApacheJMeter",然后在 Path 变量中添加"%JMETER_HOME%\bin";在 Linux 系统中,编辑 ~/.bashrc 文件,添加"export JMETER_HOME=/usr/local/apache-jmeter"和"export PATH= P A T H : PATH: PATH:JMETER_HOME/bin",保存后执行"source ~/.bashrc"使配置生效。

Ant 安装与配置

Ant 同样可从官方网站(https://ant.apache.org/)下载,选择合适的二进制压缩包进行下载,下载后解压到指定目录,如在 Windows 系统中解压到"C:\Program Files\apache-ant"目录,在 Linux 系统中解压到"/usr/local/apache-ant"目录。安装完成后,配置环境变量。在 Windows 系统中,新建 ANT_HOME 变量,值为 Ant 的安装目录,如"C:\Program Files\apache-ant",并在 CLASSPATH 变量中添加".;%ANT_HOME%\lib"(注意开头的点号表示当前目录),在 Path 变量中添加"%ANT_HOME%\bin";在 Linux 系统中,编辑 ~/.bashrc 文件,添加"export ANT_HOME=/usr/local/apache-ant"和"export PATH= P A T H : PATH: PATH:ANT_HOME/bin",执行"source ~/.bashrc"使配置生效。

Jenkins 安装与配置

Jenkins 的安装方式有多种,较为常见的是通过下载 war 包部署到 Tomcat 服务器上。首先,确保已经安装并配置好 Tomcat 服务器,然后从 Jenkins 官方网站(https://jenkins.io/)下载 jenkins.war 包,将其复制到 Tomcat 的 webapps 目录下,例如在 Windows 系统中,将 jenkins.war 复制到"C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps"目录,在 Linux 系统中,复制到"/usr/local/tomcat/webapps"目录。启动 Tomcat 服务器,Tomcat 会自动解压 war 包并部署 Jenkins 应用,访问"http://localhost:8080/jenkins"(默认端口为 8080,如果已修改则使用修改后的端口)即可进入 Jenkins 的安装界面,按照安装向导的提示完成初始配置,如设置管理员密码、安装推荐插件等,即可正常使用 Jenkins。

三、JMeter+Ant 集成

(一)Apache Ant 引入与特点

Apache Ant 作为一款基于 Java 的构建工具,以其简洁高效的特点在自动化测试领域发挥着重要作用。它采用 XML 文件(通常为 build.xml)来定义整个构建过程,通过编写目标(target)和任务(task),可以轻松实现对各种复杂操作的自动化执行。其优势在于具有良好的跨平台性,能够在不同的操作系统上稳定运行,而且对于重复性的构建任务,如编译代码、运行测试用例、生成测试报告、打包发布等,Ant 可以自动完成,大大减少了人工操作的繁琐程度和出错概率,提高了开发和测试的效率和质量。

(二)构建测试计划

步骤一:构建 Jmeter 测试计划

首先,在 Jmeter 的安装目录下找到 extras 目录,将其中的 ant-jmeter-xxx.jar 文件(xxx 为版本号)复制到 Ant 的 lib 目录下,例如在 Windows 系统中,将该文件复制到"C:\Program Files\apache-ant\lib"目录,在 Linux 系统中,复制到"/usr/local/apache-ant/lib"目录。这一步骤的目的是使 Ant 能够识别并调用 Jmeter 的相关功能,实现二者的集成。

步骤二:修改 Jmeter 配置文件

为了满足自动化测试的需求,通常需要对 Jmeter 的配置文件进行适当修改。找到 Jmeter 安装目录下的 bin 目录,其中的 jmeter.properties 文件是主要的配置文件。例如,若希望将 Jmeter 的执行结果文件从默认的.jtl 格式转换为.csv 格式,以便于后续的数据处理和分析,可以在该文件中找到"jmeter.save.saveservice.output_format=xml"这一行,将其修改为"jmeter.save.saveservice.output_format=csv"。修改完成后保存文件,确保 Jmeter 在执行测试计划时能够按照新的配置生成测试结果文件。

步骤三:修改 Ant 中的配置文件 build.xml

Ant 使用 build.xml 文件来定义构建过程,在与 Jmeter 集成时,需要对该文件进行针对性修改。首先,创建一个新的 build.xml 文件(如果没有的话),或者在已有的 build.xml 文件基础上进行修改。以下是一个简单的 build.xml 文件示例:

xml 复制代码
<!-- 公众号:测试工程师成长之路 -->
<?xml version="1.0" encoding="UTF-8"?>
<project name="JmeterTest" default="run" basedir=".">
    <property name="jmeter.home" value="C:\Program Files\ApacheJMeter"/> <!-- 修改为 Jmeter 实际安装目录 -->
    <property name="testplan.dir" value="C:\testplans"/> <!-- 修改为测试计划所在目录 -->
    <property name="result.dir" value="C:\results"/> <!-- 修改为测试结果存放目录 -->
    <path id="jmeter.classpath">
        <fileset dir="${jmeter.home}\lib">
            <include name="*.jar"/>
        </fileset>
    </path>
    <target name="init">
        <mkdir dir="${result.dir}"/>
    </target>
    <target name="run" depends="init">
        <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask">
            <classpath refid="jmeter.classpath"/>
        </taskdef>
        <jmeter jmeterhome="${jmeter.home}" resultlog="${result.dir}\testresult.jtl">
            <testplans dir="${testplan.dir}">
                <include name="*.jmx"/>
            </testplans>
        </jmeter>
    </target>
</project>

在上述示例中,首先定义了几个属性,包括 Jmeter 的安装目录(jmeter.home)、测试计划所在目录(testplan.dir)和测试结果存放目录(result.dir),确保这些路径与实际情况相符。然后,通过"taskdef"任务定义了"jmeter"任务,使其能够调用 Jmeter 的相关功能。最后,在"run"目标中,使用"jmeter"任务执行指定目录下的所有.jmx 测试计划,并将测试结果输出到指定的结果文件中。根据实际需求,可以对该文件进行进一步的扩展和优化,如添加更多的构建目标、配置测试参数等。

(三)批量执行 Jmeter 脚本

在完成上述配置后,进入存放.jmx 测试脚本的目录,在命令行中执行"ant"命令(确保已经正确配置了 Ant 的环境变量),Ant 会根据 build.xml 文件中的配置,自动查找并执行所有的 Jmeter 测试脚本。执行完成后,可以在指定的测试结果目录下找到生成的测试结果文件,如.jtl 或.csv 文件,使用相应的工具(如 Excel、Jmeter 的图形化结果分析器等)对测试结果进行查看和分析,获取测试过程中的各项性能指标,如响应时间、吞吐量、错误率等,以便对被测试系统的性能进行评估和优化。

四、Jenkins+Ant 协同

(一)Jenkins 插件下载与配置

为了实现 Jenkins 与 Ant 的协同工作,需要在 Jenkins 中安装一些必要的插件。登录 Jenkins 管理界面,点击"系统管理"->"插件管理",在"可选插件"选项卡中搜索并安装以下插件:

  • Performance plugin:用于对性能测试结果进行可视化展示和分析,能够生成直观的性能报告,包括响应时间趋势图、吞吐量图表等,方便测试人员快速了解系统的性能状况。
  • HTML Publisher plugin:用于发布 HTML 格式的测试报告,将 Ant 生成的测试报告(如果是 HTML 格式)发布到 Jenkins 的项目页面上,使团队成员能够方便地查看测试结果。
  • Ant Plugin:使 Jenkins 能够识别并执行 Ant 构建脚本,实现对 Ant 构建过程的集成和自动化控制。

安装完成后,在 Jenkins 的系统配置中找到"Ant"部分,填写 Ant 的安装目录,确保 Jenkins 能够找到并调用 Ant 工具。同时,在"构建环境"中,勾选"Add timestamps to the Console Output"选项,这样在构建过程中会输出带有时间戳的日志信息,方便排查问题。

(二)修改 build.xml 文件

为了使 Jenkins 能够正确获取和展示 Ant 执行 Jmeter 测试后的结果,需要对 build.xml 文件进行进一步修改。主要是将生成 jtl 和 html 文件的目录修改为 Jenkins 的工作目录下,例如:

xml 复制代码
<!-- 公众号:测试工程师成长之路 -->
<?xml version="1.0" encoding="UTF-8"?>
<project name="JmeterTest" default="run" basedir=".">
    <property name="jmeter.home" value="C:\Program Files\ApacheJMeter"/>
    <property name="testplan.dir" value="C:\testplans"/>
    <property name="jenkins.workspace" value="C:\Program Files\Jenkins\workspace\MyJmeterProject"/> <!-- 修改为 Jenkins 项目的工作目录 -->
    <property name="result.dir" value="${jenkins.workspace}\results"/>
    <path id="jmeter.classpath">
        <fileset dir="${jmeter.home}\lib">
            <include name="*.jar"/>
        </fileset>
    </path>
    <target name="init">
        <mkdir dir="${result.dir}"/>
    </target>
    <target name="run" depends="init">
        <taskdef name="jmeter" classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask">
            <classpath refid="jmeter.classpath"/>
        </taskdef>
        <jmeter jmeterhome="${jmeter.home}" resultlog="${result.dir}\testresult.jtl">
            <testplans dir="${testplan.dir}">
                <include name="*.jmx"/>
            </testplans>
        </jmeter>
    </target>
</project>

在上述修改中,新增了一个"jenkins.workspace"属性,用于指定 Jenkins 项目的工作目录,并将测试结果目录"result.dir"设置为该工作目录下的"results"子目录。这样,Ant 生成的测试结果文件将会保存在 Jenkins 能够识别的工作目录下,便于 Jenkins 进行后续的处理和展示。

(三)项目构建与结果查看

在 Jenkins 中创建一个新的自由风格项目,在项目配置页面的"源码管理"部分,选择相应的代码仓库(如果测试计划脚本是从代码仓库中获取),并配置好代码拉取的路径和认证信息(如果需要)。在"构建触发器"部分,可以根据实际需求设置定时构建(如每天定时执行测试)或代码提交触发构建(当代码仓库有新的提交时自动触发测试)等触发条件。在"构建"部分,选择"Invoke Ant"构建步骤,在"Targets"字段中填写"run"(假设 build.xml 文件中的默认目标为"run"),表示执行 Ant 构建脚本中的"run"目标,即执行 Jmeter 测试计划。

配置完成后,点击"保存"按钮,然后在 Jenkins 项目页面上点击"立即构建"按钮,Jenkins 会自动拉取代码(如果配置了源码管理),执行 Ant 构建脚本,进而调用 Jmeter 执行测试计划。构建完成后,可以在 Jenkins 的项目页面上查看构建的控制台输出,了解测试执行的详细过程和日志信息。同时,通过安装的插件(如 Performance plugin 和 HTML Publisher plugin),可以在"构建后操作"部分查看生成的性能测试报告和 HTML 格式的测试报告,直观地了解系统的性能指标和测试结果,对测试情况进行全面的评估和分析,为系统的优化和改进提供有力的依据。

五、常见问题与解决方法

(一)问题汇总

在搭建 Jenkins+Ant+Jmeter 自动化框架的过程中,可能会遇到各种各样的问题,以下是一些常见的问题:

  • 端口冲突问题:当启动 Jenkins 或其他相关服务时,可能会出现端口被占用的情况,导致服务无法正常启动。例如,Jenkins 默认使用 8080 端口,如果该端口已经被其他程序占用,Jenkins 将无法启动,报错信息可能显示"Address already in use: bind"。
  • 环境变量配置错误问题:在配置 JDK、Ant、Jmeter 等工具的环境变量时,如果出现错误,可能会导致这些工具无法正常运行。例如,在配置 JAVA_HOME 变量时,如果路径填写错误,执行 Java 相关命令时会提示"找不到 Java 命令"或"Java 运行时环境未找到"等错误信息。
  • 插件安装失败问题:在 Jenkins 中安装插件时,可能会由于网络连接不稳定、插件版本不兼容等原因导致安装失败。例如,安装某些插件时,可能会一直卡在"正在下载"状态,最终报错"Plugin installation failed"。
  • 配置文件路径错误问题:在修改 Jmeter、Ant 等工具的配置文件时,如果路径填写错误,可能会导致工具无法找到相应的资源或执行错误的操作。例如,在 build.xml 文件中,如果测试计划目录或测试结果目录的路径填写错误,Ant 在执行时会提示"找不到测试计划文件"或"无法创建测试结果目录"等错误信息。
  • Ant 与 Jmeter 集成问题:在将 Ant 与 Jmeter 集成的过程中,可能会出现 Ant 无法正确调用 Jmeter 的情况,例如由于 ant-jmeter-xxx.jar 文件未正确复制到 Ant 的 lib 目录下,或者在 build.xml 文件中对 Jmeter 任务的定义和配置不正确,导致执行 Ant 构建脚本时出现"找不到 Jmeter 任务"或"Jmeter 执行失败"等错误信息。

(二)对应解决策略

针对上述常见问题,可以采取以下解决方法:

  • 端口冲突问题解决方法:使用命令行工具(如 Windows 下的 netstat -ano 命令或 Linux 下的 netstat -tlnp 命令)查看占用指定端口的进程 ID,然后通过任务管理器(Windows)或 kill 命令(Linux)结束该进程,释放被占用的端口。或者在 Jenkins 配置文件(如 Jenkins.xml 文件)中修改其默认使用的端口号,将其改为未被占用的其他端口,然后重新启动 Jenkins 服务。
  • 环境变量配置错误问题解决方法:仔细检查环境变量的配置路径,确保其指向正确的安装目录。可以在命令行中执行相应的命令(如 java -version、ant -version、jmeter -v 等)来验证环境变量是否配置正确,如果仍然出现错误,重新编辑环境变量并确保其正确性,然后重新打开命令行窗口或重启计算机使配置生效。
  • 插件安装失败问题解决方法 :首先检查网络连接是否正常,可以尝试访问其他网站或使用 ping 命令测试网络连通性。如果网络正常,可以尝试更换 Jenkins 的插件下载源,在"插件管理"->"高级"选项卡中,将"升级站点"的 URL 改为国内的镜像源。
相关推荐
运维小文4 小时前
ansible剧本快速上手
linux·运维·python·自动化·ansible·幂等性·剧本
记得多喝水o4 小时前
Ansible自动化运维 技术与最佳实践
运维·自动化·ansible
Karoku0664 小时前
【自动化部署】Ansible Playbook 基础应用
运维·网络·docker·容器·自动化·ansible·consul
紫菜(Nori)4 小时前
Jenkins 中 写 shell 命令执行失败,检测失败问题
jenkins
jwensh4 小时前
【Jenkins】pipeline 的基础语法以及快速构建一个 jenkinsfile
pipeline·jenkins
野蛮的大西瓜6 小时前
自动呼入机器人如何实现自动化学习?
java·人工智能·自然语言处理·机器人·自动化·信息与通信
小张帅三代7 小时前
jmeter 接口性能测试 学习笔记
笔记·学习·jmeter
从零开始的-CodeNinja之路7 小时前
【自动化】深度解析仓库存储UI自动化
ui·自动化·log4j
rpa_top7 小时前
电商新品发布自动化:RPA 确保信息一致性与及时性【rap.top】
人工智能·自动化·rpa