Jmeter中的前置处理器

news2024/11/28 20:18:50

 5)前置处理器

353d01fabe76421da9f3182966b67e39.png

1--JSR223 PreProcessor

功能特点

  • 自定义数据处理:使用脚本语言处理请求数据,实现高度定制化的数据处理和生成。
  • 动态数据生成:在请求发送前生成动态数据,如随机数、时间戳等。
  • 变量设置:设置和修改 JMeter 变量,以便在后续请求中使用。
  • 逻辑控制:根据特定条件控制请求的执行流程。

支持的脚本语言

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

配置步骤

  1. 添加 JSR223 PreProcessor

    • 右键点击需要处理的请求(HTTP请求或其他取样器)。
    • 选择“添加” -> “预处理器” -> “JSR223 PreProcessor”。
  2. 配置 JSR223 PreProcessor

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

示例配置

假设我们需要在发送请求之前生成一个随机数,并将其作为请求参数传递。

  1. 创建测试计划

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

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
  3. 添加HTTP请求

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

    • 右键点击HTTP请求 -> 添加 -> 预处理器 -> JSR223 PreProcessor。
    • 配置 JSR223 PreProcessor:
      • 名称:生成随机数
      • 脚本语言:Groovy
      • 脚本:在脚本编辑框中编写以下 Groovy 脚本:
         
        import java.util.Random
        
        // 生成一个随机数
        Random random = new Random()
        int randomNumber = random.nextInt(1000)
        
        // 将随机数设置为 JMeter 变量
        vars.put("randomNumber", randomNumber.toString())
        
        // 打印随机数到 JMeter 日志
        log.info("Generated random number: " + randomNumber)
  5. 使用生成的随机数

    • 返回到HTTP请求配置,添加生成的随机数作为请求参数。
    • 在“参数”部分添加:
      • 名称:random
      • ${randomNumber}
  6. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
  7. 查看日志

    • 查看 JMeter 日志文件(通常位于 JMeter 安装目录的 jmeter.log 文件中),确认随机数已成功生成并打印。

优化建议

  1. 脚本语言选择

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

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

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

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

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

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

 

4448524e70b14ffda2e5a172bcb53466.png


2--用户参数

功能特点

  • 动态参数设置:为不同的虚拟用户设置不同的参数值。
  • 灵活管理:可以方便地管理和修改参数值。
  • 适用于多用户测试:特别适合需要模拟多个用户的不同行为的测试场景。

配置步骤

  1. 添加用户参数预处理器

    • 右键点击需要添加预处理器的请求或线程组。
    • 选择“添加” -> “预处理器” -> “用户参数”(User Parameters)。
  2. 配置用户参数预处理器

    • 名称:给用户参数预处理器一个有意义的名称。
    • 参数名称:设置参数的名称。
    • 参数值:为每个虚拟用户设置参数值。
    • 线程号:指定参数值对应的虚拟用户编号。

参数说明

  • 参数名称:设置参数的名称,可以在后续的请求中引用这些参数。
  • 参数值:为每个虚拟用户设置参数值,每个虚拟用户对应一行。
  • 线程号:指定参数值对应的虚拟用户编号。线程号从1开始,对应线程组中的每个虚拟用户。

示例配置

假设我们需要测试一个Web应用,并为每个虚拟用户设置不同的用户名和密码。

  1. 创建测试计划

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

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

    • 右键点击线程组 -> 添加 -> 预处理器 -> 用户参数。
    • 配置用户参数预处理器:
      • 名称:用户参数
      • 参数名称
        • 用户名:username
        • 密码:password
      • 参数值
        • 用户名
          • 线程1:user1
          • 线程2:user2
          • 线程3:user3
        • 密码
          • 线程1:pass1
          • 线程2:pass2
          • 线程3:pass3
  4. 添加HTTP请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:登录请求
      • 服务器名称或IP:目标服务器的地址(例如example.com)。
      • 端口号:目标服务器的端口(例如80)。
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 方法:POST
      • 路径:请求的路径(例如/login)。
      • 参数
        • 名称:username
        • :${username}
        • 名称:password
        • :${password}
  5. 运行测试

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

优化建议

  1. 参数命名

    • 确保参数名称有意义且易于理解,便于在后续请求中引用。
  2. 参数值管理

    • 如果参数值较多或需要频繁修改,可以考虑将参数值存储在外部文件中,并在测试计划中引用这些文件。
  3. 多参数场景

    • 如果有多个参数需要设置,可以在用户参数预处理器中添加多个参数名称和对应的参数值。
  4. 组合使用

    • 用户参数预处理器可以与其他预处理器(如JSR223预处理器)和定时器组合使用,以实现更复杂的测试逻辑。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望为每个虚拟用户设置不同的用户名和密码。

  1. 创建测试计划

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

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

    • 右键点击线程组 -> 添加 -> 预处理器 -> 用户参数。
    • 配置用户参数预处理器:
      • 名称:用户参数
      • 参数名称
        • 用户名:username
        • 密码:password
      • 参数值
        • 用户名
          • 线程1:user1
          • 线程2:user2
          • 线程3:user3
        • 密码
          • 线程1:pass1
          • 线程2:pass2
          • 线程3:pass3
  4. 添加HTTP请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:登录请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:POST
      • 路径:/login
      • 参数
        • 名称:username
        • :${username}
        • 名称:password
        • :${password}
  5. 运行测试

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

 

2d813526261f4f68b165941f99d39501.png


3--HTML链接解析器

功能特点

  • 自动提取链接:从HTML响应中自动提取链接。
  • 动态参数传递:将提取的链接作为参数传递给后续的请求。
  • 支持多种链接类型:支持提取各种类型的链接,包括URL、图像、CSS文件等。
  • 适用于自动化测试:特别适合需要自动化测试页面中所有链接的场景。

配置步骤

  1. 添加HTML链接解析器

    • 右键点击需要添加预处理器的请求或线程组。
    • 选择“添加” -> “预处理器” -> “HTML 链接解析器”(HTML Link Parser)。
  2. 配置HTML链接解析器

    • 名称:给HTML链接解析器一个有意义的名称。
    • 要解析的响应:选择要解析的响应类型(例如,从上一个请求的响应中解析)。
    • 要解析的链接类型:选择要提取的链接类型(例如,URL、图像、CSS文件等)。
    • 输出变量名:设置提取的链接存储的变量名。
    • 匹配数字:设置要提取的链接数量(例如,提取前10个链接)。

参数说明

  • 名称:给HTML链接解析器一个有意义的名称。
  • 要解析的响应:选择要解析的响应类型,通常选择“从上一个请求的响应中解析”。
  • 要解析的链接类型:选择要提取的链接类型,例如:
    • URL:提取页面中的URL链接。
    • 图像:提取页面中的图像链接。
    • CSS文件:提取页面中的CSS文件链接。
    • JavaScript文件:提取页面中的JavaScript文件链接。
  • 输出变量名:设置提取的链接存储的变量名,可以在后续请求中引用这些变量。
  • 匹配数字:设置要提取的链接数量,例如,提取前10个链接。

示例配置

假设我们需要测试一个Web应用,并从页面中提取所有URL链接,然后对这些链接进行进一步的请求。

  1. 创建测试计划

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

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

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:首页请求
      • 服务器名称或IP:目标服务器的地址(例如example.com)。
      • 端口号:目标服务器的端口(例如80)。
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 方法:GET
      • 路径:请求的路径(例如/)。
  4. 添加HTML链接解析器

    • 右键点击首页请求 -> 添加 -> 预处理器 -> HTML链接解析器。
    • 配置HTML链接解析器:
      • 名称:HTML链接解析器
      • 要解析的响应:从上一个请求的响应中解析
      • 要解析的链接类型:URL
      • 输出变量名:url_links
      • 匹配数字:-1(提取所有链接)
  5. 添加后续HTTP请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:链接请求
      • 服务器名称或IP:{__V(url_links_{__intSum(${__counter(true,)},1,)})}
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/
  6. 运行测试

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

优化建议

  1. 链接类型选择

    • 根据实际需求选择要提取的链接类型。如果只需要提取URL链接,可以选择“URL”;如果需要提取图像链接,可以选择“图像”。
  2. 输出变量名

    • 确保输出变量名有意义且易于理解,便于在后续请求中引用。
  3. 匹配数量

    • 如果需要提取所有链接,可以设置匹配数量为-1。如果只需要提取部分链接,可以设置具体的数量。
  4. 动态引用链接

    • 使用JMeter函数(如__V__counter等)动态引用提取的链接,确保每个请求都能正确地使用提取的链接。
  5. 错误处理

    • 在测试计划中添加断言和监听器,确保提取的链接和后续请求的正确性。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和两个HTTP请求,并希望从首页请求中提取所有URL链接,然后对这些链接进行进一步的请求。

  1. 创建测试计划

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

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

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:首页请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/
  4. 添加HTML链接解析器

    • 右键点击首页请求 -> 添加 -> 预处理器 -> HTML链接解析器。
    • 配置HTML链接解析器:
      • 名称:HTML链接解析器
      • 要解析的响应:从上一个请求的响应中解析
      • 要解析的链接类型:URL
      • 输出变量名:url_links
      • 匹配数字:-1(提取所有链接)
  5. 添加后续HTTP请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:链接请求
      • 服务器名称或IP:{__V(url_links_{__intSum(${__counter(true,)},1,)})}
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/
  6. 运行测试

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

d4f3f10a248047208ac06f30d059d3af.png

 


4--HTTP URL 重写修饰符

功能特点

  • 会话管理:将会话标识符嵌入到URL中,确保服务器能够正确识别和管理会话。
  • 动态参数传递:动态修改HTTP请求的URL,传递必要的会话信息。
  • 适用于会话跟踪:特别适合需要会话跟踪和状态管理的测试场景。

配置步骤

  1. 添加HTTP URL重写修饰符

    • 右键点击需要添加预处理器的请求或线程组。
    • 选择“添加” -> “预处理器” -> “HTTP URL 重写修饰符”(HTTP URL Rewriting Modifier)。
  2. 配置HTTP URL重写修饰符

    • 名称:给HTTP URL重写修饰符一个有意义的名称。
    • 参数名称:设置会话标识符的名称(例如JSESSIONID)。
    • 参数值:设置会话标识符的值(可以是静态值或动态变量)。
    • 检查响应头:选择是否从响应头中提取会话标识符。
    • 检查响应数据:选择是否从响应数据中提取会话标识符。
    • 检查Cookie:选择是否从Cookie中提取会话标识符。

参数说明

  • 名称:给HTTP URL重写修饰符一个有意义的名称。
  • 参数名称:设置会话标识符的名称,通常是服务器生成的会话标识符名称(例如JSESSIONID)。
  • 参数值:设置会话标识符的值,可以是静态值或动态变量(例如${session_id})。
  • 检查响应头:选择是否从响应头中提取会话标识符,默认值为“否”。
  • 检查响应数据:选择是否从响应数据中提取会话标识符,默认值为“否”。
  • 检查Cookie:选择是否从Cookie中提取会话标识符,默认值为“否”。

示例配置

假设我们需要测试一个Web应用,并确保每个请求都包含会话标识符(例如JSESSIONID),以便服务器能够正确识别和管理会话。

  1. 创建测试计划

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

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

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:首页请求
      • 服务器名称或IP:目标服务器的地址(例如example.com)。
      • 端口号:目标服务器的端口(例如80)。
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 方法:GET
      • 路径:请求的路径(例如/)。
  4. 添加HTTP URL重写修饰符

    • 右键点击首页请求 -> 添加 -> 预处理器 -> HTTP URL 重写修饰符。
    • 配置HTTP URL重写修饰符:
      • 名称:HTTP URL重写修饰符
      • 参数名称:JSESSIONID
      • 参数值:${session_id}(假设session_id是从上一个请求中提取的会话标识符)
      • 检查响应头:是(从响应头中提取会话标识符)
      • 检查响应数据:否
      • 检查Cookie:是(从Cookie中提取会话标识符)
  5. 运行测试

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

优化建议

  1. 参数名称和值

    • 确保参数名称和值正确无误。参数名称通常是服务器生成的会话标识符名称(例如JSESSIONID),参数值可以从上一个请求中提取或手动设置。
  2. 检查选项

    • 根据实际需求选择合适的检查选项。如果会话标识符存储在响应头中,选择“检查响应头”;如果存储在响应数据中,选择“检查响应数据”;如果存储在Cookie中,选择“检查Cookie”。
  3. 动态变量

    • 如果会话标识符是动态生成的,可以使用JMeter变量(例如${session_id})来传递会话标识符值。
  4. 错误处理

    • 在测试计划中添加断言和监听器,确保会话标识符的正确性和请求的成功率。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望确保每个请求都包含会话标识符(例如JSESSIONID),以便服务器能够正确识别和管理会话。

  1. 创建测试计划

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

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

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:首页请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/
  4. 添加HTTP URL重写修饰符

    • 右键点击首页请求 -> 添加 -> 预处理器 -> HTTP URL 重写修饰符。
    • 配置HTTP URL重写修饰符:
      • 名称:HTTP URL重写修饰符
      • 参数名称:JSESSIONID
      • 参数值:${session_id}(假设session_id是从上一个请求中提取的会话标识符)
      • 检查响应头:是(从响应头中提取会话标识符)
      • 检查响应数据:否
      • 检查Cookie:是(从Cookie中提取会话标识符)
  5. 运行测试

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

 

969cbed6a1164fd58d6e77ba093f6b2a.png


5--JDBC PreProcessor

功能特点

  • 数据库操作:执行SQL语句,支持插入、删除、更新和查询操作。
  • 灵活配置:可以连接多种数据库(如MySQL、Oracle、PostgreSQL等)。
  • 适用于数据准备:特别适合需要在测试前准备数据库数据的场景。

配置步骤

  1. 添加 JDBC PreProcessor

    • 右键点击需要添加预处理器的请求或线程组。
    • 选择“添加” -> “预处理器” -> “JDBC PreProcessor”。
  2. 配置 JDBC PreProcessor

    • 名称:给 JDBC 预处理器一个有意义的名称。
    • 变量名称:设置数据库连接池的变量名称。
    • SQL查询:输入要执行的SQL语句。
    • 结果变量名称:设置存储查询结果的变量名称(可选)。
    • 处理结果:选择如何处理查询结果(例如,忽略结果、记录结果等)。

参数说明

  • 名称:给 JDBC 预处理器一个有意义的名称。
  • 变量名称:设置数据库连接池的变量名称,必须与“JDBC Connection Configuration”中定义的变量名称一致。
  • SQL查询:输入要执行的SQL语句,可以是插入、删除、更新或查询语句。
  • 结果变量名称:设置存储查询结果的变量名称,如果不需要存储结果,可以留空。
  • 处理结果:选择如何处理查询结果,例如:
    • 忽略结果:不存储查询结果。
    • 记录结果:将查询结果存储在指定的变量中。
    • 记录结果并抛出异常:将查询结果存储在指定的变量中,并在查询失败时抛出异常。

示例配置

假设我们需要测试一个Web应用,并在测试前向数据库中插入一些测试数据。

  1. 创建测试计划

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

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

    • 右键点击测试计划 -> 添加 -> 配置元件 -> JDBC Connection Configuration。
    • 配置 JDBC 连接配置:
      • 变量名称:dbConnection
      • 数据库 URL:jdbc:mysql://localhost:3306/mydatabase
      • JDBC驱动类:com.mysql.jdbc.Driver
      • 用户名:root
      • 密码:password
  4. 添加 JDBC PreProcessor

    • 右键点击线程组 -> 添加 -> 预处理器 -> JDBC PreProcessor。
    • 配置 JDBC PreProcessor:
      • 名称:插入测试数据
      • 变量名称:dbConnection
      • SQL查询:INSERT INTO users (username, password) VALUES ('testuser1', 'testpass1'), ('testuser2', 'testpass2')
      • 结果变量名称:(可选,如果不需要存储结果,可以留空)
      • 处理结果:忽略结果
  5. 添加HTTP请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:登录请求
      • 服务器名称或IP:目标服务器的地址(例如example.com)。
      • 端口号:目标服务器的端口(例如80)。
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 方法:POST
      • 路径:请求的路径(例如/login)。
      • 参数
        • 名称:username
        • :testuser1
        • 名称:password
        • :testpass1
  6. 运行测试

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

优化建议

  1. 数据库连接配置

    • 确保 JDBC 连接配置中的数据库 URL、驱动类、用户名和密码正确无误。
    • 如果使用的是特定数据库,确保已经添加了相应的 JDBC 驱动到 JMeter 的 lib 目录中。
  2. SQL查询

    • 根据实际需求编写 SQL 查询语句。如果需要执行多个操作,可以使用分号分隔多个 SQL 语句。
    • 如果需要动态生成 SQL 语句,可以使用 JMeter 变量(例如 ${variable_name})。
  3. 结果处理

    • 根据实际需求选择合适的处理结果方式。如果需要记录查询结果,确保结果变量名称有意义且易于理解。
  4. 错误处理

    • 在测试计划中添加断言和监听器,确保数据库操作的正确性和请求的成功率。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望在测试前向数据库中插入一些测试数据。

  1. 创建测试计划

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

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

    • 右键点击测试计划 -> 添加 -> 配置元件 -> JDBC Connection Configuration。
    • 配置 JDBC 连接配置:
      • 变量名称:dbConnection
      • 数据库 URL:jdbc:mysql://localhost:3306/mydatabase
      • JDBC驱动类:com.mysql.jdbc.Driver
      • 用户名:root
      • 密码:password
  4. 添加 JDBC PreProcessor

    • 右键点击线程组 -> 添加 -> 预处理器 -> JDBC PreProcessor。
    • 配置 JDBC PreProcessor:
      • 名称:插入测试数据
      • 变量名称:dbConnection
      • SQL查询:INSERT INTO users (username, password) VALUES ('testuser1', 'testpass1'), ('testuser2', 'testpass2')
      • 结果变量名称:(可选,如果不需要存储结果,可以留空)
      • 处理结果:忽略结果
  5. 添加HTTP请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:登录请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:POST
      • 路径:/login
      • 参数
        • 名称:username
        • :testuser1
        • 名称:password
        • :testpass1
  6. 运行测试

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

15e089bd739f44eb9430f370ae83fc92.png


6--取样器超时

功能特点

  • 超时控制:设置请求的最大等待时间,超过这个时间请求将被视为超时。
  • 适用于各种取样器:可以应用于HTTP请求、FTP请求、JDBC请求等多种取样器。
  • 提高测试稳定性:避免因网络问题或服务器响应慢导致测试长时间挂起。

配置步骤

  1. 添加取样器

    • 右键点击需要添加取样器的线程组。
    • 选择“添加” -> “取样器” -> 选择合适的取样器(例如HTTP请求)。
  2. 配置取样器超时时间

    • 在取样器的配置界面中找到超时时间相关的设置。
    • 设置合理的超时时间。

参数说明

  • 超时时间:设置请求的最大等待时间,单位通常为毫秒(ms)。
  • 连接超时:设置建立连接的最大等待时间,单位通常为毫秒(ms)。
  • 响应超时:设置接收响应的最大等待时间,单位通常为毫秒(ms)。

示例配置

假设我们需要测试一个Web应用,并设置HTTP请求的超时时间为10秒(10000毫秒)。

  1. 创建测试计划

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

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

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:首页请求
      • 服务器名称或IP:目标服务器的地址(例如example.com)。
      • 端口号:目标服务器的端口(例如80)。
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 方法:GET
      • 路径:请求的路径(例如/)。
      • 超时时间
        • 连接超时(毫秒):5000(5秒)
        • 响应超时(毫秒):10000(10秒)
  4. 运行测试

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

优化建议

  1. 合理设置超时时间

    • 根据实际需求和网络状况设置合理的超时时间。过短的超时时间可能导致正常请求被误判为超时,过长的超时时间可能导致测试长时间挂起。
  2. 区分连接超时和响应超时

    • 连接超时是指建立连接的时间限制,响应超时是指接收响应的时间限制。根据实际情况分别设置这两个超时时间。
  3. 错误处理

    • 在测试计划中添加断言和监听器,确保超时请求的正确性和处理方式。例如,可以使用“响应断言”来检查请求是否超时。
  4. 日志记录

    • 使用日志记录功能可以帮助调试和分析超时请求的原因,确保日志文件路径有效且有足够的写权限。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望设置HTTP请求的超时时间为10秒(10000毫秒)。

  1. 创建测试计划

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

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

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:首页请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/
      • 超时时间
        • 连接超时(毫秒):5000(5秒)
        • 响应超时(毫秒):10000(10秒)
  4. 运行测试

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

2ac580f5759e474f9f4e42886103bd45.png


7--正则表达式用户参数

功能特点

  • 数据提取:使用正则表达式从响应中提取特定的数据。
  • 动态参数传递:将提取的数据存储为变量,供后续请求使用。
  • 支持多种响应类型:可以处理文本、HTML、JSON等多种响应类型。

配置步骤

  1. 添加正则表达式提取器

    • 右键点击需要添加后处理器的请求或线程组。
    • 选择“添加” -> “后处理器” -> “正则表达式提取器”(Regular Expression Extractor)。
  2. 配置正则表达式提取器

    • 名称:给正则表达式提取器一个有意义的名称。
    • 应用到:选择要应用正则表达式的响应类型(例如,主样本、子样本等)。
    • 字段要检查:选择要检查的响应字段(例如,响应数据、响应头等)。
    • 正则表达式:输入用于匹配数据的正则表达式。
    • 模板:设置提取数据的模板,通常格式为$1$表示第一个捕获组。
    • 匹配数字:设置要匹配的次数(例如,-1表示匹配所有,0表示随机匹配一个,1表示匹配第一个)。
    • 默认值:设置如果未找到匹配项时的默认值。

参数说明

  • 名称:给正则表达式提取器一个有意义的名称。
  • 应用到:选择要应用正则表达式的响应类型,例如:
    • 主样本:仅应用到主样本。
    • 子样本:仅应用到子样本。
    • 主样本和子样本:应用到主样本和子样本。
  • 字段要检查:选择要检查的响应字段,例如:
    • 响应数据:检查响应数据。
    • 响应头:检查响应头。
  • 正则表达式:输入用于匹配数据的正则表达式。
  • 模板:设置提取数据的模板,通常格式为$1$表示第一个捕获组。
  • 匹配数字:设置要匹配的次数,例如:
    • -1:匹配所有。
    • 0:随机匹配一个。
    • 1:匹配第一个。
  • 默认值:设置如果未找到匹配项时的默认值。

示例配置

假设我们需要测试一个Web应用,并从登录请求的响应中提取会话标识符(例如JSESSIONID),然后在后续请求中使用该会话标识符。

  1. 创建测试计划

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

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

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:登录请求
      • 服务器名称或IP:目标服务器的地址(例如example.com)。
      • 端口号:目标服务器的端口(例如80)。
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 方法:POST
      • 路径:请求的路径(例如/login)。
      • 参数
        • 名称:username
        • :testuser
        • 名称:password
        • :testpass
  4. 添加正则表达式提取器

    • 右键点击登录请求 -> 添加 -> 后处理器 -> 正则表达式提取器。
    • 配置正则表达式提取器:
      • 名称:提取会话标识符
      • 应用到:主样本
      • 字段要检查:响应数据
      • 正则表达式:JSESSIONID=(.*?);
      • 模板:11
      • 匹配数字:1(匹配第一个)
      • 默认值:NO_SESSION_ID
  5. 添加后续请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:首页请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/
      • 参数
        • 名称:JSESSIONID
        • :${session_id}
  6. 运行测试

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

优化建议

  1. 正则表达式

    • 确保正则表达式正确无误,能够准确匹配所需的数据。可以使用在线正则表达式测试工具进行验证。
  2. 模板设置

    • 根据正则表达式的捕获组设置合适的模板。例如,$1$表示第一个捕获组,$2$表示第二个捕获组。
  3. 匹配次数

    • 根据实际需求设置匹配次数。如果只需要第一个匹配项,设置为1;如果需要所有匹配项,设置为-1。
  4. 默认值

    • 设置合理的默认值,避免因未找到匹配项而导致测试失败。
  5. 错误处理

    • 在测试计划中添加断言和监听器,确保提取的数据正确性和请求的成功率。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和两个HTTP请求,并希望从登录请求的响应中提取会话标识符(例如JSESSIONID),然后在后续请求中使用该会话标识符。

  1. 创建测试计划

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

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

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:登录请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:POST
      • 路径:/login
      • 参数
        • 名称:username
        • :testuser
        • 名称:password
        • :testpass
  4. 添加正则表达式提取器

    • 右键点击登录请求 -> 添加 -> 后处理器 -> 正则表达式提取器。
    • 配置正则表达式提取器:
      • 名称:提取会话标识符
      • 应用到:主样本
      • 字段要检查:响应数据
      • 正则表达式:JSESSIONID=(.*?);
      • 模板:11
      • 匹配数字:1(匹配第一个)
      • 默认值:NO_SESSION_ID
  5. 添加后续请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:首页请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/
      • 参数
        • 名称:JSESSIONID
        • :${session_id}
  6. 运行测试

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

 

 

61536f7fc08f41569c5c9a1f4a9a5b21.png


8--BeanShell PreProcessor

功能特点

  • 自定义预处理逻辑:使用 BeanShell 脚本编写自定义的预处理逻辑。
  • 灵活控制:可以根据测试数据和条件动态调整请求参数。
  • 支持 BeanShell 脚本:支持使用 BeanShell 脚本语言编写预处理逻辑。

配置步骤

  1. 添加 BeanShell 预处理器

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

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

参数说明

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

示例配置

假设我们需要测试一个Web应用,并在发送请求之前动态设置请求参数,例如根据当前时间生成一个唯一的请求ID。

  1. 创建测试计划

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

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

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:首页请求
      • 服务器名称或IP:目标服务器的地址(例如example.com)。
      • 端口号:目标服务器的端口(例如80)。
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 方法:GET
      • 路径:请求的路径(例如/)。
      • 参数
        • 名称:requestId
        • :${request_id}
  4. 添加 BeanShell 预处理器

    • 右键点击HTTP请求 -> 添加 -> 预处理器 -> BeanShell 预处理器。
    • 配置 BeanShell 预处理器:
      • 名称:生成请求ID
      • 脚本:在脚本编辑框中编写以下 BeanShell 脚本:
        import java.util.Date;
        import java.text.SimpleDateFormat;
        
        // 获取当前时间
        Date now = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
        String timestamp = sdf.format(now);
        
        // 生成唯一请求ID
        String requestId = "req_" + timestamp;
        
        // 将请求ID存储为JMeter变量
        vars.put("request_id", requestId);
  5. 运行测试

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

优化建议

  1. 脚本语言选择

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

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

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

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

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

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

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望在发送请求之前动态生成一个唯一的请求ID。

  1. 创建测试计划

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

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

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:首页请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/
      • 参数
        • 名称:requestId
        • :${request_id}
  4. 添加 BeanShell 预处理器

    • 右键点击HTTP请求 -> 添加 -> 预处理器 -> BeanShell 预处理器。
    • 配置 BeanShell 预处理器:
      • 名称:生成请求ID
      • 脚本:在脚本编辑框中编写以下 BeanShell 脚本:
        import java.util.Date;
        import java.text.SimpleDateFormat;
        
        // 获取当前时间
        Date now = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
        String timestamp = sdf.format(now);
        
        // 生成唯一请求ID
        String requestId = "req_" + timestamp;
        
        // 将请求ID存储为JMeter变量
        vars.put("request_id", requestId);
  5. 运行测试

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

 

 

4879317849ba4ceb855c3ab89c8ec6af.png


 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ABAP OOALV模板

自用模板,可能存在问题 一、主程序 *&---------------------------------------------------------------------* *& Report ZVIA_OO_ALV *&---------------------------------------------------------------------* REPORT ZVIA_OO_ALV.INCLUDE ZVI…

新能源汽车充电基础设施短板问题多,如何实现高效、综合、智能化管理?

随着城市经济的发展,人民生活水平的提升,新能源汽车保有量快速增长,而日益增长的新能源汽车需求与充电基础设施建设不平衡的矛盾日益突出。由于停车泊位充电基础设施总量不足、布局待优化、利用效率低、建设运营存在短板问题等原因&#xff0…

LeetCode:19.删除链表倒数第N个节点

跟着carl学算法,本系列博客仅做个人记录,建议大家都去看carl本人的博客,写的真的很好的! 代码随想录 LeetCode:19.删除链表倒数第N个节点 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表…

vscode可以编译通过c++项目,但头文件有红色波浪线的问题

1、打开 VSCode 的设置,可以通过快捷键 Ctrl Shift P 打开命令面板,然后搜索并选择 “C/C: Edit Configurations (JSON)” 命令,这将在 .vscode 文件夹中创建或修改 c_cpp_properties.json 文件 {"configurations": [{"name…

Windows远程连接桌面报错“由于没有远程桌面授权服务器可以提供许可证,远程会话连接已断开。请跟服务器管理员联系

摘要 windows server配置了多用户登录,默认自动生成的连接许可证有效日期为120天,超过了这个时间后,用户将不能远程连接服务器。 需要配置多用户服务器,进行获取许可 问题 解决方法 1、win键R打开运行器,使用mstsc …

Qt程序发布及打包成exe安装包

参考:Qt之程序发布以及打包成exe安装包 目录 一、简述 Qt 项目开发完成之后,需要打包发布程序,而因为用户电脑上没有 Qt 配置环境,所以需要将 release 生成的 exe 文件和所依赖的 dll 文件复制到一个文件夹中,然后再用 Inno Setup 打包工具打包成一个 exe 安装包,就可以…

受天鹅绒蠕虫启发:软胶机器人如何实现刚度可调的粘附控制

大家好!今天来了解一篇微型机器人研究——《Stiffness-tunable velvet worm–inspired soft adhesive robot》发表于《SCIENCE ADVANCES》。大家想想,在人体内部这样复杂的环境中,微型机器人要稳定操作,粘附控制是多么关键啊&…

Flink--API 之 Source 使用解析

目录 一、Flink Data Sources 分类概览 (一)预定义 Source (二)自定义 Source 二、代码实战演示 (一)预定义 Source 示例 基于本地集合 基于本地文件 基于网络套接字(socketTextStream&…

typescript基础入门

在官网的页页https://www.typescriptlang.org/可以调试。 #类型推断 let str: string abclet str1: string str1a#数组及类型断言let numArr [1, 2, 3]const result numArr.find(item > item >2) as numberresult * 5#基础类型和…

SenseVoice 音频转文字情绪识别 - python 实现

具体代码实现如下: from funasr import AutoModel from funasr.utils.postprocess_utils import rich_transcription_postprocesspath_audio "emo/happy.mp3"# 音频文件 # 加载模型 model_dir "iic/SenseVoiceSmall" model AutoModel(model…

Java学习笔记--继承方法的重写介绍,重写方法的注意事项,方法重写的使用场景,super和this

目录 一,方法的重写 二,重写方法的注意事项 三,方法重写的使用场景 四,super和this 1.继承中构造方法的特点 2.super和this的具体使用 super的具体使用 this的具体使用 一,方法的重写 1.概述:子类中有一个和父类…

深入浅出摸透AIGC文生图产品SD(Stable Diffusion)

hihi,朋友们,时隔半年(24年11月),终于能腾出时间唠一唠SD了🤣,真怕再不唠一唠,就轮不到SD了,技术更新换代是在是太快! 朋友们,最近(24年2月)是真的没时间整理笔记,每天都在疯狂的学习Stable Diffusion和WebUI & ComfyUI,工作实在有点忙,实践期间在飞书上…

OSI七层模型和TCP/IP五层模型详细介绍

这里写目录标题 一.OSI含义二.OSI七层模型1.应用层2.表示层3.会话层4.传输层5.网络层6.数据链路层7.物理层 TCP/IP五层协议1.应用层2.运输层运行在TCP上的协议运行在UDP上的协议 3.网络层IP协议配套使用的协议 4.数据链路层 四.网络协议分层的好处 一.OSI含义 OSI即是开放式通…

360推出全新的生成式 AI 搜索产品:纳米搜索,要重塑搜索产品

【大力财经】直击互联网最前线:360 集团在 2024 年 11 月 27 日开发布会,重磅推出了一款全新的生成式 AI 搜索产品——纳米搜索,并且已经上架到苹果 App Store 以及应用宝等安卓应用商店,直接与百度、阿里夸克、秘塔 AI、Perplexi…

【超全】目标检测模型分类对比与综述:单阶段、双阶段、有无锚点、DETR、旋转框

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…

c#:winform引入bartender

1、vs新建项目 ①选择Windows窗体应用(.NET Framework) 2、将bartender引入vs中 ①找到bartender的安装目录,复制Seagull.BarTender.Print.dll文件 ②粘贴到项目->bin->Debug文件,并可创建Model文件夹:为了存放…

vue 实现关键字高亮效果

vue 实现关键字高亮效果 这是啥子意思呢,就是类似于百度搜索,根据关键词搜索结果,搜索结果中,与关键词相同的字显示红色,仅此而已,没有什么大的功能。简单写一下demo。 环境 我使用的是 vue3 ts 的语法来…

初始Python篇(7)—— 正则表达式

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏: Python 目录 正则表达式的概念 正则表达式的组成 元字符 限定符 其他字符 正则表达式的使用 正则表达式的常见操作方法 match方法的…

[DL]深度学习_扩散模型正弦时间编码

1 扩散模型时间步嵌入 1.1 时间步正弦编码 在扩散模型按时间步 t 进行加噪去噪过程时,需要包括反映噪声水平的时间步长 t 作为噪声预测器的额外输入。但是最初与图像配套的时间步 t 是数字,需要将代表时间步 t 的数字编码为向量嵌入。嵌入时间向量的宽…

【Linux】网络基本配置命令

一、使用网络配置命令 1.常用网络配置文件 1.1. /etc/hosts “/etc/hosts”文件保存着IP地址和主机名或域名的静态映射关系。当用户使用一个主机名或域名时,系统会在该文件中查找与它对应的IP地址。 [rootlocalhost ~]# cat /etc/hosts 127.0.0.1 localhost l…