jmeter+ant+git+jenkins_jenkins+jmeter+ant,2024年最新5年经验软件测试程序员面试27天

本文介绍了如何在JenkinsDocker容器中配置JMeter和Ant环境,提供了一份详细的教程,包括安装、环境变量设置、构建脚本、报告模板定制以及如何利用Jenkins进行自动化测试任务的配置。作者强调了系统化学习的重要性,推荐了一套针对软件测试的全套学习资料,旨在帮助程序员高效提升技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
img

正文

  • 将jmeter和ant移动docker的jenkins容器挂载目录中

  • 启动Jenkins容器并进入容器内

  • 配置环境变量

vim /etc/profile

添加下面的内容

ANT_HOME=/var/jenkins_home/apache-ant-1.10.14
export PATH=PATH:PATH:PATH:ANT_HOME/bin
export PATH=PATH:PATH:PATH:ANT_HOME/lib
export JMETER_HOME=/var/jenkins_home/apache-jmeter-5.6.3
export PATH=JMETERHOME/bin:JMETER_HOME/bin:JMETERHOME/bin:PATH:$HOME/bin

刷新环境变量

source /etc/profile

验证ant环境

ant -version

验证jmeter环境

jmeter -v

  • 将apache-jmeter-5.6.3\extras目录下的:ant-jmeter-1.1.1.jar 复制到apache-ant-1.10.14\lib\

  • jenkins当前构建任务的工作目录创建html、htl文件夹

  • jenkins当前构建任务的工作目录新增build.xml,并进行配置
<?xml version="1.0" encoding="UTF-8"?>

  • 修改生成的报告,并进行配置

1、在/apache-jmeter-5.6.3/extras中新增jmeter-results-shanhe-me.xsl文件

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet xmlns:xsl=“http://www.w3.org/1999/XSL/Transform” version=“1.0”>
<xsl:output method=“html” indent=“no” encoding=“UTF-8” doctype-public=“-//W3C//DTD HTML 4.01 Transitional//EN” doctype-system=“http://www.w3.org/TR/html4/loose.dtd”/>
<xsl:strip-space elements=“*”/>
<xsl:template match=“/testResults”>

JMeter Test Results
  • { margin: 0; padding: 0 }
    html, body { width: 100%; height: 100%; background: #b4b4b4; font-size: 12px }
    table { border: none; border-collapse: collapse; table-layout: fixed }
    td { vertical-align: baseline; font-size: 12px }
    #left-panel { position: absolute; left: 0; top: 0; bottom: 0; width: 300px; overflow: auto; background: #dee4ea }
    #left-panel li.navigation { font-weight: bold; cursor: default; color: #9da8b2; line-height: 18px; background-position: 12px 5px; background-repeat: no-repeat; padding: 0 0 0 25px; background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAICAYAAAArzdW1AAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sDEBQqGbO7BEcAAAAdaVRYdENvbW1lbnQAAAAAAENyZWF0ZWQgd2l0aCBHSU1QZC5lBwAAAKRJREFUGNN1zM0KgkAYheF3RvtXSsGyWhRNaILS7bdt11W0KgJvoPwZp0UlBPUtz3nOJw7Hk7necv5dOA2Qaazo2vZP0LEt9olCVtqQROufKNmuqBuBNAYW4QzXGX6B0bDPcjGnMQYJ8Cg12U59oSzaUJQa4IUAXMclDHwAAn/MxPMw765FZd2QRgopBWmsKCrdfhXnS/4ZYElBXdyxewN008Y8AephLAkqz613AAAAAElFTkSuQmCC) }
    #left-panel li.success { color: #565b60 }
    #left-panel li.failure { color: red }
    #left-panel li { list-style: none; color: black; cursor: pointer }
    #left-panel li.selected { background-repeat: repeat-x; color: white; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAUCAYAAABMDlehAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sDEBQxLTs5O2gAAAAdaVRYdENvbW1lbnQAAAAAAENyZWF0ZWQgd2l0aCBHSU1QZC5lBwAAAEdJREFUCNc1y7ERgEAMA0GNUhIyGqM2uqKgtyWZhE9v53A/7/A6D7BkMDNgy2AroB2wHTCZv5UMOgFLG1bvd7XBckBlwCXjA5wMOF5iOX/MAAAAAElFTkSuQmCC) }
    #left-panel div { line-height: 20px; background-position: 25px 3px; background-repeat: no-repeat; padding: 0 0 0 45px }
    #left-panel div.success { background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAOCAYAAADwikbvAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sDEBULEEc6wzcAAAAdaVRYdENvbW1lbnQAAAAAAENyZWF0ZWQgd2l0aCBHSU1QZC5lBwAAAiNJREFUKM99kktIVGEYhp/jzJl08lI6logp2Y2EFkbtaqlFROsWrlq4ioJWQRs37VoUVItWkYEVRGSBlhleCpywDEWxTEuxcURTZ6YzxzP/5WshCOHUt36f93kXnyMi5Lsnb4clI4s4fhkXzp5w8mWcfHBvfEpUxVdCUUU6lUPNHuD86cYtBQX5GhPrM7hRg7GaSDRg2vuUd90WuOPVsOyqy6FFo2yOQHlU1S9z9dZT+S/8I7GCLlkAN4eyAf56mnT6Fy1HLnGuuYa++MS/4e74qMRqfXLaJ9BpfnsrLC0m2BYuoqwUbj/+274JD43OEqmexwvW8NUKXnaZtVSS1pNtAAyOvyC6v48HnUNb4Z7PH8UtTlIQWA5tb2RhYY7kz3l2FleytJYg/qWb8t2KZ/0PN+1hgI6uEUr2jpHKpGlquExVaS0VbjUZL7WxaqIXK6ADQ0n9GNfv9XCttWnD/O57t0TKFklnF3g5fJ/seoaa2D4O1x0F4PlgO9oIftbgFgYMfLgjACGqj0vlsddoUnj+Kt/mxunq72RP+UGqYjWMTA7R+b6dUCSEGEF5hoJQip6BaFs4HJtCyRrKs6wHCovDip/kys0WWpovMpOYBCtoT2N9B5uzWG0Zid8gnFrVFEQDtBaUrxEgXBimaEeER2/uIiK4roPOaMRYjBKsFly3fOO3G06dETGCWIsYjckprMphtEKMAQtgsMYi1mJMQHJ6xvkDKQoyphCzkl0AAAAASUVORK5CYII=) }
    #left-panel div.failure { background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAOCAYAAADwikbvAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sDEBUJOEC5CU8AAAAdaVRYdENvbW1lbnQAAAAAAENyZWF0ZWQgd2l0aCBHSU1QZC5lBwAAAeVJREFUKM+NkDtok2EUhp8vl9ZLo/EyKI6KFgqCKC4OClrBWUQEcRRx1cGpk3WyInWrgoMZKkW8thYaEYQ0i7WC2ngrNDTERHJvkv/L/3//dxwc7F8jeOAsh/c973OOEhG61aPnaen7maXYt4MLZ4+pbppQt+F06jNH3QWOb8pxUs+SmJzjv83hxY8SVy3wNdtVneiHqe54IhLoB4/TUkyMyOrKj5yXoVtPZK02kLyYK7OnlqFWzgcCGtUC/YUJ3n5a/jd28tU7ORTN0myUA6Jms8bpWIa798elqzn1fokjThrpVBC3ETzNbYAuca59j/Hp+b/N869Tsk8tgVMCXQk+RlfQuk1/tMLMwzsSMCcm5zjhvoR2AdpF0GuwO4aqttS05ZSbZHhsBoAIwI83Cdkd/460XDAOG02d24MxvlR8dsUUh3f2UHaEtgdbWCHz4oZwcVCp66PP5FLhKjEc8DXaCMsNy8DYn/SnZ+L0hhWOb/F8yLs9fDtwk8j+VpqwrlC34PrgGEu2bhlYhZ1b8dncq3AMeBaUr/k6NUyk4ChKzu+N2hc6Bqody+WDG8g2fLatD7F3axjPgmvAtYJvIbouhhIRrl0ZktnkBGIt1gqeMXQ8D2MMiCIUCqFEsFhEQMSykCuqX0MzLAUJTzRsAAAAAElFTkSuQmCC) }
    #left-panel div.detail { display: none }
    #right-panel { position: absolute; right: 0; top: 0; bottom: 0; left: 301px; overflow: auto; background: white }
    #right-panel .group { font-size: 12px; font-weight: bold; line-height: 16px; padding: 0 0 0 18px; counter-reset: assertion; background-repeat: repeat-x; background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAQCAYAAADXnxW3AAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sDEBUkDq8pxjkAAAAdaVRYdENvbW1lbnQAAAAAAENyZWF0ZWQgd2l0aCBHSU1QZC5lBwAAADdJREFUCNdVxrERwDAMAzGK0v47eS6Z927SpMFBAAbkvSvnRk5+7K5cVfLMyN39bWakJAjA5xw9R94jN3tVhVEAAAAASUVORK5CYII=) }
    #right-panel .zebra { background-repeat: repeat; padding: 0 0 0 18px; background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAmCAYAAAAFvPEHAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sDEBYWFlNztEcAAAAdaVRYdENvbW1lbnQAAAAAAENyZWF0ZWQgd2l0aCBHSU1QZC5lBwAAABdJREFUCNdjYKAtePv5338mBgYGBpoQAGy1BAJlb/y6AAAAAElFTkSuQmCC) }
    #right-panel .data { line-height: 19px; white-space: nowrap }
    #right-panel pre.data { white-space: pre }
    #right-panel tbody.failure { color: red }
    #right-panel td.key { min-width: 108px }
    #right-panel td.delimiter { min-width: 18px }
    #right-panel td.assertion:before { counter-increment: assertion; content: counter(assertion) ". " }
    #right-panel td.assertion { color: black }
    #right-panel .trail { border-top: 1px solid #b4b4b4 }

]]>

  1. success failure
    Sampler
    Thread Name:
    Timestamp:
    Time: ms
    Latency: ms
    Bytes:
    Sample Count:
    Error Count:
    Response Code:
    Response Message:
    Assertion
    failure failure
    Failure:
    Error:
    Failure Message:
    Request
    Method/Url:
     
    Query String:
    Cookies:
    Request Headers:
    Response
    Response Headers:
    Response Data:
    Response File:

2、在jmeter的bin目录下找到jmeter.properties,设置需要输出的内容为true,并去掉前面的注释符号#

3、将build.xml中报告模板替换成jmeter.results.shanhe.me.xsl

  • 此目录(Jenkins需提前新增一个jmeter+ant+git+jenkins接口自动化案例名称的任务)执行脚本并在html和jtl文件夹生成报告,至此Jenkins容器内jmeter+ant环境就搭建完成了。

3.4 jenkins配置

  • 新建任务

  • 配置任务-源码管理

通过jenkins的git插件拉取远程仓库的接口测试脚本。

  • 配置任务-构建触发器

  • 配置任务-构建环境

(jdk和ant需要先到系统管理->全局工具配置进行配置)

  • 配置任务-构建步骤1

通过执行shell脚本删除历史构建生成的报告文件。

#!/bin/bash
cd ${WORKSPACE}
rm -rf ./jtl/.jtl
rm -rf ./html/
.html

  • 配置任务-构建步骤2

执行ant命令进行构建。

  • 配置任务-构建步骤3

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
log.csdnimg.cn/direct/ae49ff3b935c4458a7560a433991a21d.png)

  • 配置任务-构建步骤2

执行ant命令进行构建。

  • 配置任务-构建步骤3

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-MNuua4Ec-1713324509756)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

<think>嗯,用户这次聚焦在测试工程师2-3的职业规划上,结合之前提供的业绩汇报模板和站内引用内容,需要给出具体的发展路径规划。用户可能正处于职业成长期,既想巩固基础又渴望突破瓶颈,引用[1][2]特别强调了职业规划对测试人员的重要性。注意到用户引用的资料有层次性:引用[1]划分了0-2和2-5两个阶段,引用[4]提到中级测试工程师要参与流程建设,引用[5]则强调软技能。这些正好对应2-3这个承上启下的阶段。用户深层需求可能是:如何避免"野路子"困境(引用[2]提到的被裁案例),在技术和管理路线间做好选择准备。需要突出三个维度:技术深度(自动化/性能等专项能力)、流程贡献(测试左移/质量体系建设)、职业方向选择。引用[3]的知识体系图提示要包含学习路径,但用户要求具体到2-3,所以重点放在"进阶合格工程师"而非入门内容。特别要注意量化建议,比如引用[4]所述"分析软件需求获得测试策略"的能力,可以转化为具体行动项。最后职业方向分支要呼应引用[2]提到的技术/管理分水岭问题。</think>以下是针对测试工程师2-3职业规划的详细发展路径及学习框架,结合行业实践和引用资料整理: --- ### **一、核心能力进阶路线** #### **阶段目标**:从功能测试向**专项技术/质量体系设计**转型[^1][^4] ```mermaid graph LR A[第1:测试基础巩固] --> B[接口/自动化测试] B --> C[第2:专项技术深耕] C --> D[性能/安全/测试开发] D --> E[第3:质量体系构建] ``` --- ### **二、分度规划与行动项** #### **第1-1.5:技术深度突破** 1. **自动化能力** - 目标:独立搭建自动化测试框架 - 行动项: - 掌握`Selenium/Pytest`完成UI自动化(覆盖率≥70%) - 使用`Requests+PyTest`实现接口自动化(覆盖核心业务链) - 产出价值:**回归测试时间缩短50%**[^1] 2. **测试左移实践** - 目标:提前介入需求分析 - 行动项: - 参与需求评审,输出《可测试性评估报告》 - 推动单元测试覆盖率提升(核心模块≥80%)[^4] #### **第2-2.5:专项技术选型** ```diff + 选择1:性能测试方向 - 掌握JMeter/Locust设计压测场景 - 分析TPS/响应时间/资源利用率(如:单接口压测至5000QPS) - 输出《系统瓶颈优化方案》[^3] + 选择2:测试开发方向 - 开发测试工具:用例生成平台/造数工具 - 搭建持续集成流水线(Jenkins+Git+自动化用例) - 实现每日构建验证(引用DevOps实践[^1]) + 选择3:质量体系建设 - 制定《缺陷定级标准》《测试准入准出规范》 - 推动BUG生命周期管理(SLA达成率≥95%)[^2][^4] ``` #### **第3:技术影响力构建** 1. **流程优化** - 主导测试流程改进(如:探索式测试引入) - 降低线上事故率(同比↓30%)[^4] 2. **知识赋能** - 组织技术分享会(度≥4次) - 编写测试技术文档(如《自动化最佳实践》) 3. **职业定位** ```mermaid graph TB T[技术路线] --> TC[测试架构师] T --> TD[测试开发专家] M[管理路线] --> TL[测试主管] M --> TP[项目经理] ``` --- ### **三、关键能力矩阵** | 能力维度 | 第1要求 | 第3目标 | 学习资源 | |----------------|-------------------|-------------------|--------------------------| | **工具链** | Selenium/Postman | Jmeter+Prometheus | 《全栈性能测试修炼》[^3] | | **编程能力** | Python基础脚本 | 设计测试框架 | LeetCode算法100题 | | **质量思维** | 执行用例 | 制定质量标准 | ISTQB高级认证[^1] | | **业务理解** | 熟悉单一模块 | 掌握系统架构 | 领域驱动设计(DDD) | --- ### **四、避坑指南** 1. **技术陷阱** - 避免盲目追求工具使用,需理解底层原理(如HTTP协议对接口测试的重要性) - 自动化≠录制回放,重视框架设计能力[^2] 2. **发展瓶颈** - 每新增1项硬技能(如2024重点学习`混沌工程`) - 参与开源项目贡献(提升技术视野)[^3] > **关键提醒**:2-3是转型黄金期,需明确技术/管理分支。技术路线深耕性能/安全/测开,管理路线积累跨部门协作经验(引用职业分水岭策略[^1][^2])。 --- ### **相关问题** 1. 如何评估自己更适合技术路线还是管理路线? 2. 性能测试工程师的核心能力模型是怎样的? 3. 中小型企业测试人员如何突破技术成长限制? 4. 2024测试开发需要重点学习哪些新技术栈? 5. 如何将业务知识转化为测试竞争力? > 附学习路线图: > ``` > 基础能力 → Python/SQL/Linux → 自动化框架 → CI/CD → 云原生测试 → 质量效能体系 > ``` > (引用2023测试知识体系[^3])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值