Jmeter全方面讲解——Jmeter的元件使用介绍:(六)取样器详解

Jmeter的取样器有:Http请求、JDBC请求、Beanshell取样器、调试取样器、JSR223取样器、FTP请求、GraphQL HTTP请求、TCP请求、Java请求等,本文主要介绍Http请求、JDBC请求、Beanshell取样器、调试取样器

一:Http请求
介绍下Http请求元件的各项信息
1、协议:可以省略不填,省略默认是http协议,端口号默认80,如果协议填的的https,则端口号默认是443
2、自动重定向:当发送HTTP请求后得到的响应是3XX状态码时,JMeter会自动重定向到新的页面,但不记录重定向的过程内容
3、跟随重定向:当响应是3XX状态码时,会记录重定向过程中的所有请求响应信息,在查看结果树中可以看到重定向过程中的所有请求,一般我们需要获取所有请求给与我们一些判断依据,所以此项一般都需要勾选。
4、keepalive:一种长连接通信方式,即发出多次请求时,不会频繁的建立连接和断开连接,勾选后,会在请求头带有:Connection:keep-alive的信息,通过此选项可以大大节约了3次握手协议所需的时间。
5、对post使用multipart/form-data:发送post请求时,使用multipart/from-data或者application/x-www-form-urlencoded方法发送。

此取样器一般保持默认使用即可。

二:JDBC请求
该请求主要用于对数据库进行增删改查操作的。在使用该请求前,需要添加JDBC配置文件并且填写好信息,配置操作见前面的博客:https://www.cnblogs.com/lrc123/p/15678051.html

讲解前准备工作:
(1)在自己电脑安装好mysql数据库,或者有公司项目的链接数据库信息。
(2)准备下测试数据表:
本文测试用的数据表建表语句如下:
CREATE TABLE myindex( idint NOT NULL AUTO_INCREMENT, test varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, PRIMARY KEY (id), KEY index_test (test) ) ENGINE=InnoDB AUTO_INCREMENT=115 DEFAULT CHARSET=utf8;

表信息:
image

下面JDBC请求取样器的页面信息
image
1、Variable Name of Pool declared in JDBC Connection Configuration:该选项填写的是JDBC配置元件中填写的连接池(pool)名称
2、QueryType:主要介绍以下几种
(1)Select Statement:该选项是一条查询语句,只能支持单条查询
(2)Update Statement:该选项是一条增/删/改语句,只能支持单条语句
(3)Callable Statement:该选项是可以执行多条语句的,增删改查语句都支持
(4)Prepared Select Statement:以参数化的形式执行查询语句。
(5)Prepared Update Statement:以参数化的形式执行增/删/改语句
3、Parameter values:SQL语句中引用的参数值
4、Parameter types:参数引用的数据类型,如以下几种类型:整型(INTEGER)、日期型(DATE)、字符串型(VARCHAR)、浮点型(DOUBLE)
5、Variable names:将查询结果应用到Jmeter变量中
6、Result variable name:将查询结果组合成数组形式
7、Query timeout:设置超时时间,0或者不填表示无限时间
8、Limit ResultSet:限制SQL语句返回结果集的行数,如果SQL语句也有Limit,最终会以此处设置的数量返回结果集数量
9、Handle ResultSet:定义由哪种类型处理callable statement 返回的结果

案例:
本文的JDBC配置信息如下:
image

案例1:使用Select Statement 查询单条SQL语句,并将查询结果保存到Jmeter变量中:
image
通过添加【调试取样器】,可以观察到查询结果成功保存到Jmeter变量中:
image

案例2:通过Update Statement执行单条增/删/该SQL语句。
image

此处我通过Update Statement去修改数据值:
image

执行结果:
image

image

案例三:通过Prepared Select Statement以参数化的形式查询SQL,查询到结果后,保存到Jmeter变量中

image

执行结果:
image

image

案例四:Callable Statement执行多条SQL语句
image

注意执行结果:可能会报错,如下图:
image

在数据库连接池中添加完allowMultiQueries=true后再执行请求:
image

image

三:调试取样器(DEBUG Sampler)
该取样器主要用于调试脚本信息,添加后可以通过此取样器查看Jmeter保存的信息。
image
1、Jmeter属性:如果选择TRUE,则会展示Jmeter.properties文件中所有设置的属性,如果选择false就不会展示。
2、Jmeter变量:如果选择TRUE,则会展示Jmeter当前运行脚本的变量。
3、系统属性:如果选择TRUE,则会展示本机系统变量【PATH】中所设置的属性。

案例1:通过调试取样器查看Jmeter属性
image

image

案例2:通过调试取样器查看当前脚本中Jmeter含有的变量信息,脚本编写中,通常都是只需要看Jmeter变量信息。
image

image

案例3:通过调试取样器查看当前系统变量即 【PATH】里变量
image

image

四:Beanshell 取样器
Beanshell 取样器的用法十分灵活,与前面介绍过的Beanshell前置处理器类似,可以随意添加自己想要的自定义方法然后发起调用。在Beanshell前置处理器中编写的脚本,可以在Beanshell取样器中完全兼容。
Beanshell前置处理器的使用介绍:
https://www.cnblogs.com/lrc123/p/15678062.html
区别在于:Beanshell前置处理器在查看结果树时没有结果展示,而Beanshell取样器在查看结果树时会有结果展示。

这里举个Beanshell取样器实例:
通过Beanshell取样器,编写一个方法,将Jmeter的变量进行拼接。
image
附上代码:

点击查看代码 vars.put("name","筱筱创");//往Jmeter变量中放入数据 //编写个字符串拼接方法 public static String test(String input){ return input+"aaaa"; //返回传入参数拼接“aaaa”的字符串 }

//下面调用上述的test方法
String test_name=test(vars.get("name"));
log.info("拼接后的字符串为:"+test_name);

//定义该取样器结果的展示
ResponseCode=200;
ResponseMessage="字符串拼接成功";

执行结果:
image

image

posted @ 2021-12-12 18:12  筱筱创  阅读(1969)  评论(0编辑  收藏  举报