jmeter_04_常用取样器

常用取样器详解

http取样器


http请求

​ 名称 用于给取样器做标记 可以根据请求内容 起一个有意义的名称

​ 注释 不影响测试 可以写入关于请求的测试说明 供阅读

1.1 基本配置

​ 协议:向目标服务器发送HTTP请求时的协议,可以是http或者是https或者File ,默认值为http 。

​ 服务器名称或IP :HTTP请求发送的目标服务器名称或IP地址

​ 端口号:目标服务器的端口号,默认值为80

​ 方法:发送HTTP请求的方法,可以根据接口文档获得,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。

路径:目标URL路径(不包括服务器地址和端口)-也可以直接写完整路径(上面的IP+端口就可以省略了) 不带参数的api路径

​ Content encoding :内容的编码方式,默认值为iso8859(所以常用为UTF-8减少乱码)

​ 自动重定向:如果选中该选项,当发送HTTP请求后得到的响应是302/301时,JMeter 会自动重定向到新的页面,但是Jmeter是不记录重定向的过程内容。只能用于get和head方法,如果是post或者put请求则取样器不会发送。

​ 跟随重定向:Http Request取样器的默认选项,当响应code是3xx时,自动跳转到目标地址。与自动重定向不同,Jmeter会记录重定向过程中的所有请求响应,在查看结果树时可以看到服务器返回的内容,如有多个跳转则多个请求都会被记录下来,此为默认选项。
自动重定向和跟随重定向的区别只在于是否记录多个跳转的请求上

​ Use keep Alive : 当该选项被选中时,jmeter 和目标服务器之间使用 Keep-Alive方式进行HTTP通信,默认选中。 [这个不能被取消]

​ Use multipart/from-data for HTTP POST :当发送HTTP POST 请求时,使用Use multipart/from-data方法或者application/x-www-form-urlencoded方法发送,默认不选中。

​ Browser-compatible headers:当勾选multipart/form-data时,勾选此项会截掉http请求头中的Content-Type和Content-Transfer-Encoding,而只发送Content-Disposition部分;

​ 同请求一起发送参数 : 在请求中发送URL参数,对于带参数的URL ,jmeter提供了一个简单的对参数化的方法。用户可以将URL中所有参数设置在本表中,表中的每一行是一个参数值对(对应RUL中的 名称1=值1)。编码这个选项最好勾选,因为如果参数值内含有ASCII Control Chars或者Non-ASCII characters或者其他符号的话,如果不勾选会导致发送失败,勾选的话会自动将含有的这些特殊符号进行编码。

​ 同请求一起发送文件:在请求中发送文件,通常,HTTP文件上传行为可以通过这种方式模拟,参数名称就是发送文件对应的参数,MINE Type为资源媒体类型,说明参考如下MIneType

1.2 高级配置

Implementation:发送http请求的方式,可选项为java和HttpClient4,默认为HttpClient4;如果是上传文件的话一定要选择;否则请求发送成功了,其实文件并未上传成功

Timeouts(milliseconds):Connect:连接超时时间,单位为毫秒;

Response :响应等待超时时间,单位为毫秒;

Embedded Resources from HTML Files

从HTML文件获取所有内含的资源:当该选项被选中时,jmeter在发出HTTP请求并获得响应的HTML文件内容后,还对该HTML进行解析 并获取HTML中包含的所有资源(图片、flash等),默认不选中,如果用户只希望获取页面中的特定资源,可以在下方的Embedded URLs must match 文本框中填入需要下载的特定资源表达式,这样,只有能匹配指定正则表达式的URL指向资源会被下载。
Parallel downloads.:是否使用自设资源池,勾选后可设置大小;
Number:资源池大小,默认为6。
URLs must match:URL匹配过滤,填写此项则只会下载与此内容项匹配的url的资源,例如要获取http://example.com/下的所有资源,使用正则表达式http://example.com/.*;

jdbc取样器


前置:需要引用数据库上官jar包

​ 加入jar包的两个方法

​ 1 直接下载对应的jar文件放在bin/lib文件夹下 etc文件夹下也可以放 但是不建议 然后重启jmeter

​ 2 "测试计划" --> 浏览 导入对应jar

​ **建议使用第一种方法 **

作用:

名称 用于给取样器做标记 可以根据请求内容 起一个有意义的名称

​ 注释 不影响测试 可以写入关于请求的测试说明 供阅读

2.1 JDBC Connection Configuration

想使用 jdbc request请求数据库 在安装数据库的对应驱动 jar之后 需要添加 对应的jdbc环境配置

​ 名称 用于给取样器做标记 可以根据请求内容 起一个有意义的名称

​ 注释 不影响测试 可以写入关于请求的测试说明 供阅读

2.1.1 **Variable Name of Bound Pool **

​ 1 *Variable Name of Create Pool : 重要 在创建对应的jdbc的环境配置 要定义个环境配置的的引用名称

方便创建Jdbc request 与之对应

		        剩下的配置 取默认就可以

2.2 JDBC Request

​ 添加方式 :测试计划 ->线程组 -> 取样器 -> jdbc 取样器

​ 1 *** **Variable Name of Pool declared in JDBC Connection Configuration:由 JDBC Connection Configuration定义的连接池变量名

与jdbc环境变量中定义的引用名称一致 类似数据库外键 创建关联

* Query Type: 定义sql的执行方式 非常重要 如果对应不上会直接导致请求失败

​ 2.Parameter values:逗号分隔的参数值列表。使用]NULL[指示空参数。(如果需要,可以通过定义属性“JDCBSAMPLOUL.NulLMARK”来改变空字符串。必须用双引号括起来,并且任何嵌入的双引号必须加倍,【这是在使用SQL中包含占位符的情况 一般不需要做这个 直接卸载SQL中就可以 】

3.Parameter types:逗号分隔的SQL参数类型列表(比如INTEGER, DATE, VARCHAR, DOUBLE)或常量的整数值。当使用驱动程序建议的自定义数据库类型时,可以使用这些整数值。

4.Variable names:用逗号分隔的变量名列表,用于保存由Select语句、Prepared Select语句或CallableStatement返回的值。注意,当与CallableStatement一起使用时,变量列表的顺序必须与调用返回的OUT参数相同。如果变量名少于OUT参数,则只有指定变量名的部分能返回;如果存在更多的变量名,则多余变量将被忽略。

5.Result variable name:如果指定,这将创建包含行映射列表的对象变量。每个映射包含列名称作为键,列数据包含值。用途:

​ 这个是将 请求结果以列表的格式参数化; 可以通过 调试取样器 观察取样器结果 确定参数化成功与否以及如何引用参数化 的 参数

  1. Query timeout:查询超时时间;、
  2. Handle result set:定义如何处理由callable statements语句返回的结果 可选项为 string object records

调试取样器

调试取样器:

​ 名称 用于给取样器做标记 可以根据请求内容 起一个有意义的名称

​ 注释 不影响测试 可以写入关于请求的测试说明 供阅读

 调试取样器是jmeter中一个非常重要的存在 主要用于调试 解决使用jmeter时候遇到的如下的几个问题

​ 1.我想知道参数化的变量取值是否正确!

​ 2.我想知道正则表达式提取器(或json提取器)提取的值是否正确!

​ 3.我想知道 JMeter 属性!

​ 4,调试时服务器返回些什么内容!

当你遇到如上的问题时 可以使用调试取样器 帮助解决问题

以下是对调试取样器的参数说明

​ 1 名称:控制器名称,可以随意设置,甚至可以为空。

​ 2 注释:可以随意设置,可以为空

JMeter Properties:是否查看JMeter属性,默认为False。

JMeter Variables:是否查看运行时变量,默认为True。

System Properties:是否查看系统属性,默认为False。

正常情况下 只需要使用调试取样器的默认就足够 但是如果想要使用 jmeter的系统和jemter的属性时候哦需要将对应的参数变成True

这两个属性参数维护在jmeter 的bin目录下的 properties 和 system 中

换句话说 调试取样器可以显示 所有 jmeter参数化手段 制造的参数

如上是jmeter 调试取样器的实例

目前 调试取样器的使用 一般与 查看结果数结合 在添加调试取样器 之后 对应的结果 需要在查看结果数中才能看到

Beanshall取样器

​ 对于取样器来说 jmeter的拓展性 主要体现在 Beanshall取样器上 这个取样器 的作用 概括成一句话 就是 当你想要在jmeter中实现的不是jmeter的自带功能的时候 这个取样器就派上了用场

由于beanshall取样器本身是个大的模块 在这边做简单的概述后 关于beanshall的使用 我会另起一个文档详细讲解


posted @ 2020-08-06 18:18  P_sara  阅读(1070)  评论(0编辑  收藏  举报