Jmeter中的配置原件

 2)配置原件

11c287f7599e488d9fe12730b4934859.png


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文件的格式正确,并在必要时添加错误处理逻辑。

21b1ae137dc745d6adbcf94db2e96a8b.png


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. 性能考虑

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

95b67b7fba874c00a2ee6697cd8787b3.png


 

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等字段来决定缓存的有效期。
  • 缓存大小:合理设置最大缓存条目数和最大缓存大小,避免占用过多内存。
  • 清除缓存:根据测试需求选择是否在每次迭代开始时清空缓存。如果不清空缓存,可以更好地模拟用户在多次访问同一页面时的行为。

 

a27b1e5f8d7947f194547fc2f01a3e01.png


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,但需要确保域名和路径匹配。

0a1367d8397d4bf7af25dbe53a007e42.png


5--HTTP请求默认值

用途

  • 设置默认值:为多个HTTP请求设置通用的默认值,如服务器地址、端口号、协议等。
  • 简化配置:避免在每个HTTP请求中重复配置相同的参数。

配置步骤

  1. 添加HTTP请求管理器

    • 右键点击线程组(Thread Group)。
    • 选择“添加” -> “配置元件” -> “HTTP请求默认值”(HTTP Request Defaults)。
  2. 配置HTTP请求管理器

    • 名称:给HTTP请求管理器一个有意义的名称。
    • 服务器名称或IP:目标服务器的地址。
    • 端口号:目标服务器的端口。
    • 协议:HTTP或HTTPS。
    • 内容编码:请求的编码方式(如UTF-8)。
    • 路径:请求的默认路径(可选)。
    • 方法:请求的默认方法(如GET、POST等)。
    • 参数:请求的默认参数(可选)。
    • HTTP头部:请求的默认头部信息(可选)。

示例配置

假设我们需要测试一个Web应用,所有请求都指向同一个服务器,并且使用相同的协议和端口。

  1. 创建测试计划

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

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

    • 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> HTTP请求默认值。
    • 配置HTTP请求管理器:
      • 名称:HTTP请求默认值
      • 服务器名称或IP:目标服务器的地址(例如example.com)。
      • 端口号:目标服务器的端口(例如80)。
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 内容编码:请求的编码方式(例如UTF-8)。
      • 路径:请求的默认路径(可选,例如/api)。
      • 方法:请求的默认方法(可选,例如GET)。
  4. 添加HTTP请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:请求名称(例如“获取用户列表”)。
      • 路径:请求的具体路径(例如/users)。
      • 方法:请求的方法(例如GET)。
      • 参数:请求的参数(可选)。
      • HTTP头部:请求的头部信息(可选)。
  5. 添加监听器

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

优化建议

  1. 默认值

    • 尽可能多地设置默认值,减少每个HTTP请求的配置工作量。
  2. 路径和方法

    • 如果所有请求的路径和方法相同,可以在HTTP请求管理器中设置默认值,避免在每个请求中重复配置。
  3. 参数和头部

    • 对于常用的参数和头部信息,可以在HTTP请求管理器中设置默认值,但在具体请求中也可以覆盖这些默认值。
  4. 动态参数

    • 使用JMeter的变量和函数来动态生成请求参数,例如使用${variable}来引用变量。
  5. 调试

    • 使用“查看结果树”监听器查看请求和响应的详细信息,确保请求的配置正确无误。

5a2c5f6657734413a192f96a50462372.png


6--Bolt Connection Configuration

用途

  • 连接 Neo4j 数据库:设置与 Neo4j 数据库的连接信息。
  • 执行 Cypher 查询:在测试中执行 Cypher 查询,测试图形数据库的性能。

配置步骤

  1. 安装 Neo4j 插件

    • 下载并安装 JMeter 的 Neo4j 插件。插件通常包含在 JMeter 的插件管理器中。
    • 打开 JMeter,点击“选项” -> “插件管理器” -> “可用插件”,搜索并安装 Neo4j 插件。
  2. 添加 Bolt Connection Configuration

    • 右键点击线程组(Thread Group)。
    • 选择“添加” -> “配置元件” -> “Bolt Connection Configuration”。
  3. 配置 Bolt Connection Configuration

    • 名称:给 Bolt Connection Configuration 一个有意义的名称。
    • Bolt URL:Neo4j 数据库的 Bolt 协议 URL(例如 bolt://localhost:7687)。
    • 用户名:连接 Neo4j 数据库的用户名。
    • 密码:连接 Neo4j 数据库的密码。
    • 数据库:连接的数据库名称(可选,默认为 neo4j)。
    • 超时时间:连接和查询的超时时间(可选)。
    • 复用连接:选择是否复用连接(通常选择 True)。

示例配置

假设我们需要测试一个 Neo4j 数据库,执行一些 Cypher 查询来验证性能。

  1. 创建测试计划

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

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“查询测试”)。
  3. 添加 Bolt Connection Configuration

    • 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> Bolt Connection Configuration。
    • 配置 Bolt Connection Configuration:
      • 名称:Bolt Connection Configuration
      • Bolt URLbolt://localhost:7687
      • 用户名neo4j
      • 密码password
      • 数据库neo4j
      • 超时时间:30000(30秒)
      • 复用连接:True
  4. 添加 Bolt Sampler

    • 右键点击线程组 -> 添加 -> 取样器 -> Bolt Sampler。
    • 配置 Bolt Sampler:
      • 名称:查询名称(例如“获取用户列表”)。
      • 查询:要执行的 Cypher 查询(例如 MATCH (u:User) RETURN u)。
      • 参数:查询参数(可选)。
      • 结果变量:存储查询结果的变量名称(可选)。
  5. 添加监听器

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

优化建议

  1. 连接复用

    • 选择复用连接(True),可以减少连接的开销,提高测试效率。
  2. 超时时间

    • 设置合理的超时时间,避免因网络延迟或数据库性能问题导致测试失败。
  3. 查询优化

    • 确保 Cypher 查询的性能优化,避免执行耗时较长的查询。
  4. 错误处理

    • 使用断言和监听器来捕获和分析查询结果,及时发现和解决问题。
  5. 资源监控

    • 在测试过程中监控 Neo4j 数据库的资源使用情况(如CPU、内存、磁盘I/O等),确保测试环境的稳定性。

ff4e4c7ea5f6497a98204f8705748fb2.png


 

7--DNS缓存管理器

用途

  • 减少DNS查询:避免每次请求都进行DNS解析,减少网络延迟。
  • 提高测试效率:通过缓存DNS解析结果,加快测试用例的执行速度。
  • 模拟真实用户行为:浏览器通常会缓存DNS解析结果,使用DNS缓存管理器可以使测试更接近真实用户的上网体验。

配置步骤

  1. 添加DNS缓存管理器

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

    • 名称:给DNS缓存管理器一个有意义的名称。
    • 清除每迭代的缓存:选择是否在每次迭代开始时清空DNS缓存。
      • True:每次迭代开始时清空缓存。
      • False:不清空缓存,保持上一次迭代的缓存状态。
    • 使用系统DNS缓存:选择是否使用操作系统的DNS缓存。
      • True:使用操作系统的DNS缓存。
      • False:不使用操作系统的DNS缓存,使用JMeter内置的DNS缓存。

示例配置

假设我们需要测试一个Web应用,并希望使用DNS缓存管理器来减少DNS查询,提高测试效率。

  1. 创建测试计划

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

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
  3. 添加DNS缓存管理器

    • 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> DNS缓存管理器。
    • 配置DNS缓存管理器:
      • 名称:DNS缓存管理器
      • 清除每迭代的缓存:False
      • 使用系统DNS缓存:False
  4. 添加HTTP请求

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

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

优化建议

  1. 清除每迭代的缓存

    • 根据测试需求选择是否在每次迭代开始时清空DNS缓存。如果不清空缓存,可以更好地模拟用户在多次访问同一页面时的行为。
  2. 使用系统DNS缓存

    • 如果操作系统已经有一个高效的DNS缓存机制,可以选择使用系统的DNS缓存。否则,使用JMeter内置的DNS缓存通常更可靠。
  3. 测试环境

    • 确保测试环境中DNS解析服务的稳定性和可靠性,避免因DNS解析问题导致测试失败。
  4. 调试

    • 使用“查看结果树”监听器查看请求和响应的详细信息,确保DNS解析结果正确无误。
  5. 性能监控

    • 在测试过程中监控系统的网络性能和DNS解析时间,确保测试环境的稳定性。

 

f8489c74ac6940b7a12528c6a87d705d.png


8--FTP默认请求

用途

  • 设置默认值:为多个FTP请求设置通用的默认值,如服务器地址、端口号、用户名和密码等。
  • 简化配置:避免在每个FTP请求中重复配置相同的参数。

配置步骤

  1. 添加FTP默认请求

    • 右键点击线程组(Thread Group)。
    • 选择“添加” -> “配置元件” -> “FTP请求默认值”(FTP Request Defaults)。
  2. 配置FTP默认请求

    • 名称:给FTP默认请求一个有意义的名称。
    • 服务器地址:FTP服务器的地址。
    • 端口号:FTP服务器的端口(默认为21)。
    • 用户名:连接FTP服务器的用户名。
    • 密码:连接FTP服务器的密码。
    • 被动模式:选择是否使用被动模式(通常选择 True)。
    • 超时时间:连接和传输的超时时间(可选)。

示例配置

假设我们需要测试一个FTP服务器,上传和下载文件,并希望使用FTP默认请求来设置通用的连接信息。

  1. 创建测试计划

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

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“FTP测试”)。
  3. 添加FTP默认请求

    • 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> FTP请求默认值。
    • 配置FTP默认请求:
      • 名称:FTP默认请求
      • 服务器地址:FTP服务器的地址(例如ftp.example.com)。
      • 端口号:FTP服务器的端口(默认为21)。
      • 用户名:连接FTP服务器的用户名(例如user)。
      • 密码:连接FTP服务器的密码(例如password)。
      • 被动模式:True
      • 超时时间:30000(30秒)
  4. 添加FTP请求

    • 右键点击线程组 -> 添加 -> 取样器 -> FTP请求。
    • 配置FTP请求:
      • 名称:请求名称(例如“上传文件”)。
      • 服务器地址:留空,使用默认值。
      • 端口号:留空,使用默认值。
      • 用户名:留空,使用默认值。
      • 密码:留空,使用默认值。
      • 被动模式:留空,使用默认值。
      • 命令:选择FTP命令(例如STOR表示上传文件)。
      • 远程文件:远程文件路径(例如/remote/path/file.txt)。
      • 本地文件:本地文件路径(例如C:\local\path\file.txt)。
      • 二进制模式:选择是否使用二进制模式(通常选择 True)。
  5. 添加监听器

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

优化建议

  1. 默认值

    • 尽可能多地设置默认值,减少每个FTP请求的配置工作量。
  2. 命令和文件路径

    • 确保FTP命令和文件路径的正确性,避免因路径错误导致测试失败。
  3. 超时时间

    • 设置合理的超时时间,避免因网络延迟或服务器性能问题导致测试失败。
  4. 被动模式

    • 选择被动模式(True),可以避免防火墙和NAT设备的影响,提高测试的稳定性。
  5. 错误处理

    • 使用断言和监听器来捕获和分析FTP请求的结果,及时发现和解决问题。
  6. 资源监控

    • 在测试过程中监控FTP服务器的资源使用情况(如CPU、内存、磁盘I/O等),确保测试环境的稳定性。

a1a6f215fc004972ad20ab67c590ca5d.png


 

9--HTTP授权管理器

用途

  • 管理认证信息:为HTTP请求添加自定义的认证信息。
  • 支持多种认证方式:支持Basic、Digest、NTLM等多种认证方式。
  • 简化配置:避免在每个HTTP请求中重复配置认证信息。

配置步骤

  1. 添加HTTP授权管理器

    • 右键点击线程组(Thread Group)。
    • 选择“添加” -> “配置元件” -> “HTTP授权管理器”(HTTP Authorization Manager)。
  2. 配置HTTP授权管理器

    • 名称:给HTTP授权管理器一个有意义的名称。
    • 添加授权条目:点击“添加”按钮,添加需要的授权条目。
      • Base URL:需要认证的URL的基础部分(例如http://example.com)。
      • 用户名:认证的用户名。
      • 密码:认证的密码。
      • :认证域(可选,主要用于NTLM认证)。
      • 认证方案:选择认证方式(例如Basic、Digest、NTLM等)。

示例配置

假设我们需要测试一个需要Basic认证的Web应用,并为多个请求添加认证信息。

  1. 创建测试计划

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

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

    • 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> HTTP授权管理器。
    • 配置HTTP授权管理器:
      • 名称:HTTP授权管理器
      • 添加授权条目
        • Base URLhttp://example.com
        • 用户名user
        • 密码password
        • :(可选,留空)
        • 认证方案:Basic
  4. 添加HTTP请求

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

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

优化建议

  1. 认证方案

    • 根据目标服务器的认证方式选择合适的认证方案。常见的认证方式包括Basic、Digest和NTLM。
  2. Base URL

    • 确保Base URL的正确性,Base URL应该是需要认证的URL的基础部分。
  3. 多条认证信息

    • 如果需要为多个不同的URL添加认证信息,可以在HTTP授权管理器中添加多条授权条目。
  4. 动态认证信息

    • 使用JMeter的变量和函数来动态生成认证信息,例如使用${username}${password}来引用变量。
  5. 调试

    • 使用“查看结果树”监听器查看请求和响应的详细信息,确保认证信息被正确添加。
  6. 错误处理

    • 使用断言和监听器来捕获和分析认证失败的情况,及时发现和解决问题。

c9bc3c4306484e33985ff7e7554917c9.png


10--JDBC Connection Configuration

用途

  • 连接数据库:设置与数据库的连接信息,如数据库URL、用户名、密码等。
  • 执行SQL查询:在测试中执行SQL查询,测试数据库的性能。
  • 管理连接池:管理数据库连接池,提高测试效率。

配置步骤

  1. 添加JDBC Connection Configuration

    • 右键点击线程组(Thread Group)。
    • 选择“添加” -> “配置元件” -> “JDBC Connection Configuration”。
  2. 配置JDBC Connection Configuration

    • 变量名称:给数据库连接一个唯一的变量名称,用于在其他元件中引用。
    • 数据库URL:数据库的连接字符串(例如 jdbc:mysql://localhost:3306/mydatabase)。
    • JDBC驱动类:数据库驱动类的全限定名(例如 com.mysql.jdbc.Driver)。
    • 用户名:连接数据库的用户名。
    • 密码:连接数据库的密码。
    • 连接池配置
      • 最大活动连接数:连接池中最大的活动连接数。
      • 最大空闲连接数:连接池中最大的空闲连接数。
      • 初始连接数:连接池初始化时创建的连接数。
      • 最小空闲连接数:连接池中最小的空闲连接数。
      • 最大等待时间:等待连接的最大时间(毫秒)。
    • 属性:可以添加额外的连接属性(可选)。

示例配置

假设我们需要测试一个MySQL数据库,执行一些SQL查询来验证性能。

  1. 创建测试计划

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

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“查询测试”)。
  3. 添加JDBC Connection Configuration

    • 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> JDBC Connection Configuration。
    • 配置JDBC Connection Configuration:
      • 变量名称myDatabase
      • 数据库URLjdbc:mysql://localhost:3306/mydatabase
      • JDBC驱动类com.mysql.jdbc.Driver
      • 用户名root
      • 密码password
      • 连接池配置
        • 最大活动连接数:10
        • 最大空闲连接数:5
        • 初始连接数:2
        • 最小空闲连接数:1
        • 最大等待时间:30000(30秒)
  4. 添加JDBC请求

    • 右键点击线程组 -> 添加 -> 取样器 -> JDBC请求。
    • 配置JDBC请求:
      • 变量名称:选择刚刚配置的数据库连接变量名称(例如myDatabase)。
      • SQL查询:要执行的SQL查询(例如 SELECT * FROM users)。
      • 查询类型:选择查询类型(例如Select Statement)。
      • 结果变量:存储查询结果的变量名称(可选)。
  5. 添加监听器

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

优化建议

  1. 连接池配置

    • 最大活动连接数:根据测试需求和数据库的性能设置合理的最大活动连接数。
    • 最大空闲连接数:设置合理的最大空闲连接数,避免连接池中过多的空闲连接浪费资源。
    • 初始连接数:设置合理的初始连接数,确保测试开始时有足够的连接可用。
    • 最小空闲连接数:设置合理的最小空闲连接数,确保连接池中始终有一定数量的空闲连接。
    • 最大等待时间:设置合理的最大等待时间,避免因连接不足导致测试失败。
  2. 数据库驱动类

    • 确保使用的数据库驱动类是最新的,并且与数据库版本兼容。
  3. SQL查询优化

    • 确保SQL查询的性能优化,避免执行耗时较长的查询。
  4. 错误处理

    • 使用断言和监听器来捕获和分析查询结果,及时发现和解决问题。
  5. 资源监控

    • 在测试过程中监控数据库的资源使用情况(如CPU、内存、磁盘I/O等),确保测试环境的稳定性。

4e1188d4f80146b28f723ad03d5afd47.png

 


11--Java默认请求

用途

  • 设置默认值:为多个Java请求设置通用的默认值,如类名、方法名等。
  • 简化配置:避免在每个Java请求中重复配置相同的参数。

配置步骤

  1. 添加Java默认请求

    • 右键点击线程组(Thread Group)。
    • 选择“添加” -> “配置元件” -> “Java请求默认值”(Java Request Defaults)。
  2. 配置Java默认请求

    • 名称:给Java默认请求一个有意义的名称。
    • 类名:要调用的Java类的全限定名。
    • 方法名:要调用的Java方法名。
    • 参数:方法的参数列表。
    • 参数类型:参数的类型列表。
    • 参数值:参数的值列表。
    • 其他属性:可以添加其他属性(可选)。

示例配置

假设我们需要测试一个Java类的方法,并希望使用Java默认请求来设置通用的连接信息。

  1. 创建测试计划

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

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“Java测试”)。
  3. 添加Java默认请求

    • 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> Java请求默认值。
    • 配置Java默认请求:
      • 名称:Java默认请求
      • 类名:要调用的Java类的全限定名(例如com.example.MyClass)。
      • 方法名:要调用的Java方法名(例如myMethod)。
      • 参数:方法的参数列表(例如param1,param2)。
      • 参数类型:参数的类型列表(例如java.lang.String,java.lang.Integer)。
      • 参数值:参数的值列表(例如value1,123)。
  4. 添加Java请求

    • 右键点击线程组 -> 添加 -> 取样器 -> Java请求。
    • 配置Java请求:
      • 名称:请求名称(例如“调用MyMethod”)。
      • 类名:留空,使用默认值。
      • 方法名:留空,使用默认值。
      • 参数:留空,使用默认值。
      • 参数类型:留空,使用默认值。
      • 参数值:留空,使用默认值。
  5. 添加监听器

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

优化建议

  1. 默认值

    • 尽可能多地设置默认值,减少每个Java请求的配置工作量。
  2. 类名和方法名

    • 确保类名和方法名的正确性,避免因类名或方法名错误导致测试失败。
  3. 参数配置

    • 确保参数列表、参数类型和参数值的正确性,避免因参数错误导致测试失败。
  4. 动态参数

    • 使用JMeter的变量和函数来动态生成参数值,例如使用${variable}来引用变量。
  5. 调试

    • 使用“查看结果树”监听器查看请求和响应的详细信息,确保Java请求的配置正确无误。
  6. 错误处理

    • 使用断言和监听器来捕获和分析Java请求的结果,及时发现和解决问题。

 

3f4fbf7d6f524f3491d43a3c33e5ab30.png


12--Keystore Configuration

用途

  • 配置密钥库:设置用于存储私钥和证书的密钥库文件。
  • 配置信任库:设置用于存储受信任的CA证书的信任库文件。
  • 支持SSL/TLS连接:确保JMeter能够正确地处理SSL/TLS连接,支持安全的HTTPS请求。

配置步骤

  1. 添加Keystore Configuration

    • 右键点击线程组(Thread Group)。
    • 选择“添加” -> “配置元件” -> “Keystore Configuration”。
  2. 配置Keystore Configuration

    • 名称:给Keystore Configuration一个有意义的名称。
    • 密钥库文件路径:密钥库文件的路径(例如/path/to/keystore.jks)。
    • 密钥库类型:密钥库的类型(默认为JKS)。
    • 密钥库密码:密钥库的密码。
    • 密钥别名:密钥的别名(如果密钥库中包含多个密钥)。
    • 密钥密码:密钥的密码(如果密钥密码与密钥库密码不同)。
    • 信任库文件路径:信任库文件的路径(例如/path/to/truststore.jks)。
    • 信任库类型:信任库的类型(默认为JKS)。
    • 信任库密码:信任库的密码。

示例配置

假设我们需要测试一个需要SSL/TLS连接的Web应用,并希望使用Keystore Configuration来配置密钥库和信任库。

  1. 创建测试计划

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

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“SSL/TLS测试”)。
  3. 添加Keystore Configuration

    • 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> Keystore Configuration。
    • 配置Keystore Configuration:
      • 名称:Keystore Configuration
      • 密钥库文件路径/path/to/keystore.jks
      • 密钥库类型JKS
      • 密钥库密码keystore_password
      • 密钥别名my_key_alias
      • 密钥密码key_password
      • 信任库文件路径/path/to/truststore.jks
      • 信任库类型JKS
      • 信任库密码truststore_password
  4. 添加HTTP请求

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

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

优化建议

  1. 密钥库和信任库路径

    • 确保密钥库和信任库文件路径的正确性,确保JMeter能够找到这些文件。
  2. 密码管理

    • 确保密钥库和信任库的密码正确无误,避免因密码错误导致连接失败。
  3. 密钥别名

    • 如果密钥库中包含多个密钥,确保选择正确的密钥别名。
  4. 调试

    • 使用“查看结果树”监听器查看请求和响应的详细信息,确保SSL/TLS连接配置正确无误。
  5. 错误处理

    • 使用断言和监听器来捕获和分析SSL/TLS连接的错误,及时发现和解决问题。
  6. 性能监控

    • 在测试过程中监控系统的网络性能和SSL/TLS连接的性能,确保测试环境的稳定性。

 

95a64f432e8046a6bec2a2d30bc49479.png


13--LDAP扩展请求默认值

用途

  • 设置默认值:为多个LDAP扩展请求设置通用的默认值,如服务器地址、端口号、用户名和密码等。
  • 简化配置:避免在每个LDAP扩展请求中重复配置相同的参数。

配置步骤

  1. 添加LDAP扩展请求默认值

    • 右键点击线程组(Thread Group)。
    • 选择“添加” -> “配置元件” -> “LDAP扩展请求默认值”(LDAP Extended Request Defaults)。
  2. 配置LDAP扩展请求默认值

    • 名称:给LDAP扩展请求默认值一个有意义的名称。
    • 服务器地址:LDAP服务器的地址(例如ldap.example.com)。
    • 端口号:LDAP服务器的端口(默认为389)。
    • 用户名:连接LDAP服务器的用户名。
    • 密码:连接LDAP服务器的密码。
    • 基DN:LDAP目录的基DN(例如dc=example,dc=com)。
    • 扩展请求OID:扩展请求的OID(对象标识符)。
    • 扩展请求值:扩展请求的值(可选)。
    • 其他属性:可以添加其他属性(可选)。

示例配置

假设我们需要测试一个LDAP服务器,执行一些扩展请求来验证性能。

  1. 创建测试计划

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

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“LDAP测试”)。
  3. 添加LDAP扩展请求默认值

    • 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> LDAP扩展请求默认值。
    • 配置LDAP扩展请求默认值:
      • 名称:LDAP扩展请求默认值
      • 服务器地址ldap.example.com
      • 端口号:389
      • 用户名cn=admin,dc=example,dc=com
      • 密码admin_password
      • 基DNdc=example,dc=com
      • 扩展请求OID1.3.6.1.4.1.1466.20037(示例OID,具体根据需求选择)
      • 扩展请求值:(可选,根据需求填写)
  4. 添加LDAP扩展请求

    • 右键点击线程组 -> 添加 -> 取样器 -> LDAP扩展请求。
    • 配置LDAP扩展请求:
      • 名称:请求名称(例如“执行扩展请求”)。
      • 服务器地址:留空,使用默认值。
      • 端口号:留空,使用默认值。
      • 用户名:留空,使用默认值。
      • 密码:留空,使用默认值。
      • 基DN:留空,使用默认值。
      • 扩展请求OID:留空,使用默认值。
      • 扩展请求值:留空,使用默认值。
  5. 添加监听器

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

优化建议

  1. 默认值

    • 尽可能多地设置默认值,减少每个LDAP扩展请求的配置工作量。
  2. 服务器地址和端口号

    • 确保服务器地址和端口号的正确性,避免因地址或端口错误导致连接失败。
  3. 用户名和密码

    • 确保用户名和密码的正确性,避免因认证失败导致请求失败。
  4. 基DN

    • 确保基DN的正确性,基DN是LDAP目录的根节点,用于定位目录结构。
  5. 扩展请求OID和值

    • 确保扩展请求OID和值的正确性,避免因OID或值错误导致请求失败。
  6. 调试

    • 使用“查看结果树”监听器查看请求和响应的详细信息,确保LDAP扩展请求的配置正确无误。
  7. 错误处理

    • 使用断言和监听器来捕获和分析LDAP扩展请求的结果,及时发现和解决问题。

7dbb998056be4f52b47c9f95aa452427.png

 

14--Random Variable 

用途

  • 生成随机值:为测试中的变量生成随机值。
  • 模拟真实用户行为:通过随机化数据,使测试更接近真实用户的使用场景。
  • 数据多样性:为测试提供多样化的输入数据,提高测试的覆盖率。

配置步骤

  1. 添加Random Variable

    • 右键点击线程组(Thread Group)。
    • 选择“添加” -> “配置元件” -> “随机变量”(Random Variable)。
  2. 配置Random Variable

    • 名称:给随机变量一个有意义的名称。
    • 变量名称:生成的随机值将存储在这个变量中,可以在其他元件中引用这个变量。
    • 最小值:生成随机值的最小值。
    • 最大值:生成随机值的最大值。
    • 输出格式:生成随机值的格式(例如%d表示整数,%s表示字符串)。
    • 种子:随机数生成器的种子值,用于生成可重复的随机序列(可选)。

示例配置

假设我们需要测试一个Web应用,生成随机的用户ID和订单号。

  1. 创建测试计划

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

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

    • 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> 随机变量。
    • 配置随机变量:
      • 名称:随机用户ID
      • 变量名称randomUserId
      • 最小值:1000
      • 最大值:9999
      • 输出格式%d
      • 种子:(可选,留空)
  4. 添加随机变量(订单号)

    • 右键点击线程组 -> 添加 -> 配置元件 -> 随机变量。
    • 配置随机变量:
      • 名称:随机订单号
      • 变量名称randomOrderId
      • 最小值:100000
      • 最大值:999999
      • 输出格式%d
      • 种子:(可选,留空)
  5. 添加HTTP请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:请求名称(例如“提交订单”)。
      • 服务器名称或IP:目标服务器的地址(例如example.com)。
      • 端口号:目标服务器的端口(例如80)。
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 方法:请求的方法(例如POST)。
      • 路径:请求的路径(例如/submitOrder)。
      • 参数
        • 名称userId
        • ${randomUserId}
        • 名称orderId
        • ${randomOrderId}
  6. 添加监听器

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

优化建议

  1. 变量名称

    • 给变量一个有意义的名称,以便在其他元件中引用。
  2. 最小值和最大值

    • 根据测试需求设置合理的最小值和最大值,确保生成的随机值符合预期范围。
  3. 输出格式

    • 根据需要选择合适的输出格式,例如%d表示整数,%s表示字符串。
  4. 种子

    • 如果需要生成可重复的随机序列,可以设置种子值。否则,留空以生成不可预测的随机值。
  5. 调试

    • 使用“查看结果树”监听器查看请求和响应的详细信息,确保随机变量的配置正确无误。
  6. 错误处理

    • 使用断言和监听器来捕获和分析请求的结果,及时发现和解决问题。

cfa0f27a948149d29e262581c42f54bd.png


15--TCP取样器配置

用途

  • 发送和接收TCP消息:模拟客户端与TCP服务器之间的通信。
  • 测试TCP服务器:验证TCP服务器的性能和功能。
  • 自定义消息格式:支持多种消息格式,如文本、二进制等。

配置步骤

  1. 添加TCP取样器

    • 右键点击线程组(Thread Group)。
    • 选择“添加” -> “取样器” -> “TCP取样器”(TCP Sampler)。
  2. 配置TCP取样器

    • 名称:给TCP取样器一个有意义的名称。
    • 服务器名称或IP:TCP服务器的地址。
    • 端口号:TCP服务器的端口。
    • 超时时间:连接和传输的超时时间(毫秒)。
    • 重试次数:连接失败时的重试次数。
    • 关闭连接:选择是否在每次请求后关闭连接。
    • 请求数据:要发送的消息内容。
    • 请求编码:消息的编码方式(例如UTF-8)。
    • 响应编码:服务器返回的消息的编码方式(例如UTF-8)。
    • 响应超时:等待服务器响应的超时时间(毫秒)。
    • 使用EOL字节:选择是否在请求数据末尾添加EOL字节(通常用于文本消息)。
    • EOL字节:指定EOL字节(例如\n)。
    • 使用二进制模式:选择是否使用二进制模式发送和接收消息。
    • 响应字段:指定从服务器返回的消息中提取特定字段(可选)。

示例配置

假设我们需要测试一个TCP服务器,发送一条简单的文本消息并接收响应。

  1. 创建测试计划

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

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“TCP测试”)。
  3. 添加TCP取样器

    • 右键点击刚刚创建的线程组 -> 添加 -> 取样器 -> TCP取样器。
    • 配置TCP取样器:
      • 名称:TCP取样器
      • 服务器名称或IPtcp.example.com
      • 端口号:12345
      • 超时时间:30000(30秒)
      • 重试次数:3
      • 关闭连接:False
      • 请求数据Hello, TCP Server!
      • 请求编码:UTF-8
      • 响应编码:UTF-8
      • 响应超时:30000(30秒)
      • 使用EOL字节:True
      • EOL字节\n
      • 使用二进制模式:False
      • 响应字段:(可选,留空)
  4. 添加监听器

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

优化建议

  1. 服务器地址和端口号

    • 确保服务器地址和端口号的正确性,避免因地址或端口错误导致连接失败。
  2. 超时时间

    • 设置合理的超时时间,避免因网络延迟或服务器性能问题导致测试失败。
  3. 重试次数

    • 根据测试需求设置合理的重试次数,确保在网络不稳定时能够重新尝试连接。
  4. 关闭连接

    • 如果需要保持连接,选择不关闭连接(False)。如果每次请求后都需要关闭连接,选择关闭连接(True)。
  5. 请求和响应编码

    • 确保请求和响应的编码方式一致,避免因编码问题导致消息解析错误。
  6. 使用EOL字节

    • 如果发送的是文本消息,建议使用EOL字节(例如\n),以便服务器正确解析消息。
  7. 二进制模式

    • 如果发送和接收的是二进制数据,选择使用二进制模式(True)。
  8. 调试

    • 使用“查看结果树”监听器查看请求和响应的详细信息,确保TCP取样器的配置正确无误。
  9. 错误处理

    • 使用断言和监听器来捕获和分析TCP请求的结果,及时发现和解决问题。

20797d707b44432988e57657f095f983.png


 

16--用户定义的变量

用途

  • 定义变量:为测试计划定义全局变量,这些变量可以在任何地方引用。
  • 简化配置:避免在多个地方重复配置相同的值。
  • 提高灵活性:通过修改变量值,可以轻松地调整测试计划的行为。

配置步骤

  1. 添加用户定义的变量

    • 右键点击测试计划(Test Plan)。
    • 选择“添加” -> “配置元件” -> “用户定义的变量”(User Defined Variables)。
  2. 配置用户定义的变量

    • 名称:变量的名称。
    • :变量的值。
    • 描述:变量的描述(可选)。

示例配置

假设我们需要测试一个Web应用,使用用户定义的变量来定义服务器地址、端口号和用户数量。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加用户定义的变量

    • 右键点击刚刚创建的测试计划 -> 添加 -> 配置元件 -> 用户定义的变量。
    • 配置用户定义的变量:
      • 名称serverAddress

      • example.com

      • 描述:服务器地址

      • 名称serverPort

      • 80

      • 描述:服务器端口

      • 名称userCount

      • 100

      • 描述:用户数量

  3. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数(用户数)${userCount}
      • 循环次数:1
  4. 添加HTTP请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:请求名称(例如“获取用户列表”)。
      • 服务器名称或IP${serverAddress}
      • 端口号${serverPort}
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 方法:请求的方法(例如GET)。
      • 路径:请求的路径(例如/api/users)。
  5. 添加监听器

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

优化建议

  1. 变量命名

    • 给变量一个有意义的名称,以便在其他元件中引用。
  2. 变量值

    • 确保变量值的正确性,避免因值错误导致测试失败。
  3. 描述

    • 添加描述可以帮助其他团队成员理解变量的作用和用途。
  4. 动态值

    • 使用JMeter的函数和变量来动态生成变量值,例如使用${__P(variableName,default_value)}来从属性文件中读取变量值。
  5. 调试

    • 使用“查看结果树”监听器查看请求和响应的详细信息,确保变量的配置正确无误。
  6. 错误处理

    • 使用断言和监听器来捕获和分析请求的结果,及时发现和解决问题。

 

d20a5c567ae94d08b4b56dbca68fac63.png


17--登录配置原件/素

用途

  • 管理登录信息:为测试计划中的多个请求提供统一的登录信息。
  • 简化配置:避免在每个请求中重复配置用户名和密码。
  • 支持多种认证方式:支持Basic、Digest等认证方式。

配置步骤

  1. 添加登录配置元件

    • 右键点击线程组(Thread Group)。
    • 选择“添加” -> “配置元件” -> “登录配置元件”(Login Config Element)。
  2. 配置登录配置元件

    • 名称:给登录配置元件一个有意义的名称。
    • 用户名变量:存储用户名的变量名称。
    • 密码变量:存储密码的变量名称。
    • 用户名:登录的用户名。
    • 密码:登录的密码。
    • 域名:认证域(可选,主要用于NTLM认证)。
    • 认证方案:选择认证方式(例如Basic、Digest、NTLM等)。

示例配置

假设我们需要测试一个需要Basic认证的Web应用,并为多个请求提供统一的登录信息。

  1. 创建测试计划

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

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
  3. 添加登录配置元件

    • 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> 登录配置元件。
    • 配置登录配置元件:
      • 名称:登录配置元件
      • 用户名变量usernameVar
      • 密码变量passwordVar
      • 用户名user
      • 密码password
      • 域名:(可选,留空)
      • 认证方案:Basic
  4. 添加HTTP请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:请求名称(例如“获取用户列表”)。
      • 服务器名称或IP:目标服务器的地址(例如example.com)。
      • 端口号:目标服务器的端口(例如80)。
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 方法:请求的方法(例如GET)。
      • 路径:请求的路径(例如/api/users)。
      • 使用认证:选择“是”。
      • 用户名${usernameVar}
      • 密码${passwordVar}
      • 域名:(可选,留空)
      • 认证方案:Basic
  5. 添加监听器

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

优化建议

  1. 变量命名

    • 给变量一个有意义的名称,以便在其他元件中引用。
  2. 认证方案

    • 根据目标服务器的认证方式选择合适的认证方案。常见的认证方式包括Basic、Digest和NTLM。
  3. 域名

    • 如果需要使用NTLM认证,确保填写正确的域名。
  4. 调试

    • 使用“查看结果树”监听器查看请求和响应的详细信息,确保登录配置元件的配置正确无误。
  5. 错误处理

    • 使用断言和监听器来捕获和分析认证失败的情况,及时发现和解决问题。
  6. 安全性

    • 确保敏感信息(如用户名和密码)的安全性,避免在公共环境中泄露。

 

c292f773fd634242857fd28faa3f767d.png


18--简单登录原件/素

用途

  • 管理登录信息:为测试计划中的多个请求提供统一的登录信息。
  • 简化配置:避免在每个请求中重复配置用户名和密码。
  • 支持多种认证方式:虽然主要适用于简单的用户名和密码认证,但也可以结合其他认证方式使用。

配置步骤

  1. 添加简单登录元件

    • 右键点击线程组(Thread Group)。
    • 选择“添加” -> “配置元件” -> “简单配置元件”(Simple Config Element)。
  2. 配置简单登录元件

    • 名称:给简单登录元件一个有意义的名称。
    • 参数名称:定义参数的名称。
    • 参数值:定义参数的值。
    • 参数类型:定义参数的类型(例如字符串、数字等)。

示例配置

假设我们需要测试一个需要基本认证的Web应用,并为多个请求提供统一的登录信息。

  1. 创建测试计划

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

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
  3. 添加简单登录元件

    • 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> 简单配置元件。
    • 配置简单登录元件:
      • 名称:简单登录元件
      • 参数名称username
      • 参数值user
      • 参数类型:字符串
      • 参数名称password
      • 参数值password
      • 参数类型:字符串
  4. 添加HTTP请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:请求名称(例如“获取用户列表”)。
      • 服务器名称或IP:目标服务器的地址(例如example.com)。
      • 端口号:目标服务器的端口(例如80)。
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 方法:请求的方法(例如GET)。
      • 路径:请求的路径(例如/api/users)。
      • 使用认证:选择“是”。
      • 用户名${username}
      • 密码${password}
      • 域名:(可选,留空)
      • 认证方案:Basic
  5. 添加监听器

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

优化建议

  1. 变量命名

    • 给变量一个有意义的名称,以便在其他元件中引用。
  2. 参数类型

    • 确保参数类型的正确性,避免因类型错误导致的问题。
  3. 调试

    • 使用“查看结果树”监听器查看请求和响应的详细信息,确保简单登录元件的配置正确无误。
  4. 错误处理

    • 使用断言和监听器来捕获和分析认证失败的情况,及时发现和解决问题。
  5. 安全性

    • 确保敏感信息(如用户名和密码)的安全性,避免在公共环境中泄露。
  6. 多参数配置

    • 如果需要配置多个参数,可以在简单登录元件中添加多个参数条目。

4e603a3147014c5c9666c3baa0c9c9ab.png

 

 

19--计数器

用途

  • 生成递增的数值:为测试计划生成递增的数值。
  • 唯一标识符:生成唯一的标识符,确保每个请求都有一个唯一的值。
  • 数据多样性:为测试提供多样化的输入数据,提高测试的覆盖率。

配置步骤

  1. 添加计数器

    • 右键点击线程组(Thread Group)。
    • 选择“添加” -> “配置元件” -> “计数器”(Counter)。
  2. 配置计数器

    • 名称:给计数器一个有意义的名称。
    • 变量名称:生成的计数值将存储在这个变量中,可以在其他元件中引用这个变量。
    • 起始值:计数器的起始值。
    • 结束值:计数器的结束值(可选,如果不设置则无限递增)。
    • 增量:每次递增的步长。
    • 格式:生成计数值的格式(例如%05d表示五位数,不足部分补零)。
    • 复位策略:选择计数器的复位策略(例如每次迭代、每个用户、每个线程等)。

示例配置

假设我们需要测试一个Web应用,生成唯一的订单号。

  1. 创建测试计划

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

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

    • 右键点击刚刚创建的线程组 -> 添加 -> 配置元件 -> 计数器。
    • 配置计数器:
      • 名称:订单号计数器
      • 变量名称orderNumber
      • 起始值:1
      • 结束值:1000000(可选,如果不设置则无限递增)
      • 增量:1
      • 格式%06d(生成六位数,不足部分补零)
      • 复位策略:每次迭代
  4. 添加HTTP请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:请求名称(例如“提交订单”)。
      • 服务器名称或IP:目标服务器的地址(例如example.com)。
      • 端口号:目标服务器的端口(例如80)。
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 方法:请求的方法(例如POST)。
      • 路径:请求的路径(例如/submitOrder)。
      • 参数
        • 名称orderId
        • ${orderNumber}
  5. 添加监听器

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

优化建议

  1. 变量命名

    • 给变量一个有意义的名称,以便在其他元件中引用。
  2. 起始值和结束值

    • 根据测试需求设置合理的起始值和结束值,确保生成的计数值符合预期范围。
  3. 增量

    • 根据需要设置合适的增量,确保计数值按预期递增。
  4. 格式

    • 根据需要选择合适的格式,例如%06d表示六位数,不足部分补零。
  5. 复位策略

    • 选择合适的复位策略,确保计数器在适当的时间点复位。常用的复位策略包括每次迭代、每个用户、每个线程等。
  6. 调试

    • 使用“查看结果树”监听器查看请求和响应的详细信息,确保计数器的配置正确无误。
  7. 错误处理

    • 使用断言和监听器来捕获和分析请求的结果,及时发现和解决问题。

0ed449d52709464ab77ff74e89131d7e.png


20--LDAP默认请求

功能特点

  • LDAP 操作:支持多种 LDAP 操作,如搜索、添加、删除、修改等。
  • 动态参数传递:可以动态设置请求参数,满足复杂的测试需求。
  • 身份验证:支持不同的身份验证方式,如简单绑定、SSL 绑定等。

配置步骤

  1. 添加 LDAP 默认请求

    • 右键点击需要添加取样器的线程组。
    • 选择“添加” -> “取样器” -> “LDAP 默认请求”(LDAP Default Request)。
  2. 配置 LDAP 默认请求

    • 名称:给 LDAP 默认请求一个有意义的名称。
    • 服务器:输入 LDAP 服务器的地址。
    • 端口:输入 LDAP 服务器的端口。
    • 身份验证:选择身份验证方式(例如,简单绑定)。
    • 用户名:输入用于身份验证的用户名。
    • 密码:输入用于身份验证的密码。
    • 基 DN:输入搜索的基 DN(Distinguished Name)。
    • 搜索过滤器:输入用于搜索的过滤器。
    • 搜索范围:选择搜索范围(例如,Base、One、Sub)。
    • 属性:输入要返回的属性列表。
    • 操作类型:选择要执行的操作类型(例如,搜索、添加、删除、修改)。
    • 请求数据:根据操作类型填写相应的请求数据。

参数说明

  • 名称:给 LDAP 默认请求一个有意义的名称。
  • 服务器:输入 LDAP 服务器的地址。
  • 端口:输入 LDAP 服务器的端口。
  • 身份验证:选择身份验证方式(例如,简单绑定)。
  • 用户名:输入用于身份验证的用户名。
  • 密码:输入用于身份验证的密码。
  • 基 DN:输入搜索的基 DN(Distinguished Name)。
  • 搜索过滤器:输入用于搜索的过滤器。
  • 搜索范围:选择搜索范围(例如,Base、One、Sub)。
  • 属性:输入要返回的属性列表。
  • 操作类型:选择要执行的操作类型(例如,搜索、添加、删除、修改)。
  • 请求数据:根据操作类型填写相应的请求数据。

示例配置

假设我们需要测试一个 LDAP 服务器,并执行一个简单的搜索操作,查找特定用户的详细信息。

  1. 创建测试计划

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

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

    • 右键点击线程组 -> 添加 -> 取样器 -> LDAP 默认请求。
    • 配置 LDAP 默认请求:
      • 名称:搜索用户
      • 服务器:ldap.example.com
      • 端口:389
      • 身份验证:简单绑定
      • 用户名:cn=admin,dc=example,dc=com
      • 密码:adminpassword
      • 基 DN:dc=example,dc=com
      • 搜索过滤器:(uid=johndoe)
      • 搜索范围:Sub
      • 属性:cn, uid, mail
      • 操作类型:搜索
  4. 运行测试

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

优化建议

  1. 身份验证

    • 确保身份验证信息正确无误,能够成功连接到 LDAP 服务器。
  2. 基 DN 和搜索过滤器

    • 确保基 DN 和搜索过滤器正确无误,能够准确匹配所需的数据。可以通过 LDAP 浏览器工具进行验证。
  3. 搜索范围

    • 根据实际需求选择合适的搜索范围。常见的搜索范围有:
      • Base:仅搜索基 DN 对应的对象。
      • One:搜索基 DN 下一层的所有对象。
      • Sub:搜索基 DN 及其所有子对象。
  4. 属性

    • 输入要返回的属性列表,确保返回的数据符合预期。
  5. 操作类型

    • 根据实际需求选择合适的操作类型。常见的操作类型有:
      • 搜索:搜索 LDAP 目录。
      • 添加:添加新的条目。
      • 删除:删除现有的条目。
      • 修改:修改现有条目的属性。
  6. 错误处理

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

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和一个 LDAP 默认请求,并希望执行一个简单的搜索操作,查找特定用户的详细信息。

  1. 创建测试计划

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

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

    • 右键点击线程组 -> 添加 -> 取样器 -> LDAP 默认请求。
    • 配置 LDAP 默认请求:
      • 名称:搜索用户
      • 服务器:ldap.example.com
      • 端口:389
      • 身份验证:简单绑定
      • 用户名:cn=admin,dc=example,dc=com
      • 密码:adminpassword
      • 基 DN:dc=example,dc=com
      • 搜索过滤器:(uid=johndoe)
      • 搜索范围:Sub
      • 属性:cn, uid, mail
      • 操作类型:搜索
  4. 运行测试

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

 

 

 

 

 

 

b6df95348bbf45dba24febf02dab0027.png


 

 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis持久化、主从及哨兵架构详解

Redis持久化 RDB快照&#xff08;snapshot&#xff09; 在默认情况下&#xff0c;Redis将内存数据库快照保存在名字为dump.rdb的二进制文件中。 你可以对Redis进行设置&#xff0c;让它在“N秒内数据集至少有M个改动”这一条件被满足时&#xff0c;自动保存一次数据集。 比…

双向链表、循环链表、栈

双向循环链表 class Node:#显性定义出构造函数def __init__(self,data):self.data data #普通节点的数据域self.next None #保存下一个节点的链接域self.prior None #保存前一个节点饿链接域 class DoubleLinkLoop:def __init__(self, node Node):self.head nodeself.siz…

【青牛科技】D1671 75Ω 带4级低通滤波的单通道视频放大电 路芯片介绍

概 述 &#xff1a; D1671是 一 块 带 4级 低 通 滤 波 的 单 通 道 视 频 放 大 电 路 &#xff0c; 可 在3V或5V的 低 电 压 下 工 作 。 该 电 路 用 在 有 TV影 象 输 出 功 能 的 产 品 上 面&#xff0c;比如 机 顶 盒 &#xff0c;监 控 摄 象 头 &#xff0c;DVD&#…

Linux服务器生成SSH 密钥对与 GitLab 仓库进行交互

目录 生成 SSH 密钥对 将公钥添加到 GitLab 测试 SSH 连接 生成 SSH 密钥对 在执行脚本的机器上打开终端&#xff0c;执行以下命令&#xff08;假设使用默认的 RSA 算法&#xff0c;一路回车使用默认设置即可&#xff0c;也可以根据需要指定其他算法和参数&#xff09;&…

关于SpringBoot集成Kafka

关于Kafka Apache Kafka 是一个分布式流处理平台&#xff0c;广泛用于构建实时数据管道和流应用。它能够处理大量的数据流&#xff0c;具有高吞吐量、可持久化存储、容错性和扩展性等特性。 Kafka一般用作实时数据流处理、消息队列、事件架构驱动等 Kafka的整体架构 ZooKeeper:…

在Unity中实现物体动画的完整流程

在Unity中&#xff0c;动画是游戏开发中不可或缺的一部分。无论是2D还是3D游戏&#xff0c;动画都能为游戏增添生动的视觉效果。本文将详细介绍如何在Unity中为物体添加动画&#xff0c;包括资源的准备、播放组件的添加、动画控制器的创建以及动画片段的制作与调度。 1. 准备动…

自定义协议

1. 问题引入 问题&#xff1a;TCP是面向字节流的&#xff08;TCP不关心发送的数据是消息、文件还是其他任何类型的数据。它简单地将所有数据视为一个字节序列&#xff0c;即字节流。这意味着TCP不会对发送的数据进行任何特定的边界划分&#xff0c;它只是确保数据的顺序和完整…

Spring Boot 3.4.0 发行:革新与突破的里程碑

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…

android 11添加切换分屏功能

引言 自Android 7开始官方就支持分屏显示,但没有切换分屏的功能,即交换上下屏幕。直到Android 13开始才支持切换分屏,操作方式是:分屏模式下双击中间分割线就会交换上下屏位置。本文的目的就是在Android 11上实现切换分屏的功能。 下图是Android13切换分屏演示 切换分屏…

PyTorch基础05_模型的保存和加载

目录 一、模型定义组件——重构线性回归 二、模型的加载和保存 2、序列化保存对象和加载 3、保存模型参数 一、模型定义组件——重构线性回归 回顾之前的手动构建线性回归案例&#xff1a; 1.构建数据集&#xff1b;2.加载数据集(数据集转换为迭代器)&#xff1b;3.参数初…

JavaScript核心语法(3)

前两篇文章大概把JavaScript的基础语法讲了一下&#xff0c;这篇文章主要讲讲ES6的核心语法。ES6的核心语法说实话其实有点多&#xff0c;我重点挑一些经常在项目中用到的来讲&#xff0c;其他一些我没怎么见过的就不讲了。 目录 1.变量和常量 变量&#xff08;let 和 var&a…

爬虫开发(5)如何写一个CSDN热门榜爬虫小程序

笔者 綦枫Maple 的其他作品&#xff0c;欢迎点击查阅哦~&#xff1a; &#x1f4da;Jmeter性能测试大全&#xff1a;Jmeter性能测试大全系列教程&#xff01;持续更新中&#xff01; &#x1f4da;UI自动化测试系列&#xff1a; SeleniumJava自动化测试系列教程❤ &#x1f4da…

NIO三大组件

现在互联网环境下&#xff0c;分布式系统大相径庭&#xff0c;而分布式系统的根基在于网络编程&#xff0c;而netty恰恰是java领域的网络编程的王者&#xff0c;如果要致力于并发高性能的服务器程序、高性能的客户端程序&#xff0c;必须掌握netty网络编程。 NIO基础 NIO是从ja…

34 基于单片机的指纹打卡系统

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于STC89C52RC&#xff0c;采用两个按键替代指纹&#xff0c;一个按键按下&#xff0c;LCD12864显示比对成功&#xff0c;则 采用ULN2003驱动步进电机转动&#xff0c;表示开门&#xff0c;另一个…

李宏毅机器学习课程知识点摘要(14-18集)

线性回归&#xff0c;逻辑回归&#xff08;线性回归sigmoid&#xff09;&#xff0c;神经网络 linear regression &#xff0c; logistic regression &#xff0c; neutral network 里面的偏导的相量有几百万维&#xff0c;这就是neutral network的不同&#xff0c;他是…

文件上传upload-labs-docker通关

&#xff08;图片加载不出&#xff0c;说明被和谐了&#xff09; 项目一&#xff1a; sqlsec/ggctf-upload - Docker Image | Docker Hub 学习过程中,可以对照源码进行白盒分析. 补充&#xff1a;环境搭建在Linux虚拟机上的同时&#xff0c;以另一台Windows虚拟机进行测试最…

【Android】静态广播接收不到问题分析思路

参考资料&#xff1a; Android 静态广播注册流程(广播2)-CSDN博客 Android广播发送流程(广播3)_android 发送广播-CSDN博客 https://zhuanlan.zhihu.com/p/347227068 在Android中&#xff0c;静态广播如果静态广播不能接收&#xff0c;我们可以从整个流程中去分析&#xff…

2024 APMCM亚太数学建模C题 - 宠物行业及相关产业的发展分析和策略(详细解题思路)

在当下&#xff0c; 日益发展的时代&#xff0c;宠物的数量应该均为稳步上升&#xff0c;在美国出现了下降的趋势&#xff0c; 中国 2019-2020 年也下降&#xff0c;这部分变化可能与疫情相关。需要对该部分进行必要的解释说明。 问题 1: 基于附件 1 中的数据及您的团队收集的额…

Git简单介绍

一、 Git介绍与安装 1.1 Git简介 Git是一个开源的分布式版本控制系统&#xff0c;可以有效、高速地处理从很小到非常大的项目版本管理。 1.2集中式(SVN&#xff09; VS 分布式(git) 集中式版本控制系统&#xff0c;版本库是集中存放在中央服务器的&#xff0c;工作时要先从中央…

CSS之3D转换

三维坐标系 三维坐标系其实就是指立体空间&#xff0c;立体空间是由3个轴共同组成的。 x轴:水平向右注意:x右边是正值&#xff0c;左边是负值 y轴:垂直向下注意:y下面是正值&#xff0c;上面是负值 z轴:垂直屏幕注意:往外面是正值&#xff0c;往里面是负值 3D移动 translat…