通过案例带你轻松玩转JMeter连载(28)

简介: 通过案例带你轻松玩转JMeter连载(28)

6.5 取样器



1 JDBC Request

通过右键点击菜单,选择“添加->取样器->JDBC Request”。如图47所示。


image.png

图47 JDBC Request


  • Variable name Bound to pool:这里写入数据库连接池的名字,必须与JDBC Connection

Configuration名字保持一致。


  • Query Type:SQL语句类型,包含以下10个。

Ø Select statement。这是一个查询语句类型。如果JDBC Request中的Query内容为一条查询语句,则选择这种类型。只执行第一条select语句。如果需要多个查询语句(不使用参数的情况下)可以放在一起顺序执行,需要设置Query Type为:Callable


Statement。
Ø Update statement。这是一个更新语句类型(包含insert和update)。如果JDBC
Request中的Query内容为一条更新语句,则选择这种类型。如果该类型下写入多条update语句,依然只执行第一条。
Ø Callable Statement。这是一个可调用语句类型,Callable Statement 为所有的 DBMS


提供了一种以标准形式调用已储存过程的方法。
Ø Prepared Select Statement。Statement用于为一条SQL语句生成执行计划,如果只执行一次SQL语句,statement是最好的类型。Prepared Statement用于绑定变量重用执行计划,对于多次执行的SQL语句,Prepared Statement是最好的类型。生成执行计划极为消耗资源,两种实现速度差距可能成百倍的。

Ø Prepared Update Statement。Prepared Update Statement和Prepared Select
Statement的用法是一样的。
Ø Commit。Commit的意思是,将未存储的SQL语句结果写入数据库表。
Ø Rollback。Rollback指的是:撤销指定SQL语句的过程。
Ø AutoCommit(false)。MySQL默认操作模式就是AutoCommit自动提交模式。表示除非显式地开始一个事务,否则每条SQL语句都被当做一个单独的事务来自动执行。AutoCommit(false),即将用户操作一直处于某个事务中,直到执行一条commit提交或rollback语句才会结束当前事务重新开始一个新的事务。
Ø AutoCommit(true)。这个选项的作用和上面一项作用相反,即:无论何种情况,都自动提交将结果写入,结束当前事务开始下一个事务。
Ø 编辑。JMeter中的JDBC请求中的SQL语句是无法使用参数的,比如:SELECT *


FROM {table_name} 是无效的。如果需实现同时多个不同用户使用不同的SQL,可以通过把整条SQL语句参数化来实现。(把SQL语句放在csv文件中,然后在JDBC Request的Query 中使用参数代替 {SQL_Statement})。

  • Query:里面填入查询数据库数据的SQL语句。
  • Parameter values:数据的参数值,与Parameter types中的类型要一一对应。
  • Parameter types:数据的参数类型。对于Java sql数据类型请参见https://docs.oracle.com/javase/6/docs/api/java/sql/Types.html
  • Variable names:保存SQL语句返回结果的变量名,如果查询结果有多列,可以设置多个变量,以逗号分隔。
  • Result variable name:创建一个对象变量,保存所有返回结果。
  • Query timeout(s):查询超时时间。
  • Handle ResultSet:定义如何处理由callable statements语句返回的结果。


6.6线程组



1 SetUp线程组


SetUp线程组用于测试之前的初始化操作。通过右键点击菜单,选择“添加->线程组(用户)->SetUp线程组”而获得。如图49所示。


image.png

图49 SetUp线程组


图50 teatDown线程组


界面与设置和线程组完全一致。


2 teatDown线程组


teatDown线程组用于测试之后的收尾操作。通过右键点击菜单,选择“添加->线程组(用户)->teatDown线程组”而获得。如图50所示。
界面与设置和线程组完全一致。


7 总结



本章我们利用函数助手mdash;mdash;散列函数处理了对密码的散列;了解了什么是CSRF攻击以及CSRF token的防范原理,并且学习了如何处理CSRF token;接下来我们介绍了几种断言,确保测试的结果与预期的结果一致;我们学习了如何使用“CSV Data Set Config”或“JDBC”对用户名和密码进行参数化。最后我们对。


  • 函数助手:散列函数。
  • 后置处理器/提取器:正则表达式提取器和边界提取器。
  • 断言:响应断言、BeanShell断言、断言持续时间、XML断言、XPath断言和XPath2

Assertion。

  • 配置元件:CSV Data Set Config 、JDBC 连接设置
  • 取样器:JDBC Request。
  • 线程组:SetUp线程组和teatDown线程组


共14个元件进行了学习。

目录
相关文章
|
Java 测试技术 API
通过案例带你轻松玩转JMeter连载(49)
通过案例带你轻松玩转JMeter连载(49)
250 1
通过案例带你轻松玩转JMeter连载(49)
|
存储 Linux
通过案例带你轻松玩转JMeter连载(60)
通过案例带你轻松玩转JMeter连载(60)
179 0
通过案例带你轻松玩转JMeter连载(60)
|
算法
通过案例带你轻松玩转JMeter连载(59)
通过案例带你轻松玩转JMeter连载(59)
232 0
通过案例带你轻松玩转JMeter连载(59)
|
XML JavaScript Java
通过案例带你轻松玩转JMeter连载(58)
通过案例带你轻松玩转JMeter连载(58)
128 0
通过案例带你轻松玩转JMeter连载(58)
通过案例带你轻松玩转JMeter连载(57)
通过案例带你轻松玩转JMeter连载(57)
128 0
通过案例带你轻松玩转JMeter连载(57)
|
存储 索引
通过案例带你轻松玩转JMeter连载(56)
通过案例带你轻松玩转JMeter连载(56)
117 0
通过案例带你轻松玩转JMeter连载(56)
|
存储 Prometheus 监控
通过案例带你轻松玩转JMeter连载(55)
通过案例带你轻松玩转JMeter连载(55)
165 0
通过案例带你轻松玩转JMeter连载(55)
|
存储 监控 数据可视化
通过案例带你轻松玩转JMeter连载(54)
通过案例带你轻松玩转JMeter连载(54)
157 0
通过案例带你轻松玩转JMeter连载(54)
|
存储 Prometheus 监控
通过案例带你轻松玩转JMeter连载(53)
通过案例带你轻松玩转JMeter连载(53)
137 0
通过案例带你轻松玩转JMeter连载(53)
|
JSON 监控 数据可视化
通过案例带你轻松玩转JMeter连载(52)
通过案例带你轻松玩转JMeter连载(52)
199 0
通过案例带你轻松玩转JMeter连载(52)