Jmeter中的配置原件(一)

配置原件


1--CSV Data Set Config

用途

  • 参数化测试:从CSV文件中读取数据,为每个请求提供不同的参数值。
  • 数据驱动测试:使用外部数据文件来驱动测试,使测试更加灵活和可扩展。

配置步骤

  1. 准备CSV文件

    • 创建一个CSV文件,每行代表一组测试数据。

    • 例如,创建一个名为test_data.csv的文件,内容如下:

      username,password
      user1,pass1
      user2,pass2
      user3,pass3
      
  2. 添加CSV Data Set Config

    • 右键点击线程组(Thread Group)。
    • 选择"添加" -> "配置元件" -> "CSV Data Set Config"。
  3. 配置CSV Data Set Config

    • 名称:给CSV Data Set Config一个有意义的名称。
    • 文件名:指定CSV文件的路径(可以是绝对路径或相对路径)。
    • 变量名:为CSV文件中的每一列指定一个变量名。这些变量名将在测试计划中使用。
    • 分隔符:指定CSV文件中的分隔符,默认是逗号(,)。
    • 忽略第一行:选择是否忽略CSV文件的第一行(通常是列标题)。
    • 回收策略 :选择当数据集用尽时的行为。
      • True:重新开始读取文件。
      • False:停止测试。
    • 共享模式 :选择数据共享模式。
      • All threads:所有线程共享同一个数据集。
      • Current thread group:当前线程组内的线程共享同一个数据集。
      • Current thread:每个线程都有自己独立的数据集。

示例配置

假设我们需要测试一个登录接口,使用CSV文件中的用户名和密码进行参数化。

  1. 创建CSV文件

    • 文件名:test_data.csv

    • 内容:

      username,password
      user1,pass1
      user2,pass2
      user3,pass3
      
  2. 创建线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如"登录测试")。
  3. 添加CSV Data Set Config

    • 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> CSV Data Set Config。
    • 配置CSV Data Set Config:
      • 名称:CSV Data Set Config
      • 文件名:test_data.csv
      • 变量名:username,password
      • 分隔符:,
      • 忽略第一行:勾选
      • 回收策略:False
      • 共享模式:Current thread
  4. 添加HTTP请求

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

    • 右键点击线程组 -> 添加 -> 监听器 -> 查看结果树。
    • 运行测试,查看结果。

优化建议

  1. 文件路径

    • 确保CSV文件的路径正确,可以使用相对路径以便于移植。
  2. 数据量

    • 如果CSV文件中的数据量很大,确保JMeter有足够的内存来处理这些数据。
  3. 数据共享

    • 根据测试需求选择合适的共享模式。对于需要每个线程独立数据的场景,选择Current thread模式。
  4. 调试

    • 使用"查看结果树"监听器查看请求和响应的详细信息,确保变量被正确替换。
  5. 错误处理

    • 如果CSV文件中的数据格式不正确,可能会导致测试失败。确保CSV文件的格式正确,并在必要时添加错误处理逻辑。

2--HTTP信息头管理器

用途

  • 设置请求头:为HTTP请求添加自定义的头信息。
  • 保持一致性:确保所有相关的HTTP请求都包含相同的头信息。
  • 模拟真实请求:许多Web应用依赖于特定的请求头信息,使用HTTP信息头管理器可以更真实地模拟用户请求。

配置步骤

  1. 添加HTTP信息头管理器

    • 右键点击线程组(Thread Group)或特定的HTTP请求。
    • 选择"添加" -> "配置元件" -> "HTTP信息头管理器"。
  2. 配置HTTP信息头管理器

    • 名称:给HTTP信息头管理器一个有意义的名称。
    • 添加头信息 :点击"添加"按钮,添加需要的头信息。
      • 名称 :头信息的名称(例如Content-TypeAuthorizationCookie等)。
      • :头信息的值(例如application/jsonBearer <token>sessionid=12345等)。

示例配置

假设我们需要测试一个需要认证的API,并且每个请求都需要包含特定的Authorization头和Content-Type头。

  1. 创建线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如"API测试")。
  2. 添加HTTP信息头管理器

    • 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> HTTP信息头管理器。
    • 配置HTTP信息头管理器:
      • 名称:HTTP信息头管理器
      • 添加头信息:
        • 名称:Authorization
        • 值:Bearer <your_token>
        • 名称:Content-Type
        • 值:application/json
  3. 添加HTTP请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 服务器名称或IP:目标服务器的地址。
      • 端口号:目标服务器的端口。
      • 协议:HTTP或HTTPS。
      • 方法:GET、POST等。
      • 路径:API的路径(例如/api/v1/users)。
  4. 添加监听器

    • 右键点击线程组 -> 添加 -> 监听器 -> 查看结果树。
    • 运行测试,查看结果。

优化建议

  1. 避免重复配置

    • 如果多个HTTP请求需要相同的头信息,可以将HTTP信息头管理器添加到线程组级别,而不是每个请求单独配置。这样可以减少重复配置,提高维护的便利性。
  2. 动态头信息

    • 对于需要动态生成的头信息(例如Token),可以使用JMeter的变量或函数。例如,可以在头信息的值中使用${token},然后在测试计划中定义token变量。
  3. 调试和验证

    • 使用"查看结果树"监听器查看请求和响应的详细信息,确保头信息被正确添加。
    • 可以使用"查看结果树"中的"请求"选项卡查看发送的请求头信息。
  4. 性能考虑

    • 尽量减少不必要的头信息,只添加必需的头信息,以减少请求的开销。
    • 对于大型测试计划,确保头信息的配置不会导致性能瓶颈。

3--HTTP缓存管理器

用途

  • 减少重复请求:避免多次请求相同的静态资源(如图片、CSS、JavaScript文件),从而减少网络流量和服务器负载。
  • 提高测试效率:通过缓存机制,可以加快测试用例的执行速度,特别是在多次迭代测试中。
  • 模拟真实用户行为:浏览器通常会缓存静态资源,使用HTTP缓存管理器可以使测试更接近真实用户的上网体验。

配置步骤

  1. 添加HTTP缓存管理器

    • 右键点击线程组(Thread Group)或测试计划(Test Plan)。
    • 选择"添加" -> "配置元件" -> "HTTP 缓存管理器"。
  2. 配置HTTP缓存管理器

    • 名称:给HTTP缓存管理器一个有意义的名称。
    • 清除每迭代的缓存 :选择是否在每次迭代开始时清空缓存。
      • True:每次迭代开始时清空缓存。
      • False:不清空缓存,保持上一次迭代的缓存状态。
    • 使用Expires字段 :选择是否使用HTTP响应中的Expires头来决定缓存的有效期。
      • True:使用Expires头。
      • False:不使用Expires头。
    • 最大缓存条目数:设置缓存的最大条目数。超过这个数量时,最早的缓存条目将被移除。
    • 最大缓存大小:设置缓存的最大总大小(以字节为单位)。超过这个大小时,最早的缓存条目将被移除。

示例配置

假设我们需要测试一个Web应用程序,并希望模拟浏览器的缓存机制以减少不必要的网络请求。

  1. 创建线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如"缓存测试")。
  2. 添加HTTP缓存管理器

    • 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> HTTP 缓存管理器。
    • 配置HTTP缓存管理器:
      • 名称:HTTP 缓存管理器
      • 清除每迭代的缓存:False
      • 使用Expires字段:True
      • 最大缓存条目数:50
      • 最大缓存大小:10000000(10MB)
  3. 添加HTTP请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 服务器名称或IP:目标服务器的地址。
      • 端口号:目标服务器的端口。
      • 协议:HTTP或HTTPS。
      • 方法:GET(假设请求的是静态资源)。
      • 路径:静态资源的路径(例如/images/logo.png)。
  4. 添加监听器

    • 右键点击线程组 -> 添加 -> 监听器 -> 查看结果树。
    • 运行测试,查看结果。

注意事项

  • 缓存策略:HTTP缓存管理器会根据HTTP响应头中的Cache-Control、Expires等字段来决定缓存的有效期。
  • 缓存大小:合理设置最大缓存条目数和最大缓存大小,避免占用过多内存。
  • 清除缓存:根据测试需求选择是否在每次迭代开始时清空缓存。如果不清空缓存,可以更好地模拟用户在多次访问同一页面时的行为。

4-- Http cookie管理器

用途

  • 管理Cookie:自动处理和存储服务器返回的Cookie,并在后续请求中自动发送这些Cookie。
  • 保持会话状态:确保多个请求之间的会话状态保持一致,特别是在需要登录或其他会话管理的情况下。

配置步骤

  1. 添加HTTP Cookie管理器

    • 右键点击线程组(Thread Group)或测试计划(Test Plan)。
    • 选择"添加" -> "配置元件" -> "HTTP Cookie Manager"。
  2. 配置HTTP Cookie管理器

    • 名称:给HTTP Cookie管理器一个有意义的名称。
    • Cookie策略 :选择处理Cookie的策略。常见的策略有:
      • default:默认策略,适用于大多数情况。
      • compatibility:兼容旧版浏览器的行为。
      • netscape:遵循Netscape规范。
      • rfc2109:遵循RFC 2109规范。
      • rfc2965:遵循RFC 2965规范。
      • ignore:忽略所有Cookie。
    • 共享Cookie :选择是否在多个用户线程之间共享Cookie。
      • True:所有线程共享同一个Cookie池。
      • False:每个线程有自己的独立Cookie池。
    • 预定义Cookie :手动添加预定义的Cookie。这对于某些需要初始Cookie的测试场景非常有用。
      • 名称:Cookie的名称。
      • :Cookie的值。
      • 域名:Cookie的域名。
      • 路径:Cookie的路径。
      • 注释:可选的注释信息。
      • 过期时间:Cookie的过期时间(可选)。
      • 安全:是否标记为安全Cookie(仅通过HTTPS传输)。

示例配置

假设我们需要测试一个需要登录的Web应用程序,并且希望JMeter能够自动管理Cookie以保持会话状态。

  1. 创建线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如"登录测试")。
  2. 添加HTTP Cookie管理器

    • 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> HTTP Cookie Manager。
    • 配置HTTP Cookie管理器:
      • 名称:HTTP Cookie Manager
      • Cookie策略:default
      • 共享Cookie:False
      • 预定义Cookie:(如果需要)
  3. 添加HTTP请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 服务器名称或IP:目标服务器的地址。
      • 端口号:目标服务器的端口。
      • 协议:HTTP或HTTPS。
      • 方法:POST(假设登录接口是POST请求)。
      • 路径:登录接口的路径(例如/login)。
      • 参数:添加登录所需的参数(例如usernamepassword)。
  4. 添加监听器

    • 右键点击线程组 -> 添加 -> 监听器 -> 查看结果树。
    • 运行测试,查看结果。

注意事项

  • Cookie生命周期:HTTP Cookie管理器会根据服务器返回的Set-Cookie头自动管理Cookie的生命周期。
  • 安全Cookie:如果服务器返回的Cookie标记为安全(Secure),则只有在HTTPS请求中才会发送该Cookie。
  • 跨域Cookie:HTTP Cookie管理器会自动处理跨域Cookie,但需要确保域名和路径匹配。
相关推荐
永乐春秋22 分钟前
WEB攻防-通用漏洞&文件上传&js验证&mime&user.ini&语言特性
前端
鸽鸽程序猿23 分钟前
【前端】CSS
前端·css
ggdpzhk25 分钟前
VUE:基于MVVN的前端js框架
前端·javascript·vue.js
远歌已逝1 小时前
维护在线重做日志(二)
数据库·oracle
qq_433099402 小时前
Ubuntu20.04从零安装IsaacSim/IsaacLab
数据库
学不会•2 小时前
css数据不固定情况下,循环加不同背景颜色
前端·javascript·html
Dlwyz3 小时前
redis-击穿、穿透、雪崩
数据库·redis·缓存
Theodore_10223 小时前
4 设计模式原则之接口隔离原则
java·开发语言·设计模式·java-ee·接口隔离原则·javaee
工业甲酰苯胺4 小时前
Redis性能优化的18招
数据库·redis·性能优化
冰帝海岸4 小时前
01-spring security认证笔记
java·笔记·spring