了解jmeter添加菜单

本文详细介绍了JMeter的各种组件,包括线程(Threads)、配置元件、监听器、定时器、前置处理器、后置处理器、断言、Samplers和逻辑控制器。配置元件如CSV Data Set Config用于读取数据,HTTP授权管理器处理登录,监听器如View Results Tree展示采样结果,定时器如Constant Timer设置请求间隔,后置处理器如正则表达式提取器提取响应数据,Samplers如HTTP请求执行网络请求,逻辑控制器如循环控制器控制执行顺序。这些组件结合使用,可实现全面的性能测试。

Threads

线程,主要设定虚拟用户数以及执行虚拟用户前前后后的操作,包括以下:

  1. setUp Thread Group:执行预测试操作
  2. tearDown Thread Group:执行后置测试操作
  3. 定义虚拟用户数

配置元件

用于初始化默认值和变量,以便后续采样器使用。有以下配置:

  1. CSV Data Set Config:从文件中读取数据行,并将它们拆分后存储到变量中。
  2. FTP Request Defaults:设置FTP请求的默认值。
  3. DNS缓存管理器(DNS Cache Manager):只用在线程组或者测试计划的根节点。不要将它作为特定HTTP采样器的子元件。只能与采用HTTPClient实现的HTTP请求一起工作。
  4. HTTP授权管理器(HTTP Authorization Manager):帮助测试人员针对Web页面(使用服务器校验限制)的一个或者多个登录。
  5. HTTP Cache Manager:被用来为其作用域范围内的HTTP请求提供缓存功能。
  6. HTTP Cookie管理器(HTTP Cookie Manger):两个功能,一是像Web浏览器一样存储和发送cookie。其二是手动为Cookie管理器添加一个cookie。
  7. HTTP请求默认值(HTTP Request Defaults):设置HTTP请求使用的默认值。
  8. HTTP信息头管理器(HTTP Header Manager):添加或者重载HTTP信息头。
  9. JDBC Connection Configuration:数据库连接设置。
  10. Java请求默认值(Java Request Defaults):设置java默认请求值。
  11. 密钥库配置元件(KeyStore Configuration):配置如何加载密钥库,以及使用哪些密钥。
  12. 登录配置元件:为采样器添加或重载用户名和密码
  13. LDAP请求默认值(LDAP Request Defaults):这是LDAP测试的默认值。
  14. LDAP Extended Request Defaults:设置扩展LDAP测试的默认值。
  15. TCP采样器配置(TCP Sampler Config):提供TCP采样器的默认数据。
  16. 用户定义的变量(User Defined Variables):用户定义的变量,常用。
  17. Random Variable:设置随机产生数字字符串,然后将其放到变量之中。
  18. 计数器(Counter):创建一个计数器,可以在线程组中任意一个地方被引用。
  19. 简单配置元件(Sample Config Element):给用户在采样器中添加或者重载任意值。

监听器

监听器是展示采样结果的测试元件。
假如用户需要查看采用结果中的服务器响应,可以在测试计划中加入View Results Tree(查看结果数)或者View Results in table(用表格查看结果)这两种监听器。
如果用户要通过绘图方式查看响应时长,则可以使用图形结果(graph results)、spline results、distribution graph这三种监听器。


定时器

作用于采样器上。

  1. 固定定时器(Constant Timer):请求之间间隔固定时长。
  2. 高斯随机定时器(Gaussion Random Timer):暂停每个线程请求一个随机时长,大多数时间间隔接近于一个固定值。
  3. .Uniform Random Timer:暂停每个线程请求一个随机时长,每个时间间隔都有同样的出现几率。
  4. Constant Throughput Timer:引入可变暂停市场,通过计算来保证总吞吐量尽可能接近指定的值。
  5. Synchronizing Timer:阻塞线程,等同于集合点。
  6. BeanShell Timer:产生延迟。
  7. BSF Timer:使用BSF脚本来产生延迟。
  8. JSR223 Timer:使用JSR223脚本语言来产生延迟。
  9. Poisson Random Timer:暂停线程请求一个随机的时长,其中大多数时间间隔接近一个特定值。

前置处理器

用来修改其作用域范围内的采样器。

  1. HTML链接解析器(HTML Link Parser):修改器解析从服务器得到的HTML响应,并从中提取链接和表单。
  2. HTML URL重写修饰符(HTML URL Re-writing Modifier):与HTML Link Parser类似
  3. 用户参数(User Parameters):为独立线程的用户变量指定值。
  4. BeanShell PreProcessor:在发生采样之前执行代码
  5. JSR PreProcessor:在发生采样之前执行代码
  6. JDBC PreProcessor:在采样运行前执行SQL statement
  7. RegEx User Parameters:通过正则表达式从其他HTTP请求提取的HTTP参数指定动态值。

后置处理器

后置处理器在采样器之后生效。

  1. 正则表达式提取器(Regular Expression Extractor):通过正则表达式从服务器响应中提取值
  2. CSS/JQuery Extractor:像语法分析一样从服务器响应中提取值
  3. XPath Extractor:通过XPath查询语言从结构化响应(XML或者(X)HTML)中提取值
  4. Result Status Action Handler:在相关采样器失败时停止线程或整个测试
  5. BeanShellPostProcesser:发生采样之后执行代码
  6. JSR223 PostProcessor:发生采样后执行JSR223脚本代码
  7. JDBC PostProcessor:采样结束后运行一些SQL statement

断言

用于对采样器进行额外的检查。

  1. 响应断言(Response Assertion):模式字符串与响应文本各个域进行比较。
  2. Size Assertion:测试每个响应包含正确的字节数。
  3. XML Assertion:测试响应数据包含一个形式上正确的XML文档。
  4. BeanShell Assertion:对BeanShell Script进行断言。
  5. XPath Assertion:测试文档有没有良好的结构,它有通过DTD验证的选项,或者把文件通过JTidy并测试XPath。
  6. JSR223 Assertion:使用JSR223脚本代码去检查前一次采样的状态。
  7. SMIME Assertion:从Mail Reader Sampler中评估采样结果,断言验证一个MIME消息的包体是否被签名了。

Samplers

Jmeter中执行各种测试元件。包含以下测试元件:

  1. FTP请求(FTP Request)
  2. HTTP请求(HTTP Request)
  3. JDBC请求(JDBC Request)
  4. Java请求(JavaRequest)
  5. LDAP请求(LDAP Request)
  6. LDAP扩展请求(LDAP Extended Request)
  7. 访问日志采样(AccessLogSampler)
  8. BeanShell采样器(BeanShell Sampler)
  9. JSR223采样器(JSR223 Sampler)
  10. TCP采样器(TCP Sampler)
  11. JMS Plublisher
  12. JMS Subscriber
  13. JMS Point-to-Point
  14. JUnit Request
  15. Mail Reader Smapler
  16. SMTP Sampler
    17.操作系统进程采样器(OS Process Sampler)

逻辑控制器

逻辑控制器来决定采样器的处理顺序。有以下逻辑控制器:

  1. 简单控制器(Simple Controller):组合采样器以及其他逻辑控制器。
  2. 循环控制器(Loop Controller):如果将采样器或者逻辑控制器放到循环控制器之下,那么JMeter会将他们循环执行数次,循环次数在循环控制器中设定。
  3. 仅一次控制器(Once Only Controller):仅一次控制器会告诉Jmeter只执行其下的控制器一次,接下来测试计划中的循环执行会跳过该控制器下的所有请求。
  4. 交替逻辑控制器(Interleave Controller):交替执行该控制器下的元件。
  5. 随机控制器(Random Controller):类似于交替控制器,唯一不同的就是其下的自测试元件不会按顺序轮流执行,而是每次循环随机选择一个执行。、
  6. 随机顺序控制器(Random Order Controller):其每一个子测试元件都至多执行一次,但是执行顺序确是随机的。
  7. 吞吐量控制器(Throughout Controller):吞吐量控制器允许用户设定其被执行的频率。
  8. 运行时长控制器(Runtime Controller):控制子测试元件允许运行的时长。
  9. 如果控制器(If Controller):控制其下的子测试元件是否执行。
  10. While Controller:一直运行自己的子测试元件,直到条件变为false。
  11. Switch Controller:每一次循环都执行其下的子测试元件,按照Switch Value选择执行。
  12. ForEach控制器:循环遍历一系列相关变量。
  13. 模块控制器(Module Controller):模块控制器提供了一个机制,即在当前测试计划中动态地替换测试计划片段。
  14. Include Controller:被设计用于使用外部jmx文件。
  15. 事务控制器(Transaction Controller):会产生一个额外的采用,用于衡量执行嵌套测试元件所耗费的全部时间,常用,特别是测一类的业务的时候会用到。
  16. 录制控制器:是一个存放位置,指明了代理服务器录制的采样应该放在那里。
  17. 临界区控制(Critical Section Controller):确保它的子元件(采样器/控制器等)只会被一个线程执行,在控制器的子元件执行前会上锁。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值