Jmeter+Maven+jenkins+eclipse搭建自动化测试平台

2023-12-04

背景:

首先用jmeter录制或者书写性能测试的脚本,用maven添加相关依赖,把性能测试的代码提交到github,在jenkins配置git下载性能测试的代码,配置运行脚本和测试报告,配置运行失败自动发邮件通知,这样一来性能测试的job配置完成。接着,把性能测试的job配置成开发job的下游job,一旦开发有了新的代码提交运行开发自己的job后,就会自动触发我们性能测试的job。这样我们就实现了接口性能测试的全自动化,我们只需要关注测试失败的邮件!

1 环境搭建

  • 下载安装 jdk &eclipse。
  • 下载安装jenkins。
  • 下载maven 并进行解压。
  • 下载jmeter并解压。

2 准备 的脚本

  • 启动 jmeter (双击 jmeter解压目录下的bin\jmeter.bat)。
  • 用jmeter书写test cases,并导出(推荐)。

或者你可以用jmeter录制脚本,确保运行通过后,导出。
当然你可以选择用badboy录制脚本,确保运行通过后,导出。(badboy支持ie浏览器的录制)
也可以使用chrome插件(BlazeMeter)下载链接:https://www.chromefor.com/blazemeter-the-continuous-testing-platform_v3-2-0/        注意:如果导出不了脚本,是版本原因,下载最新的版文本即可

3 为性能测试脚本创建maven project

  • 打开eclipse,并创建一个 maven project。
  • 在src/test/目录下创建jmeter文件夹把准备好的性能测试的脚本复制到这个文件夹下。

在src/test/目录下创建resource文件夹,并把测试模板(E:\apache-jmeter-3.2\apache-jmeter-3.2\extras的如下文件)复制到这个resource文件下。

并把如下文件从apache-jmeter-3.2\bin目录下复制到src/test/jmeter文件里。

  • 在maven脚本里(即pom.xml)添加jmeter-maven-plugin相关依赖如下:
 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
 
    <groupId>com.performance.test</groupId>
    <artifactId>PushNotificationPerformanceTest</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
 
    <name>PushNotificationPerformanceTest</name>
    <url>http://maven.apache.org</url>
 
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <jmeter.result.jtl.dir>${project.build.directory}\jmeter\results</jmeter.result.jtl.dir>
        <jmeter.result.html.dir>${project.build.directory}\jmeter\html</jmeter.result.html.dir>
        <jmeter.result.html.dir1>${project.build.directory}\jmeter\html1</jmeter.result.html.dir1>
        <ReportName>TestReport</ReportName>
    </properties>
 
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
 
    <build>
        <plugins>
            <plugin>
                <groupId>com.lazerycode.jmeter</groupId>
                <artifactId>jmeter-maven-plugin</artifactId>
                <version>2.3.0</version>
                <executions>
                    <execution>
                        <id>jmeter-tests</id>
                        <goals>
                            <goal>jmeter</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>xml-maven-plugin</artifactId>
                <version>1.0-beta-3</version>
                <executions>
                    <execution>
                        <phase>verify</phase>
                        <goals>
                            <goal>transform</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <transformationSets>
                        <transformationSet>
                            <dir>${jmeter.result.jtl.dir}</dir>
                            <stylesheet>src\test\resources\jmeter-results-detail-report_21.xsl</stylesheet>
                            <outputDir>${jmeter.result.html.dir}</outputDir>
                            <fileMappers>
                                <fileMapper
                                    implementation="org.codehaus.plexus.components.io.filemappers.FileExtensionMapper">
                                    <targetExtension>html</targetExtension>
                                </fileMapper>
                            </fileMappers>
                        </transformationSet>
                        <transformationSet>
                            <dir>${jmeter.result.jtl.dir}</dir>
                            <stylesheet>src\test\resources\jmeter-results-report_21.xsl</stylesheet>
                            <outputDir>${jmeter.result.html.dir1}</outputDir>
                            <fileMappers>
                                <fileMapper
                                    implementation="org.codehaus.plexus.components.io.filemappers.FileExtensionMapper">
                                    <targetExtension>html</targetExtension>
                                </fileMapper>
                            </fileMappers>
                        </transformationSet>
                    </transformationSets>
                </configuration>
                <!-- using XSLT 2.0 -->
                 <dependencies>
                   <dependency>
                   <groupId>net.sf.saxon</groupId>
                   <artifactId>saxon</artifactId>
                   <version>8.7</version>
                   </dependency>
               </dependencies>
            </plugin>
        </plugins>
    </build>
</project>

4 在eclipse运行性能测试脚本

选中性能测试的project 右击,然后在下拉框中选择run as -》maven build ,然后在弹出的对话框的Goals 写上verify,最hou点击run(如下图)。

运行后会有测试结果文件如下图

5 在jenkins 运行性能测试脚本并配置测试结果

在jenkins上安装如下插件:

Maven Integration plugin Maven,用于jenkins可以创建maven job ;

Git plugin ,用于从github下载性能测试的代码;

Performance plugin ,用于显示测试报告;

HTML Publisher plugin ,用于显示相关接口测试结果的报告。

1、jenkins环境准备(全局工具配置)

目录:系统管理-->全局工具配置

1)配置jdk地址

maven配置:

2、配置maven工程

1) 在jenkins创建maven job

2)在jenkins上配置运行脚本

首先在工程里点击配置选项

3)在jenkins上配置测试结果报告

5)配置完了,点击buid now,开始运行,结果如下:

下面的报告是更换了报告的模板,具体实现百度

ps:

关于显示测试结果:

1. 如在jenkins使用html publisher查看报告时,发现显示不美观,不全的现象,很多东西显示不了,

解决这个问题可以在jenkins系统管理中输入以下脚本运行,就可以解决这个问题了

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")

更多解决方法:https://zhuanlan.zhihu.com/p/280809752.html结果好多为空,请把jmeter.property的相应的false改为true。

 
#测试报告信息展示
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=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
# Only available with HttpClient4
jmeter.save.saveservice.sent_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

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jmeter+Maven+jenkins+eclipse搭建自动化测试平台 的相关文章

  • Maven:无法解析的构建扩展

    我一直在谷歌上查看 没有任何内容真正指出这个问题 当我运行 mvn clean install 时 它返回以下错误 错误 无法解析的构建扩展 插件 org sonatype flexmojos flexmojos maven plugin
  • buildnumber-maven-plugin 属性 ${buildNumber} 的可见性

    我正在尝试使用buildnumber maven plugin http www mojohaus org buildnumber maven plugin将 SCM 内部版本号附加到 WAR 工件名称 然后使用tomcat7 maven
  • Jenkins 执行 PowerShell 脚本

    我正在尝试从 Jenkins 运行 PowerShell 脚本 但它似乎完全忽略了执行策略 可以通过直接执行 powershell exe 或使用PowerShell插件 https wiki jenkins ci org display
  • java.lang.NoClassDefFoundError: org/apache/commons/cli/ParseException

    我想将 apache cli 添加到我的应用程序中 但我有问题 当我尝试运行它时显示这些错误 Error A JNI error has occurred please check your installation and try aga
  • SSHKit::Runner::ExecuteError:以 root@co 身份执行时出现异常:Jenkins Job 的 shell 脚本中的用户 root@ 身份验证失败

    我正在尝试从 Jenkins Job 运行 cap 部署命令 它不断抛出以下错误 我也在部署服务器中添加了 ssh 密钥 我能够从配置 Jenkins 的服务器成功部署 但是当我运行该作业时 会引发身份验证错误 这对我来说真的很重要 有人可
  • Jenkins 管道中的动态变量与 Groovy 方法变量

    我在 Groovy 中有一个用于声明性管道的 Jenkinsfile 以及两个创建的 Jenkins 变量 其名称为 OCP TOKEN VALUE ONE 和 OCP TOKEN VALUE TWO 以及相应的值 当我尝试传递方法变量并在
  • maven-jar-plugin 不包含 .gitignore 文件

    我尝试使用maven将应用程序打包成jar文件 不知怎的 除了 gitignore文件被添加到 jar 中 为什么会跳过此文件以及如何禁用此文件 即使我尝试像下面这样包含它 包含也会被忽略 并且 jar 文件仍然为空
  • Gradle 构建错误

    由于此错误 我的构建失败 评估项目 DBSupport 时出现问题 gt 找不到 参数 project Core Platform 上提供的方法providedCompile 项目 DBSupport 知道这意味着什么吗 descripti
  • 解锁 Jenkins - 如何

    我已经使用 putty 从 Windows 系统在我的 ec2 实例上安装了 jenkins 当我尝试通过网络访问 jenkins 时 我使用 var lib jenkins secrets initialAdminPassword 解锁
  • Jenkins 管道和 java.nio.file.* 方法的问题

    我正在尝试使用 java nio file 中的方法在 Jenkins 管道中执行一些基本文件操作 无论代码存在于哪个节点块中 代码都在主节点上执行 在管道中 我已经验证了各个节点块都是正确的 它们唯一地标识了特定的节点 但是 pathEx
  • Jmeter - http 采样器第一次迭代所花费的时间很长

    我是 Jmeter 的新手 我已经编写了一个 http 采样器 我正在运行 5 次迭代 这是我得到的读数 805 160 148 185 143 我注意到第一次迭代所花费的时间比前四次要长 每次运行采样器时我都会观察到同样的情况 仅供参考
  • 使用“mvncompilejib:build”推送到 Docker 注册表失败

    我正在尝试使用以下命令构建并将我的 docker 映像部署到私有注册表谷歌联合投资银行Maven 插件 但是 它因访问私有注册表时出现问题而失败 我已经安装了Docker 桌面 v19 03 1 on my Windows 10机器 接下来
  • Maven 按顺序构建所有内容

    我有一个项目 其中所有项目都有一个父 pom 定义如下
  • Lombok 不适用于 Eclipse Neon

    我下载了lombok jar lombok 1 16 14 jar 并将其放入我的下载中 然后我点击这个 jar 执行正确地识别了我的 MacOS 上的 Eclipse 实例 然后我选择了我想要的实例 Lombok也在pom xml中指定
  • Maven 构建错误 TOOLS.JAR NOT FOUND IN JRE

    我在构建 Maven 项目时遇到这个问题 请帮我解决 ERROR Failed to execute goal org apache maven plugins maven compiler plugin 2 5 1 compile def
  • 无法安装企业应用程序 - 此配置文件无法安装在此设备上

    我正在设置 Jenkins 来构建应用程序的企业版本 以便在我们的内部应用程序商店中分发 如果我将应用程序存档在 Xcode 中 然后在手机上下载内置的 ipa 则应用程序安装不会出现任何问题 但是当我使用 Jenkins 生成的具有相同私
  • Maven:从构建中排除测试

    我在项目的 src test java 文件夹中有一些类用作测试 当我使用标准 Maven 编译插件运行 Maven 时 这些项目被编译成 class 文件 并包含在打包编译代码的 jar 中 在运行 Maven 和构建我的版本之前 我已经
  • 手动设置Jmeter主目录

    根据这个帖子 http jmeter 512774 n5 nabble com Automatic generation of aggregate reports td4281459 html Jmeter home被自动检测到 有没有办法
  • 如何正确使用“mvn release:prepare”?

    我尝试了这个命令 用dryrun在我的 Maven 项目上进行测试 mvn release clean release prepare DdryRun true DgenerateBackupPoms false Dtag solocal
  • Onejar,使用maven,不会将资源复制到jar中

    我正在使用 one jar 来打包我的程序 我在 src main resources 中有资源 maven resources plugin正确地将资源复制到jar中 但是onejar生成的jar不包含我的资源 这是我的 pom

随机推荐

  • 江铃汽车热设计工程师岗面试给我留下了较好的体验,感觉很有诚意

    includeusing namespace std int main int n m k cin gt gt n gt gt m gt gt k 秋招快结束啦 不管有没有收获满意的 offer 都要准备好启程前往新的目的地了 租房是应届生
  • 使用Jmeter进行http接口性能测试

    在进行网页或应用程序后台接口开发时 一般要及时测试开发的接口能否正确接收和返回数据 对于单次测试 Postman插件是个不错的Http请求模拟工具 但是Postman只能模拟单客户端的单次请求 而对于模拟多用户并发等性能测试 就必须借助其他
  • 电商平台评论API接口,获取淘宝、天猫、京东、拼多多、小红书、抖音评论API接口调用演示案例

    评论API接口的作用主要体现在以下几个方面 获取商品评价信息 通过API接口 可以获取到淘宝等电商平台的商品评价信息 包括评价内容 评价时间 评价用户等 帮助商家了解用户对商品的评价情况 分析用户评价 通过API接口获取到的评价信息 可以进
  • JavaScript 数据结构

    JavaScript 数据结构 目录 JavaScript 数据结构 一 标识符 二 关键字 三 常量 四 变量 每一种计算机编程语言都有自己的数据结构 JavaScript脚本语言的数据结构包括 标识符 常量 变量 保留字等 一 标识符
  • 题解 | #试卷完成数同比2020年的增长率及排名变化#

    import mathn int input count 0 for i in range n 1 s pow i 2 include
  • 区块链交易平台服务器该怎么选

    区块链交易平台服务器该怎么选 随着互联网技术的发展 区块链也发展成为一种潮流 越来越多的人加入到区块链行业中来 尤其是区块链交易平台 但也有很多人不了解区块链对服务器的要求 那么我们就要好好说说搭建区块链交易平台服务器该怎么选 1 区块链交
  • 软件测试-测试用例案例及思维导图展示

    的测试用例 一个杯子的测试用例 一支笔的测试用例 朋友圈点赞的测试用例 功能测试 1点赞后是否显示结果 2 点赞后是否可以取消 3 点赞取消后是否可以重复点赞 4 共同好友点赞后 是否有消息提醒 5 非共同好友点赞后 是否有消息提醒 6 点
  • Python+Requests模块session处理和SSL证书处理&关闭警告

    session处理 部分接口需要先登录网址 才能有权限进行调用 这时可以使用到session 具体操作是 先使用网站 的登录api进行登录 得到session后 然后用该session来请求其它的接口 示例代码 session obj re
  • 获取员工其当前的薪水比其manager当前薪水还高的相关信息

    11月29日 财报大部分数据落在预期内甚至小超预期 11月30日 股价埋头下跌 这是最近评论区争论最厉害的中概股之一 美团 给下跌找理由和给上涨编故事的本质都是 首先 冒泡排序是什么 冒泡排序 Bubble Sort 是一种简单的排序算法
  • 如何利用CHAT 进行扩写?

    问CHAT 开发利用这些矿产资源的同时 我们也不能忽视环境保护的重要性 要以科学 合理 绿色环保的原则为指导 保护好帕米尔高原的生态环境 实现其可持续发展 以取得全局上的真正利益 按照以上文字进行简单扩写 CHAT回复 你好 以下是我对这段
  • JavaScript 基本数据类型

    JavaScript 基本数据类型 目录 JavaScript 基本数据类型 一 数字型 Number型 1 整型数据 2 浮点型数据 二 字符串型 1 单引号括起来的一个或多个字符 2 双引号括起来的一个或多个字符 3 单引号定界的字符串
  • 企业电子招投标采购系统源码之电子招投标的组成

    功能模块 待办消息 招标公告 中标公告 信息发布 描述 全过程数字化采购管理 打造从供应商管理到采购招投标 采购合同 采购执行的全过程数字化管理 通供应商门户具备内外协同的能力 为外部供应商集中推送展示与其相关的所有采购业务信息 历史合作
  • 如何利用Requestly提升前端开发与测试的效率

    前端测试 在进行前端页面开发或者测试的时候 我们会遇到这一类场景 在开发阶段 前端想通过调用真实的接口返回响应 在开发或者生产阶段需要验证前端页面的一些 异常场景 或者 临界值 时 在测试阶段 想直接通过修改接口响应来验证前端页面是否正常
  • 长沙上市公司董秘联谊会首次活动,到底讲了什么?

    package mainimport bufio fmt os func main 有佬了解这个公司吗 有没有面经啊 尴尬 import java util Scanner import java util HashMap import j
  • 题解 | #查找入职员工时间排名倒数第三的员工所有信息#

    三轮面试好久啦 我该不该主动询问HR目前进度呢 求友友们给个参考建议 好无辜 好无辜 很怪 没和我说 投的优先南京岗 被调到上海 然后没和我说薪资 给我发意向书 lz差一点就违约完去签别的公司 没有违约机会了 给整了这么一出 请问有uu一样
  • 题解 | #找出每个学校GPA最低的同学#

    原文连接 分享一下我的秋招经验 希望可以帮到你我的秋招目基本结束了 这段秋招很充实也收获很多 当然踩坑也很多 因为之后一段时间我可能要专心准备论文和考公了 一些同学找到我说求职很难突破自己的性格 心理弱点 跟陌生人说话紧张 无法突破自我等等
  • 用虚拟主机 网站被暂停了是怎么回事?

    用虚拟主机 网站被暂停了是怎么回事 一 没有及时续费 如果使用虚拟主机或域名到期后 在一定时间内没有续费 那么服务商会直接停止服务 网站也会出现暂时停止的现象 这种暂停可以通过续费开通 但如果超过续费期限 不论是主机还是域名都会删除用户信息
  • 徐工集团机械结构工程师岗面试过程并不难,几乎没有问到专业知识

    有没有投兴业普惠的uu啊 交流一下进度 nowcoder vote 103622 文 侯煜编辑 罗卿近十年来 大尺寸OLED 有机发光二极管 面板技术被韩国企业LG Display所垄断 中国半导体显示龙头企业京东方逐步完善OLED显示面板
  • JVS-BI自定义时间格式:突破系统限制,满足你的特殊需求

    在数据分析的过程中 时间字段的处理尤为关键 为了更准确 高效地分析和呈现数据中的时间信息 我们需要对这些字段进行一系列的数据加工操作 其中 类型转换是不可或缺的 import java util public class Main publ
  • Jmeter+Maven+jenkins+eclipse搭建自动化测试平台

    背景 首先用jmeter录制或者书写性能测试的脚本 用maven添加相关依赖 把性能测试的代码提交到github 在jenkins配置git下载性能测试的代码 配置运行脚本和测试报告 配置运行失败自动发邮件通知 这样一来性能测试的job配置