超详细!Jmeter性能测试(一)

2023-11-10

*Jmeter 性能测试(一)

  • 首先开发会给你一个接口文档、我们这边是做支付方面的,所以我们要求给下单支付接口做下压测。

  • 由于我们这边接口都是有加密参数的,所以都是直接在JAVA工程包里直接跑的,因为这次是做压测,所以我们要用上Jmeter这个工具来配合,Jmeter这个工具我就不做详细介绍了。

  • 然后我们打开Jmeter这个工具,打开Jmeter下载文件进入bin目录下双击jmeter.bat,即可打开Jmeter。

  • 打开Jmeter创建一个线程组,给他命名Test_Pressure(这个名字随便自己取)。在这里插入图片描述
    在线程组下的Sampler添加http请求

在这里插入图片描述

这时候就要根据所提供的接口来了,由于我们这边的接口是写在Java工程包里的,所以我们就要在工程包里面看了。首先在开始之前,我们这边从下单到完成支付,是由三个接口来完成的。附上接口数据,由于是公司内部数据,我打上了马赛克,能看懂就行。(一共有三个接口,1.发送下单接口获取Token,2.根据下单接口返回的Token去关联下一个接口去发送请求支付接口,3.再根据下单支付接口的订单状态去做回调,先知道有这么个回事,后面我会说清楚

获取TOKEN接口(图一)
在这里插入图片描述
获取TOKEN接口(图二)

在这里插入图片描述
获取TOKEN接口(图三)
在这里插入图片描述
获取TOKEN接口(图四)
在这里插入图片描述
这一串代码是动态聚合码支付获取token,根据开发所提供的代码我们先要通过第一个接口去获取TOKEN。

懂java的可能容易看的懂些,楼主也不是很懂java,但是天天接触这些东西,时间久了,开发写的这些还是能看懂的,哈哈哈哈,若有解释错误的,还麻烦留言指出来哦。

我们要进行的是对dmOrderToken()这个接口进行添加,那么先找到这个接口的URL,我们根据TOKEN接口(图三)的第77行代码显示:
HttpResponse response = HttpRequest.post(dmUrl).body(jsonParams,“application/json”).charset(“utf-8”).execute();
String result = response.body();
(不懂的看下方截图)
l在这里插入图片描述
Ctrl+左键点击dmUr跳转到图一的32行在这里插入图片描述
这个时候我们已经知道了获取TOKEN的接口地址
然后我们可以根据代码上写的地址放到Jmeter的Http请求上面去(代码上怎么写的,就怎么填)
在这里插入图片描述
这个时候我们继续看接口代码
在这里插入图片描述
我们继续看到这行代码
HttpResponse response = HttpRequest.post(dmUrl).body(jsonParams, “application/json”).charset(“utf-8”).execute(); 说明用的是POST请求、请求数据格式是application/json
这个时候我们到Jmeter上去添加就好
在这里插入图片描述
这个时候我们添加一个HTTP请求默认值,为什么要在默认值这里添加呢,是为了后面有可能会用到,所以添加一个这样的默认值,具体怎么用后面会说到,先知道有这么个回事。
在这里插入图片描述
在这里插入图片描述
再添加一个查看结果树,结果树是从监听器下面添加的,不用解释也应该明白吧,就是用来监听的,这么说吧,就是用来看结果的,看运行的结果是个什么样的,这样说可能好理解一些。
在这里插入图片描述
这个时候我们来运行一下看接口有没有通,发现返回的响应参数为空,我们没有用上参数数据,我们再继续去看代码需要用到哪些参数。
在这里插入图片描述
继续可以看上方代码图片,参数太多我就不一一说了,还有一些代码逻辑,我们可以根据上面代码
把他写在JMETER里面去,然后去进行调用,这样就方便很多,这个时候我们添加一个
BeanShell PreProcessor(然后肯定有小伙伴问,为什么要添加一个beanshell preprocessor呢,他又是干嘛的呢?)为什么参数不直接添加到Body上面去呢,这个慢慢细讲哈。

BeanShell PreProcessor是一个前置处理器,它可以进行一些处理,比如执行一个算法并将结果存储到参数中。它只支持java语言。

在这里我提前说一个jar包导入的事,之前楼主在这里研究了半天,哈哈哈
如使用jar包,需要先在Eclipes把jar包Export出来,然后把导出的jar包提前放入jmeter安装目录的\lib\ext下,并重新启动jmeter。当然也可以在Jmeter测试计划中的Library,选择jar,导入Jmeter 保存后,重新启动下jmeter。(为什么要导入jar包,因为你在BeanShell PreProcessor的Script下写代码,会有包导入失败无效,因为Jmeter没有这个东西,Jmeter它本身找不到这个jar,所以他不知道。)下面附上截图流程
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后就导出成功了,把导出的jar包放到jmeter安装目录的\lib\ext下就可以了。

然后我们继续进入到Jmeter
打开BeanShell PreProcessor
Script
使用import来导入,import的路径就是在eclipse中import的路径
使用vars.get(“xxx”)来将jmeter中的参数的值获取到java中。
使用vars.put(“xxx”)来将java中的参数的值储存到jmeter中。这个的话我后面会说到
在这里插入图片描述
在这里插入图片描述
然后我们把里面所用到的代码写进去,具体怎么写进去我就不说了,这。。。。太多了,懂一点基础的可以直接把开发写的给复制进来,然后稍微修改一下就好了,你就把这些代码看作是body参数,后面会引用到的。
在这里插入图片描述
在这里插入图片描述

String jsonParams = JSONUtil.toJsonStr(pubParamMap);
vars.put(“dmjsonParams”,jsonParams);

上面说了,这些都是作为参数去调用,把所有需要用到的参数全部集合在jsonParams上了,然后我们vars.put(“dmjsonParams”,jsonParams)这个意思就是说给jsonParams起了另外一个变量名,名为dmjsonParams 我们只需要把dmjsonParams传到Body上面去就可以调用Script的参数代码了。(前提是代码一定要写对哦,不然会报错,我第一次写的时候也报了很多错,一步一步爬得坑,慢慢爬上来了,这个我就不说了,自己去操作的时候碰到了就自行百度吧,还有jar包导入的问题,一般情况下按照我上面说的去导入不会有问题)

然后我们打开HTTP请求,下方点击Body Data
在这里插入图片描述

然后我们现在可以去运行一下 看可以不可以

在这里插入图片描述
OK 这样的话 我们在data里看到了token,这个token的获取方式有点怪啊,这个得问开发。

然后我们再加一个响应断言吧,这样可以更好的判断错误
在这里插入图片描述
在这里插入图片描述
好了,这样的话第一个接口就算是调通了。

说明:这还没到做性能阶段,只是把接口调通,(这才第一个接口)后面我会更新
还有就是这纯属个人分享,再加上给自己做个笔记,一起学习,一起加油吧!

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

超详细!Jmeter性能测试(一) 的相关文章

  • JMeter 批量接口测试

    一 背景 最近在进行某中台的接口测试准备 发现接口数量非常多 有6 70个 而且每个接口都有大量的参数并且需要进行各种参数验证来测试接口是否能够正确返回响应值 想了几种方案后 决定尝试使用JMeter的csv读取来实现批量的接口测试 二 脚
  • Jmeter 压测-性能调优5大注意

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 2k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 我们可以通过jmeter.bat和ApacheJMeter.jar打开JMeter。有什么不同?

    我们可以通过以下方式打开JMeterjmeter bat and ApacheJMeter jar 它们之间有什么区别 ApacheJMeter jar 文件是一个可执行 jar 因此如果它与 java 应用程序关联 则可以通过在 wind
  • 循环访问多个正则表达式提取器输出

    您能告诉我如何循环遍历返回多个值的正则表达式后处理器的结果吗 Example JSON 响应消息 reply code 111 status SUCCESS customerID 222 a b 333 44 4 s 555 666 777
  • 使用数据库表作为 JMeter 的 CSV 数据集

    我目前正在使用 JMeter 对我公司的一个应用程序进行性能测试 该应用程序需要登录 我必须使用多个用户 在 JMeter 中通常完成此操作的方式似乎是通过 CSV 数据集 但是我可以访问数据库并可以直接从那里读取所有凭据 由于这是一个测试
  • JMeter(活动?)FTP 到 VLTrader

    情况 我正在使用 JMeter 来加载测试我的通信应用程序 Cleo VLTrader 我是 JMeter 的新手 并且能够使 HTTP 通信工作 但不能使 FTP 工作 当我尝试使用 JMeter FTP 请求采样器时 我可以在服务器端看
  • JMeter 使用什么 Maven 插件? jmeter-maven-plugin 还是 chronos-jmeter-maven-plugin?

    我需要设置由 CI 系统自动触发运行的性能测试 为此 我想使用 JMeter 因为已经存在一些脚本和经验 并且我想将其与 Maven 结合起来 在我对合理插件的研究过程中 我发现存在两个插件 jmeter maven 插件 http wik
  • 使用Java代码进行Jmeter分布式测试

    我能够使用 Java 代码运行 Jmeter 但如果我想做与分布式测试相同的操作 那么如何在 Java 代码中添加远程引擎 这是一个sample http alvinalexander com java jwarehouse jakarta
  • 增加 JMeter 执行期间的线程数

    我有一个性能测试JMeter并想用它来测试最大系统性能 吞吐量 因此 当错误率低于 2 时 应增加活动线程数 我发现Constant Throughput Timer 把它放入Thread Group但它只会暂停或减慢线程 我尝试将其定义如
  • JMeter 在性能测试期间挂起

    我试图模拟 4 个不同用户的 100 个线程请求 所有 97 个请求均已发送和接收 但其余 3 个请求仍显示为正在执行 我必须手动停止 Jmeter 然后只传递剩余的请求 为什么会发生这种情况 您的计算机可能没有资源来执行请求 或者 Jav
  • JMeter 记录使用 HTTPS 的 iOS 本机应用程序会导致 SSL 握手问题

    我有一个用于我们的应用程序的 IPAD 混合应用程序 它会在登录过程中尝试访问我们的 https 服务器 我想使用 JMeter 来记录这个简单的流程 我正在本地计算机上运行 JMeter 代理服务器 我更新了 IPAD 代理详细信息 以便
  • 如何在 Groovy 2.4 中计算 sha256 哈希值

    我正在尝试计算 Groovy 版本 2 4 16 中的 sha256 哈希值 这是 jmeter 测试的一部分 这是它支持的 Groovy 版本 我认为我无法更改它 我知道在 Groovy 2 5 中你可以使用这样的代码 https mrh
  • 如何使用 JMeter 将 application/x-www-form-urlencoded 参数发送到 RestServer?

    我开发了一个休息服务器 并将其在本地主机中运行 我尝试使用 JMeter 执行测试 发送请求帖子和获取 取决于调用的方法 我已经发送到 Rest 服务器并使用 JMeter 在简单的 post 请求 获取请求 通过 post 发送文件以及通
  • Azure 应用程序网关在进行 JMeter 负载测试时随机遇到 504 网关超时

    我有 1 个应用程序网关 它有 2 个后端 Azure VM 它通过 IIS 托管 ASP CORE REST API 两者都使用端口 80 进行通信 手动测试一切正常 直到我们使用 jmeter 进行 2500 线程 POST 请求负载测
  • setEndTime 必须在 setStartTime 之后调用

    尝试使用 JMeter JMS Publisher 推送消息 但低于错误 这是jmeter端错误还是服务器端错误 Error setEndTime must be called after setStartTime java lang Th
  • 负载测试kafka消费者

    我正在编辑问题 因为我认为它不够清楚 如何对我的 kafka 消费者进行负载测试 我看过很多关于 apache kafka 负载测试的文章 但没有一篇关于消费者负载测试的文章 对于前 我在jsr223中编写了jmeter kafka生产者测
  • 将 JMeter 报告转换为 JUnit 报告

    如何将 JMeter 报告转换为 JUnit 报告 有些工具 例如 VSTS 知道如何集成 JUnit 报告 但不知道如何集成 JMeter 报告 尽管它们可以运行 JMeter 我创建了一个 XSLT 将 XML JMeter 报告转换为
  • 我有 JSR233 监听器,它在 JMeter 非 GUI 模式下似乎被忽略

    我在 HTTP 请求下有 JSR233 侦听器 它存储所有响应时间值 创建数组 然后对数组进行排序以查找 90 行 然后在达到最终 90 行阈值时标记最后一个事务 请求通过或失败 GUI 中的一切都运行完美 但我使用 Docker Imag
  • 如何在 JMeter 中使用命令行参数

    我正在使用 Jmeter 测试 API 我想从终端参数化项目的路径 然后我想在 JMeter 中使用此参数 我通过命令行发送的参数 jmeter n t your script jmx Jurl abcdef com 我在用户定义变量中使用
  • Jmeter 下降的最佳方法?

    我们都知道 Jmeter 并不是最擅长在运行期间更改活动线程的数量 除非您喜欢并创建以不同时间间隔触发的单独线程组 有没有人想出一个好的解决方案来在测试结束时降低速度 例如 我从 50 个线程开始 在 30 分钟内我想要 0 个活动线程 查

随机推荐

  • Spyder 快捷键大全(转)

    主要介绍了Spyder常见的快捷键 从spyder的配置表中导出 中文名称为直译 常用快捷键 快捷键 中文名称 Ctrl R 替换文本 Ctrl 1 单行注释 单次注释 双次取消注释 Ctrl 4 块注释 单次注释 双次取消注释 F5 运行
  • Python之argparse.ArgumentParser

    一 介绍 argparse是python用于解析命令行参数和选项的标准模块 一方面可以接收运行代码时用户传入的各种参数 比如传入数据路径 另一方面也可以规范的定义程序中用到的参数 比如定义epoch及batch size等 二 使用 新建t
  • [javascript]canvas 热点区域图,框选区域并在区域显示热点

    需求 设置人员需要在图片上框选区域 并且后台针对区域读出数据后显示热点 做法 直接上代码 作者 jww dragon 163 com 依赖 jquery var goog function tag this hotpoint this sq
  • 时序预测

    时序预测 Python实现XGBoost极限梯度提升树股票价格预测 目录 时序预测 Python实现XGBoost极限梯度提升树股票价格预测 预测效果 基本描述 环境配置 模型描述 程序设计 参考资料 预测效果 基本描述 Python实现X
  • 【VBScript恶搞代码】关不掉的窗口

    前言 编写vbs脚本没有什么特定要求 只要有系统带了WSH环境就可以 千言万语汇成一句话 有手就行 效果图 操作步骤 先打开记事本 win R打开运行窗口 输入notepad 回车 在记事本上粘贴下列内容 WScript Echo 嘿 谢谢
  • 【算法

    Leetcode206 反转链表 给你单链表的头节点 head 请你反转链表 并返回反转后的链表 示例 1 输入 head 1 2 3 4 5 输出 5 4 3 2 1 示例 2 输入 head 1 2 输出 2 1 示例 3 输入 hea
  • 通过CPUID指令读取处理器信息

    一 CPUID简介 CPUID操作码是一个面向x86架构的处理器补充指令 它的名称派生自CPU识别 作用是允许软件通过CPUID指令读取处理器的详细信息 二 CPUID基本原理 CPUID有很多function号 每个号代表一个功能 CPU
  • nginx 之 Http 请求处理的11个阶段

    处理的11个阶段 POST HEAD realip SERVER REWRITE rewrite FIND CONFIG REWRITE rewrite POST REWRITE PREACCESS limit conn limit req
  • 通过使用Mybatis插件来实现数据的分页功能

    目录 背景 一 SpringBoot的后端 1 手动拼接SQL来实现 2 使用Mybatis插件来实现 二 Vue cli的前端 请求响应跟踪 三 在使用Mybatis插件进行多表查询 表数大于2 出现的问题 1 SQL解决 2 后端查询方
  • 毕设教学:Yolo v5 (v6.1)解析(二)

    Yolo v5 v6 1 解析 二 本文对YOLOv5模型的detect py文件内容进行了详细阐述 笔者以后会定期讲解关于模型的其他的模块与相关技术 笔者也建立了一个关于目标检测的交流群 781334731 大家也可扫描底部图片加入 欢迎
  • java软件官网下载汇总——JDK,eclipse,mysql,maven,idea,Git,oracle

    说明 最近换了一台电脑 所以很多软件都要重新安装 边安装边思考我不如把所有软件的下载官网记录下来 以后就不用到处找了 直接在这篇博文里看就行了 这篇博文没有具体的下载链接 只是官网 因为如果真的不记得进了官网怎么点 那确实也应该复习一下 就
  • 学习1(Linunx操作系统_前期安装)

    1 安装虚拟机 vm12 我下载的是这个版本 vmware workstation full 12 1 0 3272444 exe 下载地址 https www xinsaisai com vmware workstation full 1
  • keep-alive源码解析及实现原理

    keep alive源码 vue 2 6 10 在src core components keep alive js中 代码分析 export default name keep alive abstract true 抽象组件 props
  • 解决Mac应用程序软件不出现在Launchpad里面的方法

    新装了几个软件 可是打开Lauchpad之后却在里面找不到 尝试重置Launchpad方式 1 分别输入终端命令即可 rm Library Application Support Dock db killall Dock
  • ASP.NET 清除模式窗口数据缓存

    使用模式窗口showModalDialog 弹出页面在asp net中经常用到 用的最多的就是点击 修改 按钮 弹出修改页面 修改成功之后 关闭修改页面 刷新父页面 目前存在的一个问题是 刷新完父页面之后 再点击修改按钮弹出修改页面 修改页
  • Java 枚举

    枚举的每一个成员变量就是枚举类型自身的一个实例 枚举的实例在编译的时候就能确定枚举类型有多少个 实例对象 每一个枚举都继承自java lang Enum类 枚举的每个成员默认都是 public static final 的 当定义一个 枚举
  • gf框架使用sqlite3数据库后交叉编译cgo适配arm64-linux

    gf框架使用sqlite3数据库后交叉编译cgo适配arm64 linux 文章目录 gf框架使用sqlite3数据库后交叉编译cgo适配arm64 linux 1 前言 2 解决方案 3 wsl Windows交叉编译cgo工程 3 1
  • 期末考试复习笔记(标红表示重要)

    目录 相关系数的比较 数据的类型 回归模型的统计检验与统计意义 参数检验 非参数检验 统计距离 量表 李克特量表 权重 聚类图分析 聚类分析简介 聚类的用途 聚类方法 两步聚类法 TwoStep Cluster 箱线图分析 中心位置的作用
  • Redis数据类型-List

    一 概述 Java中 数组 Arraylist 链表 linkedList 数组的特点 根据索引取值速度是极快的 和数据量的大小无关 数组的增删改查 效率极低 数据量越大 效率越低 链表的特点 链表的元素增删 效率极高 和数据量的大小无关
  • 超详细!Jmeter性能测试(一)

    Jmeter 性能测试 一 首先开发会给你一个接口文档 我们这边是做支付方面的 所以我们要求给下单支付接口做下压测 由于我们这边接口都是有加密参数的 所以都是直接在JAVA工程包里直接跑的 因为这次是做压测 所以我们要用上Jmeter这个工