函数助手
http://www.cnblogs.com/imyalost/p/6802173.html
添加 - threads(users)
Setup thread group:一种特殊类型的线程,可用于执行预测试操作。即执行测试前进行定期线程组的执行
Teardown thread group:一种特殊类型的线程,可用于执行测试后动作。即执行测试结束后执行定期的线程组
Thread group:通常添加使用的线程,一般一个线程组可看做一个虚拟用户组,其中每个线程为一个虚拟用户
添加-test fragment
test fragment : 是一种特殊的线程组,在测试树上与线程组一个层级,但是它不被执行,除非它是一个模块控制器或者被控制器所引用时才会被执行
线程组 - 逻辑控制器
jmeter 有两种控制器:取样器 和 逻辑控制器
一类是控制Test Plan中Sampler节点发送请求的逻辑顺序控制器,常用的有:If Controller、Swith Controller、Loop Controller、Random Controller等
另一类是用来组织和控制Sampler节点的,如Transaction Controller、Throughput Controller等
具体可见: http://www.cnblogs.com/imyalost/p/6183569.html
线程组-配置元件
用于提供对静态数据配置的支持。CSV Date Set Config可以将本地数据文件形成数据池(Date Pool),而对应于HTTP Request Configuration
和TCP Request Sample等类型的Configuration元件则可以修改这些Sample的默认数据等
1:HTTP Cookie Manager
2. http的几个管理器
3. 计数器
与每用户独立的跟踪计数器 的情况写反了
线程组-定时器
用于操作之间设置等待时间,等待时间使性能测试中常用的控制客户端QPS的手段
JSR223 timer 和 Bean Shell Timer 不经常用到
http://www.cnblogs.com/imyalost/p/6004678.html
1:高斯随机定时器
2:Synchronizing Timer
3:Uniform Random Timer
4:Poisson Random Timer
5:Constant Throughput Timer
线程组-前置处理器
用于在实际请求发出之前对即将发出的请求进行特殊处理。
例如:Count处理器可以实现自增操作,自增后生成的的数据可以被将要发出的请求使用,而HTTP URL Re—Writing Modifier处理器则可以实现URL重写
线程组-sampler
是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元,JMeter 原生支持多种不同的sampler
如 HTTP Request Sampler 、 FTP Request Sampler 、TCP Request Sampler 、JDBC Request Sampler 等
每一种不同类型的 sampler 可以根据设置的参数向服务器发出不同类型的请求。
1:beanshell sampler
2:ftp request
3:http request
线程组-后置处理器
用于对Sampler发出请求后得到的服务器响应进行处理。一般用来提取响应中的特定数据(类似loadrunner中的关联)。
1.Regular Expression Extractor用于提取响应数据中匹配某正则表达式的数据段,并将其填充在参数中
2.Xpath Extractor则可以用于提取响应数据中通过给定Xpath值获得的数据
3.正则表达式提取器
4.xpath extractor 介绍
线程组-监听器
对测试结果进行处理和可视化展示的一系列组件,常用的有图形结果、查看结果树、聚合报告等
参考:https://www.cnblogs.com/testwjr/p/9156705.html
jdbc request query type 详解
select statement :
这是一个查询语句类型;如果JDBC Request中的Query内容为一条查询语句,则选择这种类型。
PS:多个查询语句(不使用参数的情况下)可以放在一起顺序执行,需要设置Query Type为:Callable Statement;
如果Query Type为:select Statement,则只执行第一条select语句
update statement :
这是一个更新语句类型(包含insert和update);如果JDBC Request中的Query内容为一条更新语句,则选择这种类型。
PS:如果该类型下写入多条update语句,依然只执行第一条(原因同上,具体下面介绍)
prepared select statement :
如果只执行一次sql语句,那么statement是最好的类型, prepared类型用户绑定变量重用执行计划,对于多次执行的sql
那么prepared statement是最好的类型(生成执行计划极消耗资源,两种实现速度差距较大)
PS:PreparedStatement的第一次执行消耗是很高的. 它的性能体现在后面的重复执行
commit :
将未存储的sql语句结果写入到数据库表内,而在jmeter的jdbc请求中,同样可以根据具体使用情况,选择这种query类型
rollback:
撤销指定sql语句的过程,在jmeter的jdbc请求中,同样可以根据需要使用这种类型
AutoCommit(false)
MySQL默认操作模式就是autocommit自动提交模式。表示除非显式地开始一个事务,否则每条SQL语句都被当做一个单独的事务自动执行;
我们可以通过设置autocommit的值改变是否是自动提交autocommit模式;
而AutoCommit(false)的意思是AutoCommit(假),即将用户操作一直处于某个事务中,直到执行一条commit提交或rollback语句才会结束当前事务重新开始一个新的事务。
编辑(${})
jmeter中的JDBC请求中的SQL语句是无法使用参数的,比如: SELECT * FROM ${table_name} 是无效的。
如果需实现同时多个不同用户使用不同的SQL,可以通过把整条SQL语句参数化来实现;(把SQL语句放在csv文件中,然后在JDBC Request的Query 中使用参数代替 ${SQL_Statement})