码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Jmeter 入门使用


    文章目录

      • 1. 写在最前面
      • 2. Jmeter 安装
      • 3. Jmeter 使用
        • 3.1 增加 http 请求的基本信息
          • 3.1.1 增加 HTTP 请求的默认值
          • 3.1.2 增加 HTTP 信息头管理器
        • 3.2 增加 http 接口测试
          • 3.2.1 增加线程组
          • 3.2.2 增加 http 接口的访问
          • 3.2.3 配置 http 请求的参数
        • 3.3 http body 参数读取写入
          • 3.3.1 方案一
          • 3.3.2 方案二
        • 3.4 结果分析
          • 3.4.1 察看结果树展示
          • 3.4.2 聚合报告的展示
      • 4. 碎碎念
      • 5. 参考资料

    1. 写在最前面

    最近接了个新项目,整个人都处于非常忙碌的状态。但是学习、复盘才会使人进步,所以还是要抽出时间来学习新的、有趣的知识。对接的测试小姐姐,使用 jmeter 帮忙压测了下供应商的服务在被限流之后的行为是什么?

    虽然自己写脚本也能完成并发的压测,但是最后总结的压测结果数据不如 jmeter 的广泛和全面,所以趁着时间允许,来研究一波 jmeter 的使用吧。

    2. Jmeter 安装

    Jmeter 下载地址 https://dlcdn.apache.org//jmeter/binaries/,笔者当时下载的是 5.4.1 的版本,总体的执行命令包括

    • 选择需要 jmeter 的版本,太新的话可能网上介绍的文档不多

    • 将下载好的 jmeter 服务压缩包移动到合适的目录 mv ~/Downloads/apache-jmeter-5.4.1.tgz .

    • 解压缩 tar -zxvf apache-jmeter-5.4.1.tgz

    • 切换到解压缩后的目录 cd apache-jmeter-5.4.1 && ./bin/jmeter.sh,然后就会收获一个 GUI 版本的 jmeter 界面

    在这里插入图片描述

    注:Jmeter 要求安装 Java,所以安装 Jmeter 时,请确认已经安装了要求的 Java 版本

    3. Jmeter 使用

    Jmeter 的使用网上已经有了比较详细的介绍,此处仅介绍几个笔者觉得用起来很方便的示例。先说一下背景,要测试的接口是一套 http 接口。类似如下能力:

    • acquire :获取 token,请求 body 中需要填写可变参数,token 返回在响应的 Body 中
    • start :拿着获取的 token 发起 start 请求,请求 body 中需要填写可变参数,此步骤类似启动一个任务,会在响应的 Body 返回一个 taskId
    • query:拿着获取的 taskId 和 token 查询任务
    • stop :拿着获取的 taskId 和 token 停止任务

    3.1 增加 http 请求的基本信息

    右键添加 -> 配置元信息进行选择

    在这里插入图片描述

    3.1.1 增加 HTTP 请求的默认值

    用于配置请求的协议、地址、端口等信息

    在这里插入图片描述

    3.1.2 增加 HTTP 信息头管理器

    用于增加 http header 的通用配置信息。

    在这里插入图片描述

    3.2 增加 http 接口测试

    3.2.1 增加线程组

    在这里插入图片描述

    3.2.2 增加 http 接口的访问

    在这里插入图片描述

    3.2.3 配置 http 请求的参数

    • jmeter 内置了很多函数,具体参考 https://jmeter.apache.org/usermanual/functions.html,此处使用 __Random,eg ${__Random(0,10)}

    在这里插入图片描述

    • 配置用户参数

      用此方法配置的用户参数为整个线程组均可以使用,如果想要配置仅 http 方法可以使用的用户参数,右侧点击 acquire 请求测试,增加配置元件 -> 用户定义的变量即可

    在这里插入图片描述

    • 配置 http post 的 body

    在这里插入图片描述

    • 增加接口返回值的断言

    在这里插入图片描述

    3.3 http body 参数读取写入

    根据前述的背景描述,笔者需要从 acquire 的响应 body 值中读取 token,然后将 token 作为参数给 start 请求使用。

    3.3.1 方案一

    不需要将 token 存储,直接在后续的请求中使用,添加一个正则表达式处理器。步骤为点击添加 -> 后置处理器 -> 正则表达式处理器

    在这里插入图片描述

    在 start 的 http 请求中,直接使用定义的变量 o_tokenName。

    在这里插入图片描述

    3.3.2 方案二

    方案二比较复杂,需要将 token 先写入文件,然后 start 的时候在从文件中读取。此方案的好处是方便用户后续排查问题

    • 需要增加 BeanShell 后置处理程序,将 token 写入文件

      在这里插入图片描述

      参考的写入文件脚本:

      FileWriter fstream = new FileWriter("/Users/ly/Desktop/acquire", true);
      BufferedWriter out = new BufferedWriter(fstream);
      out.write("${o_tokenName}"+"\n");
      out.close();
      fstream.close();
      
      • 1
      • 2
      • 3
      • 4
      • 5
    • 增加 CSV 文件设置,用于从文件中读取 token,参考的配置如下

    在这里插入图片描述

    3.4 结果分析

    Jmeter 提供了方便的结果分析功能,用户可以选择增加「察看结果树」和「聚合报告」

    3.4.1 察看结果树展示

    (ps: 思考,感觉这里的察,应该是汉化版本翻译有问题

    在这里插入图片描述

    3.4.2 聚合报告的展示

    在这里插入图片描述

    4. 碎碎念

    真是非常忙碌并且一步一个坑的一个月,即 PE 多配置了一个字符之后,笔者又踩了一个配置漏发两台机器的问题。哎,还好心脏强大一些,不然真原地爆炸了。

    • 所谓解放,就是我们不再依赖,也不再等待,我们可以独自去面对最苦最痛的人生。
    • 为什么非要活成世俗眼中所谓正常的样子,都是几十年,过完就没了。
    • 你凭什么认为有人会拉你一把,摔倒了不自己爬起来,等着别人去踩吗?

    5. 参考资料

    • mac系统下载、安装、使用Java8教程

    • Jmeter安装及入门教程(超详细)

    • meter中正则表达式提取器使用详解

    • 轻松搞定把jmeter结果数据写入到指定文件

    • jmeter使用之文件读取

  • 相关阅读:
    module ‘torch‘ has no attribute ‘_six‘问题解决
    第一百五十九回 SliverAppBar组件
    npm常用命令
    字符编码(idea)
    【数据一致性】redis缓存与DB保持一致_Redis02
    在这个夏季,Synthetix 异常强劲的背后是什么?
    Edexcel ALevel数学P2考题解析
    Win11 22000.1279(KB5019157)微软ISO镜像
    单片机ADC常见的几种滤波方法
    Java 中的集合框架有哪些主要接口?ArrayList 和 LinkedList 在使用场景上的不同是什么?
  • 原文地址:https://blog.csdn.net/phantom_111/article/details/125492155
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号