JMeter进行API服务的压力测试

文章目录

  • 前言
  • 一、准备工作
    • 1.安装jmeter
    • 2.安装java环境
  • 二、JMeter使用样例
    • 1.运行JMeter
    • 2.创建调用流程
      • 1.背景阐述:
      • 2.JMeter模拟调用
          • 1.添加线程组:
          • 2.请求设置
          • 3.创建请求流程
          • 4.响应时长展示
          • 5.监控服务器CPU,MEM,I/O等


前言

本文用于记录并分享使用jmeter进行简单的压力测试的基本流程,主要囊括范围:假定API已构建,从我们用jmeter模拟用户的调用行为,到并发持续测试,最后记录并汇总响应时间,服务器资源使用情况等。


一、准备工作

1.安装jmeter

JMeter是Apache旗下的基于Java环境的用于对WEB服务进行压力测试的交互式工具,无需写代码,只需用JMeter内置的组件进行配置就能模拟用户的WEB调用请求并记录响应结果。

官网安装路径:Apache JMeter 5.5 (Requires Java 8+)

2.安装java环境

JMeter5.5建议搭配jave8使用,本文中压测的全流程不涉及开发工作,因此仅安装JRE即可,具体安装流程此处不做阐述,在命令行中输入 java -version能显示版本信息即可以继续后续步骤。

二、JMeter使用样例

1.运行JMeter

解压下载的JMeter包,打开bin目录下的jmeter.bat,看到一个类似下图的界面就可以开始测试流程了:
JMeter进行API服务的压力测试_第1张图片

2.创建调用流程

1.背景阐述:

  1. 用户通过GET请求调用服务器计算资源,同时要传递给服务器算法的输入数据;服务收到请求后会异步启动算力并返回一个UUID作为该计算任务的唯一标识符;用户收到计算任务的UUID,就能确认计算资源申请成功
  2. 一段时间之后,用户将该UUID作为参数再向服务器发送另一个请求,用以获取算法的运行结果;服务器收到用户获取结果的请求后,根据算法的运行情况,返回成功,失败,或运行中;用户收到结果成功或失败则为一次算法调用流程完成,收到运行中则循环发送获取运行结果的请求直到运行结束

2.JMeter模拟调用

1.添加线程组:

JMeter进行API服务的压力测试_第2张图片
点击Thread Group,里面有些参数需要设置:

  • 遇到错误要执行的操作
  • Number of Threads,并发数
  • Pamp-up period,并发发生在几秒时间内
  • Loop Count:整个流程重复次数
2.请求设置

JMeter进行API服务的压力测试_第3张图片
HTTP Request Defaults用于设置默认服务器IP,端口,参数等
HTTP Header Manager用于管理请求头
HTTP Authorization Manager给请求添加身份验证

3.创建请求流程

按照之前提及的调用全流程,添加一个HTTP Requst,设置URL及参数(本案中采用Files Upload,作为算法输入)。之后再添加Post Processor - JSON Extractor用于提取任务的UUID:
JMeter进行API服务的压力测试_第4张图片
JMeter进行API服务的压力测试_第5张图片
在构建一个Logic Controller - While Controller,实现运行没结束循环请求直到返回计算成功或失败。
JMeter进行API服务的压力测试_第6张图片

4.响应时长展示

常用Aggregate,Vew Results Tree,Vew Results in Table
JMeter进行API服务的压力测试_第7张图片

5.监控服务器CPU,MEM,I/O等

需要在测试节点机上安装插件,同时在服务器上下载并启动相应的服务才能实现。
下载 jmeter插件管理包plugins-manager.jar,并移动到 jmeter lib/ext目录下,重启JMeter,可以看到Options下多了一个叫Plugs Manager的选项
JMeter进行API服务的压力测试_第8张图片
在里面安装监控服务器资源需要的插件,在Available Plugins里搜“Per”,勾选“PerfMon”,并点击Apply Changes and Restart JMeter。

在服务器端安装Agent 参考,需要有Java环境

你可能感兴趣的:(压力测试)