JMETER - Samplers(采样器)

目录:
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 服务器

HTTP请求 Basic 截图

参数


  • 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: 文件上传

HTTP请求Advanced 截图

参数

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 配置,步骤如下:

  1. 设置线程组

  2. 添加 JDBC Connection Configuration,创建一个数据库连接池(必须添加)

  3. 添加 JDBC Request 请求

  4. 添加侦听器查看结果


示例1-SQL查询语句是查询所有数据


1.设置线程组


2.添加 JDBC Connection Configuration , 选择 Add → Config Element → JDBC Connection Configuration. 并设置参数


  1. 添加 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包

  1. 下载 mysql-connector-java-8.0.27.jar (根据需要的版本)包

  2. 将下载的jar包放在Jmeter安装路径 \lib\ext 下, 如:F:\software\apache-jmeter-5.5\lib\ext

posted @ 2023-01-17 17:35  萧兮易  阅读(692)  评论(0编辑  收藏  举报