JMeter API 并发性能测试计划JMX文件解析

我们有一个JMX文件,它定义了一个JMeter测试计划。

1. 测试计划名称:

API 并发性能测试 https://zhengkai.blog.csdn.net/

2. 注释:

模拟N个API的1分钟并发测试

3. 用户定义的变量:

base_url = https://your-api-domain.com(但后面被覆盖为http://localhost:1234/generator/)

线程组配置:

- 线程组名称:API 并发线程组

- 线程数(用户数):20

- 启动时间(Ramp-up period):10秒

- 持续时间:30秒

- 循环次数:1(因为设置了持续时间,所以会忽略循环次数,一直运行直到30秒结束)

- 遇到错误后的操作:继续

测试结构:

1. 随机控制器(Random Controller):

包含两个HTTP请求,会随机执行其中一个。

1.1 第一个HTTP请求:template/all

- 方法:POST

- 路径:/generator/template/all

- 请求体:{"id":1234}

- 请求头:Content-Type: application/json

1.2 第二个HTTP请求:code/generate

- 方法:POST

- 路径:/generator/code/generate

- 请求体:一个复杂的JSON对象,包含表SQL和生成代码的选项

2. 监听器(结果收集器):

- 聚合报告(StatVisualizer)

- 汇总图(StatGraphVisualizer)

- 响应时间图(RespTimeGraphVisualizer)

- 查看结果树(ViewResultsFullVisualizer)-> 结果输出到D:\Workspace\result.csv

- 用表格查看结果(TableVisualizer)

注意:在测试计划最后,用户定义的变量被重新定义为:base_url = http://localhost:1234/generator/(覆盖了前面的定义)

如何运行:

1. 确保JMeter已安装(建议5.6.3或更高版本)

2. 打开这个JMX文件

3. 检查线程组设置(线程数、持续时间等)是否符合预期

4. 检查HTTP请求中的目标地址和端口(目前是localhost:1234)是否指向正确的测试环境

5. 如果需要修改请求参数,可以编辑对应的HTTP请求

6. 点击运行按钮(绿色三角形)开始测试

查看结果:

1. 聚合报告:提供每个请求的统计信息(平均响应时间、中位数、90%百分位、最小/最大响应时间、错误率、吞吐量等)

2. 汇总图:显示测试过程中每秒事务数(TPS)的变化

3. 响应时间图:显示每个请求的响应时间随时间的变化

4. 查看结果树:可以查看每个请求的详细请求和响应信息(注意:这个监听器会消耗大量内存,不建议在长时间高并发测试中使用,但这里配置了输出到CSV文件,可以离线查看)

5. 表格结果:以表格形式展示每个样本的结果

技术分析:

1. 测试目标:评估两个API接口在20个并发用户持续30秒的压力下的性能表现。

2. 测试设计:

- 使用随机控制器模拟用户随机调用两个API的情况。

- 每个HTTP请求都使用POST方法发送JSON数据。

- 每个请求都设置了正确的Content-Type头。

JMX查看

JMeter API 并发性能测试计划JMX文件解析_第1张图片



  
    
      模拟10个API的1分钟并发测试
      
        
          
            base_url
            https://your-api-domain.com
            =
          
        
      
    
    
      
        20
        10
        30
        0
        true
        true
        continue
        
          1
          false
        
      
      
        
          1
        
        
          
            localhost
            1234
            http
            utf-8
            /generator/template/all
            true
            POST
            true
            
              
                
                  false
                  {"id":1234}
                  =
                
              
            
          
          
            
              
                
                  Content-Type
                  application/json
                
              
            
            
          
          
            localhost
            1234
            http
            utf-8
            /generator/code/generate
            true
            POST
            true
            
              
                
                  false
                  {"tableSql":"CREATE TABLE 'sys_user_info' (\n  'user_id' int(11) NOT NULL AUTO_INCREMENT COMMENT '用户编号',\n  'user_name' varchar(255) NOT NULL COMMENT '用户名',\n  'status' tinyint(1) NOT NULL COMMENT '状态',\n  'create_time' datetime NOT NULL COMMENT '创建时间',\n  PRIMARY KEY ('user_id')\n) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户信息'","options":{"dataType":"sql","authorName":"zhengkai.blog.csdn.net","packageName":"com.software.system","returnUtilSuccess":"ResponseUtil.success","returnUtilFailure":"ResponseUtil.error","isPackageType":true,"isSwagger":false,"isAutoImport":false,"isWithPackage":false,"isComment":true,"isLombok":true,"ignorePrefix":"sys_","tinyintTransType":"int","nameCaseType":"CamelCase","timeTransType":"Date"}}
                  =
                
              
            
          
          
            
              
                
                  Content-Type
                  application/json
                
              
            
            
          
        
        
          false
          
            saveConfig
            
              
              true
              true
              true
              
              true
              true
              true
              true
              false
              true
              true
              false
              false
              false
              true
              false
              false
              false
              true
              0
              true
              true
              true
              true
              true
              true
            
          
          
        
        
        
          false
          
            saveConfig
            
              
              true
              true
              true
              
              true
              true
              true
              true
              false
              true
              true
              false
              false
              false
              true
              false
              false
              false
              true
              0
              true
              true
              true
              true
              true
              true
            
          
          
        
        
        
          false
          
            saveConfig
            
              
              true
              true
              true
              
              true
              true
              true
              true
              false
              true
              true
              false
              false
              false
              true
              false
              false
              false
              true
              0
              true
              true
              true
              true
              true
              true
            
          
          
        
        
        
          false
          
            saveConfig
            
              
              true
              true
              true
              
              true
              true
              true
              true
              false
              true
              true
              false
              false
              false
              true
              false
              false
              false
              true
              0
              true
              true
              true
              true
              true
              true
            
          
          D:\Workspace\result.csv
        
        
        
          false
          
            saveConfig
            
              
              true
              true
              true
              
              true
              true
              true
              true
              false
              true
              true
              false
              false
              false
              true
              false
              false
              false
              true
              0
              true
              true
              true
              true
              true
              true
            
          
          
        
        
      
      
        
          
            base_url
            http://localhost:1234/generator/
            =
          
        
      
      
    
  

你可能感兴趣的:(杂谈,jmeter)