Jmeter 入门使用

131 阅读3分钟

1. 写在最前面

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

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

2. Jmeter 安装

Jmeter 下载地址 dlcdn.apache.org//jmeter/bin…,笔者当时下载的是 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 界面

初始化.png

注: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 请求的基本信息

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

http 基本信息.png

3.1.1 增加 HTTP 请求的默认值

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

http 默认值.png

3.1.2 增加 HTTP 信息头管理器

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

http信息头管理器.png

3.2 增加 http 接口测试

3.2.1 增加线程组

线程组.png

3.2.2 增加 http 接口的访问

http 接口访问.png

3.2.3 配置 http 请求的参数

Random.png

  • 配置用户参数

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

用户定义的变量.png

  • 配置 http post 的 body

http body.png

  • 增加接口返回值的断言

响应断言.png

3.3 http body 参数读取写入

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

3.3.1 方案一

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

正则表达式处理器.png

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

start 变量展示.png

3.3.2 方案二

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

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

写入文件费.png

参考的写入文件脚本:

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

csv 数据文件设置.png

3.4 结果分析

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

3.4.1 察看结果树展示

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

结果树.png

3.4.2 聚合报告的展示

聚合报告.png

4. 碎碎念

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

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

5. 参考资料

\