当前位置: 首页 > article >正文

如何快速构建Jmeter脚本

        在做性能测试或者接口测试时,准备脚本是一项必须且繁琐的工作。一个项目可能涉及到的接口有数百个,如果都是手工录入,各种入参、请求头,让人头大无比并且很容易出错。那么有没有一种即快速有准确的方法呢?今天就来介绍一款小工具(对,工具就是我写的),可以实现快速的将har文件转成Jmeter的jmx文件。

第一步:Clone代码

        首先到代码仓库中下载代码,github中搜索har2jmeter也可以找到,但是因为github访问不稳定,有时候代码更新不上去,所以可能不是最新的。仓库地址icon-default.png?t=O83Ahttps://gitee.com/walnut_king/har2jmeter

第二步:打包

        clone下来的代码使用编辑器打开(我用的是IDEA),安装完相关依赖后分别运行maven的install、package,打包结束后会在项目目录下生成target文件夹,以及文件夹下生成的Jar包Har2jmeter.jar。

第三步:抓包

        抓包工具我这里使用的是Poxyman,因为不同抓包工具导出的Har文件内容格式可能存在些许差别,我测试过的抓包软件包括Poxyman、Charles、Reqable,其他软件如果失败了可以联系我或者自己进行修改代码做兼容。

        抓到请求内容后,选中 -> 右键 -> 导出 -> as HAR,将请求保存为har格式文件。

注意: 转换工具会默认将第一个请求的域名作为公用域名,并在Jmeter中设置为变量。所以如果请求中涉及到多个域名的,建议分开保存,保证每个har文件中的域名是相同的。

第四步:转换格式

打开命令行工具,进入到target目录下,执行命令:

java -jar Har2Jmeter.jar /Users/jaxx/Downloads/12-20-2024-11-05-26.har /Users/jaxx/Downloads/result.jmx

如果没有任何输出,则说明执行成功

执行jar包共需要两个参数,其中:

参数 1:Har文件路径

参数 2:需要保存的jmx格式文件路径

注意:因为生成Jmeter脚本需要用到Jmeter的bin目录下的配置配件,所以我单独复制了一份配置文件放在了项目下的jmeter目录中。因此目前暂不支持将Har2Jmeter.jar复制到其他任意目录中使用,我会在后续进行优化该功能。

第五步:Jmeter打开文件并修改

使用Jmeter打开刚才生成的jmx文件,如图:

脚本简介

  1. 脚本中共有 5 个默认的配置元件,分别是:HTTP缓存管理器、HTTP Cookie管理器、DNS管理器、用户自定义参数。其中除了用户自定义参数外其他都是默认值,可以根据自身需要进行修改。
  2. 用户自定义参数中设置了一个变量BASE_URL,为所有请求的域名,http请求中将所有的“服务器名称或IP”字段均替换为该变量${BASE_URL}
  3. 每个请求均有一个Header管理器和一个断言,断言只是简单的判断响应状态码是否为 200,可以根据实际情况进行增加断言或修改。
  4. 监听器只有一个查看结果树

        关于代码我就不做过多介绍了,整体来说比较简单,只要捋清楚Jmeter的API功能,就可以根据har文件的结构一步步的去填充构建jmx文件即可。

最后欢迎大家点点Star啊!


http://www.kler.cn/a/445891.html

相关文章:

  • 【开源项目】数字孪生轨道~经典开源项目数字孪生智慧轨道——开源工程及源码
  • 清远榉之乡托养机构为你深度分析:特殊碳水化合物饮食对自闭症的作用
  • [Python学习日记-73] 面向对象实战1——答题系统
  • 基于langchain的Agent(实现实时查询天气)
  • K-Means 聚类:数据挖掘的瑞士军刀
  • 【Python】基于Python的CI/CD工具链:实现自动化构建与发布
  • oracle AES CBC,128位密钥加解密方法
  • 【C++ DFS 图论】1519. 子树中标签相同的节点数|1808
  • 解决 Ubuntu 20.04 上因 postmaster.pid 文件残留导致的 PostgreSQL 启动失败问题
  • L24.【LeetCode笔记】 杨辉三角
  • 如何彻底删除电脑数据以防止隐私泄露
  • 【mac 终端美化】oh my zsh
  • GTID详解
  • 【从零开始入门unity游戏开发之——C#篇21】C#面向对象的封装——`this`扩展方法、运算符重载、内部类、`partial` 定义分部类
  • 【Verilog】实验九 存储器设计与IP调用
  • 【论文复现】找出图像中物体的角点
  • 热更新解决方案4——xLua热补丁
  • [react] 优雅解决typescript动态获取redux仓库的类型问题
  • ES倒排索引
  • 全链路触达,Klaviyo 助力跨境电商打造数据驱动的智能化营销体验
  • 区间预测 | MATLAB实现QRDNN深度神经网络分位数回归时间序列区间预测
  • PDF无法打印!怎么办?
  • 数据结构_双向循环链表实战
  • 大数据:HDFS:特性、架构
  • C# 中的闭包
  • 【C++】C++中的lambda函数详解