JMeter 教程 - 测试计划的元件

在 JMeter 中,测试计划由多个元件(Elements)组成,每个元件都有其特定的用途。了解和使用这些元件可以帮助你创建高效的测试计划。以下是 JMeter 中常用的测试计划元件及其用途的详细介绍。

一、线程组(Thread Group)

线程组是测试计划的基础,定义了虚拟用户的行为和数量。

  • Number of Threads (users):设置虚拟用户的数量。
  • Ramp-Up Period (seconds):设置启动所有用户所需的时间。
  • Loop Count:设置循环次数。

示例

Thread Group
    Number of Threads: 10
    Ramp-Up Period: 5
    Loop Count: 2

此配置表示在 5 秒内启动 10 个虚拟用户,并循环执行 2 次。

二、配置元件(Config Element)

配置元件用于为采样器提供共享的配置数据。

常见配置元件:
  • HTTP Request Defaults:设置 HTTP 请求的默认值。
  • CSV Data Set Config:从 CSV 文件中读取数据,用于参数化测试。
  • User Defined Variables:定义全局变量。

示例

HTTP Request Defaults
    Server Name or IP: www.example.com
    Port Number: 80

此配置为所有 HTTP 请求设置默认的服务器地址和端口。

三、前置处理器(Pre-Processor)

前置处理器在采样器执行之前运行,用于修改请求。

常见前置处理器:
  • HTTP URL Re-writing Modifier:重写 URL 中的参数。
  • User Parameters:动态设置用户参数。

示例

HTTP URL Re-writing Modifier
    URL: http://www.example.com/${sessionId}

此配置将请求中的 ${sessionId} 替换为实际的会话 ID。

四、采样器(Sampler)

采样器是执行实际请求的元件。

常见采样器:
  • HTTP Request:发送 HTTP 请求。
  • JDBC Request:执行数据库查询。
  • FTP Request:执行 FTP 操作。

示例

HTTP Request
    Name: Get Home Page
    Path: /
    Method: GET

此配置发送一个 GET 请求到根路径。

五、定时器(Timer)

定时器用于在请求之间添加延迟。

常见定时器:
  • Constant Timer:设置固定的延迟时间。
  • Uniform Random Timer:设置随机的延迟时间。

示例

Constant Timer
    Delay: 2000

此配置在每个请求之间添加 2 秒的延迟。

六、断言(Assertion)

断言用于验证响应数据是否符合预期。

常见断言:
  • Response Assertion:验证响应文本、响应码等。
  • Duration Assertion:验证响应时间。
  • Size Assertion:验证响应大小。

示例

Response Assertion
    Field to Test: Text Response
    Pattern Matching Rules: Contains
    Patterns to Test: "Welcome"

此配置验证响应文本中是否包含“Welcome”。

七、后置处理器(Post-Processor)

后置处理器在采样器执行之后运行,用于处理响应数据。

常见后置处理器:
  • Regular Expression Extractor:使用正则表达式提取响应数据。
  • JSON Extractor:从 JSON 响应中提取数据。

示例

Regular Expression Extractor
    Reference Name: sessionId
    Regular Expression: "sessionId=(\d+)"
    Template: $1$
    Match No.: 1

此配置从响应中提取会话 ID 并存储在变量 sessionId 中。

八、监听器(Listener)

监听器用于收集和显示测试结果。

常见监听器:
  • View Results Tree:显示每个请求的详细信息。
  • Summary Report:显示汇总的性能数据。
  • Aggregate Report:显示聚合的性能数据。

示例

Summary Report

此配置显示所有请求的汇总性能数据,包括吞吐量、平均响应时间和错误率。

九、逻辑控制器(Logic Controller)

逻辑控制器用于控制请求的执行顺序和逻辑。

常见逻辑控制器:
  • Loop Controller:重复执行其包含的采样器。
  • If Controller:根据条件执行其包含的采样器。
  • Transaction Controller:将多个采样器视为一个事务。

示例

If Controller
    Condition: "${JMeterThread.last_sample_ok} == true"
    Evaluate for all children: true

此配置在上一个请求成功时才执行包含的采样器。

十、使用示例

下面是一个简单的示例测试计划,包含了所有上述元件:

Test Plan
    Thread Group
        Number of Threads: 5
        Ramp-Up Period: 10
        Loop Count: 2
        HTTP Request Defaults
            Server Name or IP: www.example.com
            Port Number: 80
        CSV Data Set Config
            Filename: users.csv
            Variable Names: username,password
        User Defined Variables
            sessionId: ${__UUID()}
        HTTP Request
            Name: Get Home Page
            Path: /
            Method: GET
        Constant Timer
            Delay: 2000
        Response Assertion
            Field to Test: Text Response
            Pattern Matching Rules: Contains
            Patterns to Test: "Welcome"
        Regular Expression Extractor
            Reference Name: sessionId
            Regular Expression: "sessionId=(\d+)"
            Template: $1$
            Match No.: 1
        View Results Tree
        Summary Report

总结

JMeter 的测试计划由多个元件组成,每个元件都有特定的功能和配置选项。通过组合使用这些元件,可以创建复杂而灵活的测试计划,以满足各种性能测试需求。了解和熟练使用这些元件是进行有效性能测试的关键。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值