Jmeter --学习记录5 Jmeter常用控件(采样器)
1. 采样器(Samplers )
采样器执行 JMeter 的实际工作。每个采样器(流量控制操作除外)生成一个或多个采样结果。示例结果具有各种属性(成功/失败、经过的时间、数据大小等),可以在各种侦听器中查看。
JMeter 采样器包括:
- FTP Request:此控制器允许您向 FTP 服务器发送 FTP"检索文件"或"上载文件"请求。如果要向同一 FTP 服务器发送多个请求,请考虑使用 FTP 请求默认值配置元素,这样就不必为每个 FTP 请求生成控制器输入相同的信息。下载文件时,可以将其存储在磁盘(本地文件)和/或响应数据中。
延迟设置为登录所需的时间。
- HTTP Request (can be used for SOAP or REST Webservice also):
向 Web 服务器发送 HTTP/HTTPS 请求。它还允许控制 JMeter 是否解析图像和其他嵌入资源的 HTML 文件,并发送 HTTP 请求来检索它们。检索以下类型的嵌入资源:
- 图像
- 小程序
- 样式表 (CSS) 和从这些文件引用的资源
- 外部脚本
- 帧, 内联帧
- 背景图像(正文、表格、TD、TR)
- 背景声音
Java HTTP 实现有一些限制:
-
- 无法控制如何重用连接。当 JMeter 释放连接时,同一线程可能会或可能不会重用该连接。
- 该 API 最适合单线程使用 - 各种设置通过系统属性定义,因此适用于所有连接。
- 不支持 Kerberos 身份验证
- 它不支持使用密钥库配置进行基于客户端的证书测试。
- 更好地控制重试机制
- 它不支持虚拟主机。
- 它仅支持以下方法:GET,POST,HEAD,OPTIONS,PUT,DELETE和TRACE
- 使用 DNS 缓存管理器更好地控制 DNS 缓存
- JDBC Request:此采样器允许您向数据库发送 JDBC 请求(SQL 查询)
- Java object request:此采样器允许您控制实现 org.apache.jmeter.protocol.java.sampler.JavaSamplerClient 接口的 java 类
- JMS request:JMS 发布服务器会将消息发布到给定的目标(主题/队列),JMeter 不包含任何 JMS 实现 jar;这必须从 JMS 提供程序下载并放入 lib 目录中
- JUnit Test request:当前实现支持标准 JUnit 约定和扩展。它还包括oneTimeSetUp和oneTimeTearDown等扩展。采样器的工作方式与 Java 请求类似,但有一些差异。
- 它不是使用JMeter的测试接口,而是扫描jar文件中扩展JUnit的TestCase类的类。这包括任何类或子类。
- JUnit test jar 文件应该放在 jmeter/lib/junit 而不是 /lib 目录中。还可以使用"user.classpath"属性指定在何处查找 TestCase 类。
- JUnit 采样器不像 Java 请求那样使用名称/值对进行配置。采样器假定 setUp 和 tearDown 将正确配置测试。
- 采样器仅测量测试方法的已用时间,不包括 setUp 和 tearDown。
- 每次调用测试方法时,JMeter 都会将结果传递给侦听器。
- 对oneTimeSetUp和oneTimeTearDown的支持是作为一种方法完成的。由于JMeter是多线程的,我们不能像Maven那样调用oneTimeSetUp/oneTimeTearDown。
- 采样器将意外异常报告为错误。标准 JUnit 测试运行程序和 JMeter 的实现之间存在一些重要差异。JMeter 不是为每个测试创建一个新的类实例,而是为每个采样器创建 1 个实例并重用它。这可以通过复选框"每个样本创建一个新实例"进行更改。
如果使用 setUp 和 tearDown,请确保这些方法已声明为公共。否则,测试可能无法正常运行。
以下是编写 JUnit 测试的一些一般准则,以便它们能够很好地与 JMeter 配合使用。由于JMeter运行多线程,因此牢记某些事项非常重要。编写 setUp 和 tearDown 方法,以便它们线程安全。这通常意味着避免使用静态成员。
- 使测试方法成为离散的工作单元,而不是长动作序列。通过将测试方法保持在离散操作中,可以更轻松地组合测试方法以创建新的测试计划。
- 避免使测试方法相互依赖。由于 JMeter 允许对测试方法进行任意排序,因此运行时行为与默认的 JUnit 行为不同。
- 如果测试方法是可配置的,请注意属性的存储位置。建议从 Jar 文件中读取属性。
- 每个采样器都会创建测试类的一个实例,因此请编写测试,以便在 oneTimeSetUp 和 oneTimeTearDown 中进行设置。
- LDAP Request:此采样器允许您向 LDAP 服务器发送不同的 LDAP 请求(添加、修改、删除和搜索)
- Mail request:邮件阅读器采样器可以使用 POP3(S) 或 IMAP(S) 协议读取(和选择性地删除)邮件
- OS Process request:OS 进程采样器是可用于在本地计算机上执行命令的采样器。
它应该允许执行可以从命令行运行的任何命令。
可以启用返回代码的验证,并且可以指定预期的返回代码 - TCP request:TCP 采样器打开与指定服务器的 TCP/IP 连接。然后,它发送文本,并等待响应。
- SMTP Sampler:SMTP 采样器可以使用 SMTP/SMTPS 协议发送邮件。可以为连接设置安全协议(SSL 和 TLS)以及用户身份验证。如果使用安全协议,则将对服务器证书进行验证。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)