Jmeter中的定时器(二)

 5--JSR223 Timmer

功能特点

  • 自定义延迟逻辑:使用脚本语言动态计算请求之间的延迟时间。
  • 灵活控制:可以根据测试数据和条件动态调整延迟时间。
  • 支持多种脚本语言:支持 Groovy、JavaScript、BeanShell 等多种脚本语言。

支持的脚本语言

  • Groovy:推荐使用,性能优越且功能强大。
  • JavaScript:支持 ECMAScript 标准。
  • BeanShell:支持 Java 语法。
  • 其他语言:支持任何符合 JSR223 规范的脚本语言。

配置步骤

  1. 添加 JSR223 定时器

    • 右键点击需要添加定时器的请求或线程组。
    • 选择“添加” -> “定时器” -> “JSR223 定时器”。
  2. 配置 JSR223 定时器

    • 名称:给 JSR223 定时器一个有意义的名称。
    • 脚本语言:选择使用的脚本语言(例如 Groovy)。
    • 脚本文件:选择脚本文件路径(可选,如果脚本较长或需要版本控制)。
    • 脚本:直接在脚本编辑框中编写脚本。
    • 参数:定义脚本中使用的参数(可选)。

示例配置

假设我们需要测试一个Web应用,并在每个请求之间添加一个动态计算的延迟时间,延迟时间基于当前请求的响应时间。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:10(模拟10个用户)
      • 循环次数:10(每个用户发送10次请求)
      • 启动延迟:0(立即启动)
  3. 添加HTTP请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:请求名称(例如“获取用户列表”)。
      • 服务器名称或IP:目标服务器的地址(例如example.com)。
      • 端口号:目标服务器的端口(例如80)。
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 方法:请求的方法(例如GET)。
      • 路径:请求的路径(例如/api/users)。
  4. 添加 JSR223 定时器

    • 右键点击HTTP请求 -> 添加 -> 定时器 -> JSR223 定时器。
    • 配置 JSR223 定时器:
      • 名称:JSR223 定时器
      • 脚本语言:Groovy
      • 脚本:在脚本编辑框中编写以下 Groovy 脚本:
        // 获取上一个请求的响应时间
        int responseTime = prev.getTime()
        
        // 计算延迟时间,例如延迟时间为响应时间的一半
        int delay = responseTime / 2
        
        // 返回延迟时间(单位为毫秒)
        return delay
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。

优化建议

  1. 脚本语言选择

    • 推荐使用 Groovy,因为它性能优越且功能强大,是 JMeter 官方推荐的脚本语言。
  2. 脚本文件

    • 如果脚本较长或需要版本控制,可以将脚本保存到文件中,并在 JSR223 定时器中选择脚本文件路径。
  3. 参数

    • 如果脚本需要使用外部参数,可以在“参数”部分定义参数,并在脚本中引用这些参数。
  4. 性能影响

    • 注意复杂脚本可能会对测试性能产生影响,特别是在大规模性能测试中。可以通过优化脚本和减少不必要的操作来提高性能。
  5. 错误处理

    • 在脚本中添加适当的错误处理逻辑,确保脚本在遇到异常时能够优雅地处理。
  6. 日志记录

    • 使用日志记录功能可以帮助调试和分析脚本执行情况,确保日志文件路径有效且有足够的写权限。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望在每个请求之间添加一个动态计算的延迟时间,延迟时间基于当前请求的响应时间。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:10(模拟10个用户)
      • 循环次数:10(每个用户发送10次请求)
      • 启动延迟:0(立即启动)
  3. 添加HTTP请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:获取用户列表
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/api/users
  4. 添加 JSR223 定时器

    • 右键点击HTTP请求 -> 添加 -> 定时器 -> JSR223 定时器。
    • 配置 JSR223 定时器:
      • 名称:JSR223 定时器
      • 脚本语言:Groovy
      • 脚本:在脚本编辑框中编写以下 Groovy 脚本:
        // 获取上一个请求的响应时间
        int responseTime = prev.getTime()
        
        // 计算延迟时间,例如延迟时间为响应时间的一半
        int delay = responseTime / 2
        
        // 返回延迟时间(单位为毫秒)
        return delay
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。

 

2399a88ca6fc48039ef3eebff2ffbadf.png


6--Synchronizing Timer

功能特点

  • 并发控制:确保一组线程在同一时间点执行某个请求。
  • 灵活配置:可以设置等待的线程数和超时时间。
  • 适用于压力测试:特别适合需要模拟大量并发用户的场景。

配置步骤

  1. 添加同步定时器

    • 右键点击需要添加定时器的请求或线程组。
    • 选择“添加” -> “定时器” -> “同步定时器”(Synchronizing Timer)。
  2. 配置同步定时器

    • 名称:给同步定时器一个有意义的名称。
    • 数量的线程(用户):设置需要等待的线程数。
    • 超时(毫秒):设置等待的最大时间(可选)。

参数说明

  • 数量的线程(用户):设置需要等待的线程数。例如,如果设置为10,则需要等待10个线程都到达同步点后才会继续执行。
  • 超时(毫秒):设置等待的最大时间。如果在指定时间内没有达到设定的线程数,定时器将释放已等待的线程。如果不设置,定时器将无限期等待。

示例配置

假设我们需要测试一个Web应用,并确保每次有10个用户同时执行某个请求。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:20(模拟20个用户)
      • 循环次数:1(每个用户发送1次请求)
      • 启动延迟:0(立即启动)
  3. 添加HTTP请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:请求名称(例如“获取用户列表”)。
      • 服务器名称或IP:目标服务器的地址(例如example.com)。
      • 端口号:目标服务器的端口(例如80)。
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 方法:请求的方法(例如GET)。
      • 路径:请求的路径(例如/api/users)。
  4. 添加同步定时器

    • 右键点击HTTP请求 -> 添加 -> 定时器 -> 同步定时器。
    • 配置同步定时器:
      • 名称:同步定时器
      • 数量的线程(用户):10(每次等待10个线程)
      • 超时(毫秒):(可选)如果不设置,定时器将无限期等待
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。

优化建议

  1. 线程数设置

    • 根据实际需求设置合适的线程数。确保线程数足够大,以便能够达到所需的并发效果。
  2. 超时设置

    • 如果需要确保测试在一定时间内完成,可以设置超时时间。超时时间应根据系统响应时间和测试需求来设置。
  3. 放置位置

    • 同步定时器可以放在线程组级别或特定请求级别。放在线程组级别会影响该线程组中的所有请求,放在特定请求级别只影响该请求。
  4. 多请求场景

    • 如果有多个请求需要同步执行,可以为每个请求单独添加同步定时器,或者将多个请求放在一个线程组中,然后在该线程组中添加同步定时器。
  5. 性能影响

    • 同步定时器可能会对测试性能产生一定影响,特别是在大规模性能测试中。可以通过调整线程数和超时时间来优化性能。
  6. 组合使用

    • 同步定时器可以与其他定时器(如固定定时器、统一随机定时器等)组合使用,以实现更复杂的延迟策略。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望每次有10个用户同时执行某个请求。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:20(模拟20个用户)
      • 循环次数:1(每个用户发送1次请求)
      • 启动延迟:0(立即启动)
  3. 添加HTTP请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:获取用户列表
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/api/users
  4. 添加同步定时器

    • 右键点击HTTP请求 -> 添加 -> 定时器 -> 同步定时器。
    • 配置同步定时器:
      • 名称:同步定时器
      • 数量的线程(用户):10(每次等待10个线程)
      • 超时(毫秒):(可选)如果不设置,定时器将无限期等待
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。

8739ea621ad24a9ab9e7087164e4e6a0.png

 


7--泊松随机定时器

功能特点

  • 泊松分布:使用泊松分布生成随机延迟时间,使延迟时间更加自然和随机。
  • 灵活配置:可以设置平均延迟时间和偏差系数。
  • 适用于模拟真实用户行为:特别适合需要模拟真实用户行为的性能测试。

配置步骤

  1. 添加泊松随机定时器

    • 右键点击需要添加定时器的请求或线程组。
    • 选择“添加” -> “定时器” -> “泊松随机定时器”(Poisson Random Timer)。
  2. 配置泊松随机定时器

    • 名称:给泊松随机定时器一个有意义的名称。
    • 常量延迟偏移(毫秒):设置平均延迟时间。
    • 泊松分布的lambda值:设置泊松分布的λ值(Lambda值),控制随机延迟的分布。

参数说明

  • 常量延迟偏移(毫秒):设置平均延迟时间。这是泊松分布的期望值(平均值)。
  • 泊松分布的lambda值:设置泊松分布的λ值。λ值越大,随机延迟的波动范围越大。

示例配置

假设我们需要测试一个Web应用,并在每个请求之间添加基于泊松分布的随机延迟时间,平均延迟时间为2000毫秒(2秒)。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:10(模拟10个用户)
      • 循环次数:10(每个用户发送10次请求)
      • 启动延迟:0(立即启动)
  3. 添加HTTP请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:请求名称(例如“获取用户列表”)。
      • 服务器名称或IP:目标服务器的地址(例如example.com)。
      • 端口号:目标服务器的端口(例如80)。
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 方法:请求的方法(例如GET)。
      • 路径:请求的路径(例如/api/users)。
  4. 添加泊松随机定时器

    • 右键点击HTTP请求 -> 添加 -> 定时器 -> 泊松随机定时器。
    • 配置泊松随机定时器:
      • 名称:泊松随机定时器
      • 常量延迟偏移(毫秒):2000(平均延迟时间为2000毫秒)
      • 泊松分布的lambda值:1.0(λ值为1.0,表示标准泊松分布)
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。

优化建议

  1. 平均延迟时间

    • 根据实际需求设置合适的平均延迟时间。过短的延迟可能导致服务器过载,过长的延迟可能无法充分测试系统的性能。
  2. λ值设置

    • λ值控制随机延迟的分布。较大的λ值会导致更大的随机波动,较小的λ值会使延迟时间更集中于平均值。根据测试需求选择合适的λ值。
  3. 放置位置

    • 泊松随机定时器可以放在线程组级别或特定请求级别。放在线程组级别会影响该线程组中的所有请求,放在特定请求级别只影响该请求。
  4. 多请求场景

    • 如果有多个请求需要添加随机延迟,可以为每个请求单独添加泊松随机定时器,或者将多个请求放在一个线程组中,然后在该线程组中添加泊松随机定时器。
  5. 性能影响

    • 泊松随机定时器可能会对测试性能产生一定影响,特别是在大规模性能测试中。可以通过调整平均延迟时间和λ值来优化性能。
  6. 组合使用

    • 泊松随机定时器可以与其他定时器(如固定定时器、统一随机定时器等)组合使用,以实现更复杂的延迟策略。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望在每个请求之间添加基于泊松分布的随机延迟时间,平均延迟时间为2000毫秒。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:10(模拟10个用户)
      • 循环次数:10(每个用户发送10次请求)
      • 启动延迟:0(立即启动)
  3. 添加HTTP请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:获取用户列表
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/api/users
  4. 添加泊松随机定时器

    • 右键点击HTTP请求 -> 添加 -> 定时器 -> 泊松随机定时器。
    • 配置泊松随机定时器:
      • 名称:泊松随机定时器
      • 常量延迟偏移(毫秒):2000(平均延迟时间为2000毫秒)
      • 泊松分布的lambda值:1.0(λ值为1.0,表示标准泊松分布)
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。

a64a63618ab14f3894a4a82c485a128c.png

 


8--高斯随机定时器

功能特点

  • 高斯分布:使用高斯分布生成随机延迟时间,使延迟时间更加自然和随机。
  • 灵活配置:可以设置平均延迟时间和标准差。
  • 适用于模拟真实用户行为:特别适合需要模拟真实用户行为的性能测试。

配置步骤

  1. 添加高斯随机定时器

    • 右键点击需要添加定时器的请求或线程组。
    • 选择“添加” -> “定时器” -> “高斯随机定时器”(Gaussian Random Timer)。
  2. 配置高斯随机定时器

    • 名称:给高斯随机定时器一个有意义的名称。
    • 常量延迟偏移(毫秒):设置平均延迟时间。
    • 高斯随机偏移(毫秒):设置标准差,控制随机延迟的分布范围。

参数说明

  • 常量延迟偏移(毫秒):设置平均延迟时间。这是高斯分布的均值(μ)。
  • 高斯随机偏移(毫秒):设置标准差(σ),控制随机延迟的分布范围。标准差越大,随机延迟的波动范围越大。

示例配置

假设我们需要测试一个Web应用,并在每个请求之间添加基于高斯分布的随机延迟时间,平均延迟时间为2000毫秒(2秒),标准差为500毫秒。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:10(模拟10个用户)
      • 循环次数:10(每个用户发送10次请求)
      • 启动延迟:0(立即启动)
  3. 添加HTTP请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:请求名称(例如“获取用户列表”)。
      • 服务器名称或IP:目标服务器的地址(例如example.com)。
      • 端口号:目标服务器的端口(例如80)。
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 方法:请求的方法(例如GET)。
      • 路径:请求的路径(例如/api/users)。
  4. 添加高斯随机定时器

    • 右键点击HTTP请求 -> 添加 -> 定时器 -> 高斯随机定时器。
    • 配置高斯随机定时器:
      • 名称:高斯随机定时器
      • 常量延迟偏移(毫秒):2000(平均延迟时间为2000毫秒)
      • 高斯随机偏移(毫秒):500(标准差为500毫秒)
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。

优化建议

  1. 平均延迟时间

    • 根据实际需求设置合适的平均延迟时间。过短的延迟可能导致服务器过载,过长的延迟可能无法充分测试系统的性能。
  2. 标准差设置

    • 标准差控制随机延迟的分布范围。较大的标准差会导致更大的随机波动,较小的标准差会使延迟时间更集中于平均值。根据测试需求选择合适的标准差。
  3. 放置位置

    • 高斯随机定时器可以放在线程组级别或特定请求级别。放在线程组级别会影响该线程组中的所有请求,放在特定请求级别只影响该请求。
  4. 多请求场景

    • 如果有多个请求需要添加随机延迟,可以为每个请求单独添加高斯随机定时器,或者将多个请求放在一个线程组中,然后在该线程组中添加高斯随机定时器。
  5. 性能影响

    • 高斯随机定时器可能会对测试性能产生一定影响,特别是在大规模性能测试中。可以通过调整平均延迟时间和标准差来优化性能。
  6. 组合使用

    • 高斯随机定时器可以与其他定时器(如固定定时器、统一随机定时器等)组合使用,以实现更复杂的延迟策略。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望在每个请求之间添加基于高斯分布的随机延迟时间,平均延迟时间为2000毫秒,标准差为500毫秒。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:10(模拟10个用户)
      • 循环次数:10(每个用户发送10次请求)
      • 启动延迟:0(立即启动)
  3. 添加HTTP请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:获取用户列表
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/api/users
  4. 添加高斯随机定时器

    • 右键点击HTTP请求 -> 添加 -> 定时器 -> 高斯随机定时器。
    • 配置高斯随机定时器:
      • 名称:高斯随机定时器
      • 常量延迟偏移(毫秒):2000(平均延迟时间为2000毫秒)
      • 高斯随机偏移(毫秒):500(标准差为500毫秒)
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。

 

dcf9804bcfeb43998bec6e9b753a07a3.png

 


9--BeanShell Timer

功能特点

  • 自定义延迟逻辑:使用 BeanShell 脚本动态计算请求之间的延迟时间。
  • 灵活控制:可以根据测试数据和条件动态调整延迟时间。
  • 支持 BeanShell 脚本:支持使用 BeanShell 脚本语言编写延迟逻辑。

配置步骤

  1. 添加 BeanShell 定时器

    • 右键点击需要添加定时器的请求或线程组。
    • 选择“添加” -> “定时器” -> “BeanShell 定时器”。
  2. 配置 BeanShell 定时器

    • 名称:给 BeanShell 定时器一个有意义的名称。
    • 文件:选择脚本文件路径(可选,如果脚本较长或需要版本控制)。
    • 脚本:直接在脚本编辑框中编写脚本。
    • 参数:定义脚本中使用的参数(可选)。

示例配置

假设我们需要测试一个Web应用,并在每个请求之间添加一个动态计算的延迟时间,延迟时间基于当前请求的响应时间。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:10(模拟10个用户)
      • 循环次数:10(每个用户发送10次请求)
      • 启动延迟:0(立即启动)
  3. 添加HTTP请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:请求名称(例如“获取用户列表”)。
      • 服务器名称或IP:目标服务器的地址(例如example.com)。
      • 端口号:目标服务器的端口(例如80)。
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 方法:请求的方法(例如GET)。
      • 路径:请求的路径(例如/api/users)。
  4. 添加 BeanShell 定时器

    • 右键点击HTTP请求 -> 添加 -> 定时器 -> BeanShell 定时器。
    • 配置 BeanShell 定时器:
      • 名称:BeanShell 定时器
      • 脚本:在脚本编辑框中编写以下 BeanShell 脚本:
        // 获取上一个请求的响应时间
        int responseTime = prev.getTime();
        
        // 计算延迟时间,例如延迟时间为响应时间的一半
        int delay = responseTime / 2;
        
        // 返回延迟时间(单位为毫秒)
        return delay;
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。

优化建议

  1. 脚本语言选择

    • 虽然 BeanShell 是一个强大的脚本语言,但 Groovy 通常性能更好且功能更强大。如果可能,建议使用 Groovy 脚本。
  2. 脚本文件

    • 如果脚本较长或需要版本控制,可以将脚本保存到文件中,并在 BeanShell 定时器中选择脚本文件路径。
  3. 参数

    • 如果脚本需要使用外部参数,可以在“参数”部分定义参数,并在脚本中引用这些参数。
  4. 性能影响

    • 注意复杂脚本可能会对测试性能产生影响,特别是在大规模性能测试中。可以通过优化脚本和减少不必要的操作来提高性能。
  5. 错误处理

    • 在脚本中添加适当的错误处理逻辑,确保脚本在遇到异常时能够优雅地处理。
  6. 日志记录

    • 使用日志记录功能可以帮助调试和分析脚本执行情况,确保日志文件路径有效且有足够的写权限。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望在每个请求之间添加一个动态计算的延迟时间,延迟时间基于当前请求的响应时间。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:10(模拟10个用户)
      • 循环次数:10(每个用户发送10次请求)
      • 启动延迟:0(立即启动)
  3. 添加HTTP请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:获取用户列表
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/api/users
  4. 添加 BeanShell 定时器

    • 右键点击HTTP请求 -> 添加 -> 定时器 -> BeanShell 定时器。
    • 配置 BeanShell 定时器:
      • 名称:BeanShell 定时器
      • 脚本:在脚本编辑框中编写以下 BeanShell 脚本:
        // 获取上一个请求的响应时间
        int responseTime = prev.getTime();
        
        // 计算延迟时间,例如延迟时间为响应时间的一半
        int delay = responseTime / 2;
        
        // 返回延迟时间(单位为毫秒)
        return delay;
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。

 

ef834f267bcb47898c1cc79e8cd5af59.png


 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/915859.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Istio】Istio原理

第一章 Istio原理 一、服务网格(servicemesh)1、六个时代2、服务网格定义及优缺点二、Istio1、Istio定义2、Istio安装3、Istio架构1.5版本之前1.5版本之后4、bookinfo案例架构部署5、CRD一、服务网格(servicemesh) 微服务:架构风格,职责单一,api通信 服务网格:微服务时代的…

4.远程访问及控制

SSH 简介: SSH(Secure Shell)协议是一种安全通道协议,对通信数据进行了加密处理,用于远程管理。 OpenSSH简介 OpenSSH 服务名称:sshd 服务端主程序:/usr/sbin/sshd 服务端配置文件&#xf…

精通rust宏系列教程-入门篇

Rust最令人敬畏和强大的特性之一是它使用和创建宏的能力。不幸的是,用于创建宏的语法可能相当令人生畏,并且对于新开发人员来说,这些示例可能会令人不知所措。我向你保证Rust宏非常容易理解,本文将为你介绍如何创建自己的宏。 什么…

设计模式之装饰器模式(SSO单点登录功能扩展,增加拦截用户访问方法范围场景)

前言: 两个本想描述一样的意思的词,只因一字只差就让人觉得一个是好牛,一个好搞笑。往往我们去开发编程写代码时也经常将一些不恰当的用法用于业务需求实现中,但却不能意识到。一方面是由于编码不多缺少较大型项目的实践&#xff…

kubernetes简单入门实战

本章将介绍如何在kubernetes集群中部署一个nginx服务,并且能够对其访问 Namespace Namespace是k8s系统中一个非常重要的资源,它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离。 默认情况下,k8s集群中的所有的Pod都是可以相…

webpack5 + vue3 从零配置项目

前言 虽然在实际项目当中很少会从 0 到 1 配置一个项目,毕竟很多重复工作是没有必要的,脚手架将这些重复性的工作进行了整合,方便开发者使用。也正因如此,导致部分开发者过于依赖脚手架,却不清楚其内部的实现流程&…

Linux git-bash配置

参考资料 命令提示符Windows下的Git Bash配置,提升你的终端操作体验WindowsTerminal添加git-bash 目录 一. git-bash配置1.1 解决中文乱码1.2 修改命令提示符 二. WindowsTerminal配置git-bash2.1 添加git-bash到WindowsTerminal2.2 解决删除时窗口闪烁问题 三. VS…

(RK3566驱动开发 - 1).pinctrl和gpio子系统

一.设备树 pinctrl部分可以参考 rockchip 官方的绑定文档 :kernel/Documentation/devicetree/bindings/pinctrl PIN_BANK:引脚所属的组 - 本次例程使用的是 GPIO3_A1 这个引脚,所以所属的组为 3; PIN_BANK_IDX:引脚的…

基于OpenFOAM和深度学习驱动的流体力学计算与应用

在深度学习与流体力学深度融合的背景下,科研边界不断拓展,创新成果层出不穷。从物理模型融合到复杂流动模拟,从数据驱动研究到流场智能分析,深度学习正以前所未有的力量重塑流体力学领域。近期在Nature和Science杂志上发表的深度学…

uniapp设置tabBar高斯模糊并设置tabBar高度占位

1、设置tabBar高斯模糊 2、设置tabBar高度占位 (1)需要先在App.vue中获取一下 uni.getSystemInfoSync().windowBottom; //返回值是tabBar的高度(2)在全局样式文件/uview-ui/libs/css/style.vue.scss中定义一个全局样式 3、在需…

嵌入式Linux输入系统应用编程学习总结

嵌入式Linux输入系统应用编程学习总结 目录 嵌入式Linux输入系统应用编程学习总结1. 嵌入式Linux输入系统介绍2. Linux设备输入数据的几个结构体2.1 内核中表示一个输入设备的结构体2.2 APP从输入设备获取的数据类型结构体 3. 查看LCD设备信息和输入数据3.1 查看设备信息3.2 使…

力扣=Mysql-3322- 英超积分榜排名 III(中等)

一、题目来源 3322. 英超积分榜排名 III - 力扣(LeetCode) 二、数据表结构 表:SeasonStats --------------------------- | Column Name | Type | --------------------------- | season_id | int | | team_id …

HTML之列表学习记录

练习题&#xff1a; 图所示为一个问卷调查网页&#xff0c;请制作出来。要求&#xff1a;大标题用h1标签&#xff1b;小题目用h3标签&#xff1b;前两个问题使用有序列表&#xff1b;最后一个问题使用无序列表。 代码&#xff1a; <!DOCTYPE html> <html> <he…

【ElasticSearch】定位分片不分配

记录遇到的es集群分片不分配的情况--待补全 定位分片不分配的原因 定位分片不分配的原因 在shell客户端执行如下的语句&#xff1a; curl -X GET "http://192.168.0.209:9200/_cat/shards?v&hindex,shard,prirep,state,unassigned.reason"集群中各分片的状态都…

10款PDF合并工具讲解与推荐!!!

在现在的大环境下&#xff0c;PDF文件因其跨平台、格式固定等优势&#xff0c;成为了我们工作和学习中不可或缺的一部分。是最常用的文档格式之一。然而&#xff0c;面对多个PDF文件需要合并成一个的场景&#xff0c;如何选择一款高效、易用的PDF合并工具就显得尤为重要。今天&…

「QT」窗口类 之 QWidget 窗口基类

✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「QT」QT5程序设计&#x1f4da;全部专栏「Win」Windows程序设计「IDE」集成开发环境「UG/NX」BlockUI集合「C/C」C/C程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「UG/NX」NX定制…

【机器学习】如何配置anaconda环境(无脑版)

马上就要上机器学习的实验&#xff0c;这里想写一下我配置机器学习的anaconda环境的二三事 一、首先&#xff0c;下载安装包&#xff1a; Download Now | Anaconda 二、打开安装包&#xff0c;一直点NEXT进行安装 这里要记住你要下载安装的路径在哪&#xff0c;后续配置环境…

【3D Slicer】的小白入门使用指南四

开源解剖影像浏览工具Open Anatomy Browser使用及介绍 和3D slicer米有太大关系,该工具是网页版影像数据的浏览工具(可以简单理解为网页版的3D slicer) 介绍 ● 开放解剖(OA)浏览器是由神经影像分析中心开发的,基于网络浏览器技术构建的图谱查看器。 ● OA浏览器将解剖模…

Unity使用PS合并贴图

前言 使用PBR渲染&#xff0c;金属工作流时&#xff0c;默认使用一个金属度贴图&#xff0c;其中r通道保存金属度&#xff0c;a通道保存光滑度&#xff0c;g通道和b通道没使用&#xff1b; 我们很可能使用Occlusion Map&#xff0c;使用其中的g通道保存Occlusion 信息。单独使用…

Linux中.NET读取excel组件,不会出现The type initializer for ‘Gdip‘ threw an exception异常

组件&#xff0c;可通过nuget安装&#xff0c;直接搜名字&#xff1a; ExcelDataReader using ConsoleAppReadFileData.Model; using ExcelDataReader; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Task…