目录:
HTTP Request
JDBC Request
FTP Request
Java Request
SMTP Sampler
Access Log Sampler
OS Process Sampler
采样器是执行JMETER的实际工作,每个采样器生成一个或多个采样结果,分析结果
HTTP Request
什么是HTTP Request
HTTP Request允许将 HTTP/HTTPS 请求发送到 Web 服务器
参数
- Protocol [http]: 请求协议
- Server Name or IP: 服务器名称或IP,例如 www.example.com。[不要包含 http:// 前缀
- Port Number: Web 服务器端口号
- Request : 请求方法,例如:GET\POST
- Path: 资源的路径(例如,/servlets/myServlet)。如果 资源需要查询字符串参数,在“Parameters” 设置参数
- Content encoding: 内容编码
- Redirect Automatically: 自动重定向
- Follow Redirects: 跟随重定向
- Use KeepAlive: 使用 KeepAlive
- Use multipart/form-data: 对POST使用multipart / form-data
- Browser-compatible headers: 与浏览器兼容的头
- Parameters : 参数
- Body Date: 消息体数据
- Files Upload: 文件上传
参数
Client implementation
- Implementation: 有两种模式ava\ HttpClient4. 如果未指定(并且未由 HTTP 请求默认值定义),则默认值取决于 JMeter 属性 jmeter.httpsampler 的值,否则将使用 HttpClient4 实现。
Timeouts (milliseconds)
-
Connect: 连接超时。等待连接打开的毫秒数。
-
Response: 响应超时。等待响应的毫秒数。
-
Embedded Resources from HTML Files::从 HTML 文件中检索所有嵌入的资源,告诉 JMeter 解析 HTML 文件 并为文件中引用的所有图像、Java 小程序、JavaScript 文件、CSS 等发送 HTTP/HTTPS 请求。
-
Retrieve All Embedded Resources: 从HTML文件获取所有内含的资源
-
Parallel downloads. Number: 并行下载数量
-
URLs must match: 网址必须匹配 URL 匹配的正则表达式
-
URls must not match:,不匹配的网址表达式。用于筛选出找到的任何嵌入式 URL 的正则表达式。 因此,如果您不想从任何来源下载 PNG 或 SVG 文件,请使用表达式:.*.(?i:svg|png)
-
Source address: 源地址
-
Ip/Hostname: 仅适用于具有 HTTPClient 实现的 HTTP 请求],选择Ip/Hostname以使用特定 IP 地址或(本地)主机名
- Proxy Server: 代理服务器
- Scheme:
- Server Name or IP:
- Port Number:
- Username:
- Password:
- Save response as MD5 hash? 将响应保存为 MD5 hash
JDBC Request
JDBC Request介绍
此JDBC Request允许您将 JDBC 请求(SQL 查询)发送到数据库。
在工作中我们有时候需要对数据库进行测试,比如想看一下这个SOL的性能怎么样?这个存储过程性能怎么样?JMeter 提供了这方面的支持。说到底就是JMeter 提供程序帮我们建立了连接池,连接池的配置由我们设置;然后又提供程序来执行我们给出的 SQL 语句,同时提供参数化的功能,唯一遗憾的是一个JDBC Request 只能执行一条语句。
参数
- Variable Name of Pool declared in JDBC Connection Configuration: 在JDBC连接配置中,声明的 池 的变量名称 。连接池 绑定 到的变量的名称。 这必须与 JDBC Connection Configuration 的“变量名称”字段一致。
-
SQL Query: 中间空白处 写SQL查询语句
-
Query Type: 查询类型,根据SQL语句类型设置此项:常用类型
---- Select Statement - 选择声明
---- Update Statement - 更新语句,用于插入和删除
---- Prepared Select Statement
-
Parameter values: 参数值,用来参数化 Sql Query 中的Sql语句,以逗号分隔的参数值列表。
-
Parameter types: 参数类型,上面 参数值 对应的参数类型,以逗号分隔的 SQL 参数类型列表(例如 INTEGER、DATE、VARCHAR、DOUBLE)或常量的整数值
-
Variable names: SQL执行后得到的结果往往是一个数据集,我们可以把它保存到变量中来,供后面的元件调用。
-
Result variable name: -上面 Variable names 中的变量是个数与列数对应的,,Result VariableName 是把整个结果存在一个数组中。
-
Query timeout (s): 如果指定,这将创建一个包含行映射列表的 Object 变量。 每个映射都包含列名作为键,列数据作为值
-
Limit ResultSet: 限制结果集,限制循环访问结果集的行数。空值表示 -1,例如无限制,这也是默认值。这有助于减少通过 JDBC 驱动程序从数据库中获取的数据量,但会分别影响处理结果集的所有可能选项 - 例如不完整的结果集和记录计数≤限制。
-
Handle ResultSet: 处理结果集,处理从可调用语句返回的结果集:
----Store As String 存储为字符串(默认)- “变量名称”列表中的所有变量都存储为字符串。
----Store As Object 存储为对象 - 变量名称列表中的结果集类型的变量将存储为对象,可以在后续测试/脚本中访问并迭代,不会循环访问结果集。
----Count Records 计数记录 - ResultSet 类型的变量将通过将记录计数显示为结果进行迭代。
如何使用JDBC请求
目录:
1. 配置JDBC请求测试计划
2. 示例1:SQL查询语句是查询所有数据
3. 示例2:SQL查询语句是通过指定的条件查询
4. 示例3:参数进行参数化设置
5. 示例4:SQL查询结果供其他接口使用
配置步骤
配置JDBC请求之前必须先完成 JDBC Connection 配置,步骤如下:
-
设置线程组
-
添加 JDBC Connection Configuration,创建一个数据库连接池(必须添加)
-
添加 JDBC Request 请求
-
添加侦听器查看结果
示例1-SQL查询语句是查询所有数据
1.设置线程组
2.添加 JDBC Connection Configuration , 选择 Add → Config Element → JDBC Connection Configuration. 并设置参数
- 添加 JDBC Request ,选择Add → Sampler → JDBC Request,并设置参数
---SQL语句是 查询表中的所有数据
执行上述测试计划,通过结果树查看,可以查看到所有的数据响应结果
通过聚合报告查看,执行的结果
示例2-SQL查询语句是通过指定的条件查询
JDBC Connection Configuration 配置信息内容不变
修改 JDBC Request的内容,如下图所示:
注意:Query Type 一定要设置为 Prepared Select Statement
执行测试计划,通过结果树查看结果
示例3-参数进行参数化设置
1.利用 CSV Data Set Config 配置信息进行参数化,查看CVS使用 Config Element(配置元件)
2.调用上一个接口返回的数值,作为参数使用,如下图所示
--1. 利用前置处理器,获取参数值,如下图存储变量的值
--2. JDBC请求 通过表达式${} 获取上述参数值并使用.如下图所示
执行上述结果查看
示例4-SQL查询结果供其他接口使用
1.修改JDBC请求,SQL返回结果记录 有两种方式
- Variable names - 填写需要的变量名称(多个变量逗号分隔)
- Result variable name - 以数组的形式返回结果
2.添加一个Debug Sampler,验证SQL的返回结果
3.供其他接口调用,调用时通过表达式 ${id} 获取对应的值
1.修改JDBC请求,SQL返回结果记录 有两种方式,如下图所示
2.添加一个Debug Sampler,为了验证SQL的返回结果
3.获取对应的值
相关报错问题
设置完成JDBC请求后,执行计划,出现如下错误信息时,需要额外添加mysql包
-
下载 mysql-connector-java-8.0.27.jar (根据需要的版本)包
-
将下载的jar包放在Jmeter安装路径 \lib\ext 下, 如:F:\software\apache-jmeter-5.5\lib\ext