FTP请求默认值
功能描述:当多个FTP程序的场景具有相同的配置时,我们可以把这些相同点提取出来,只需要配置一次,这个就是FTP请求默认值元件类似于我们在程序开发中的封装,抽象。
参数说明
名称:元件名称,可以随意设置,甚至可以为空。
注释:可以随意设置,可以为空。
服务器名称或IP:上传或者用来下载的服务器地址(即被测对象)。
端口号:指定的FTP传输端口号。
Remote File:远程FTP服务器文件路径。
Local file:本地文件路径。
Local File Contents:本地文件内容。
Get(RETR):下载文件选项。
Put(STOR):上传文件选项。
Use Binary mode?:是否以二进制方式传输。
Save File in Response?:文件内容是否保存到响应中去,如果选择了,且运行FTP请求成功后我们可以在"观察结果树--响应数据"中看到内容。
HTTP Authorization Manager(HTTP授权管理器)
功能描述:HTTP 认证是一种安全机制,在客户端、浏览器或者程序向服务器发起请求时需要提供用户名及密码且验证通过后(拿到凭证)才能继续发起交互。HTTP Authorization Manager就是对于HTTP认证的实现,我们只需要在测试计划中添加此配置元件然后配置即可。
参数说明
名称:元件名称,可以随意设置,甚至可以为空。
注释:可以随意设置,可以为空。
Clear auth on each iteration?:是否每次迭代清空凭证,如果清空则每次请求前都会进行验证。
存储在授权管理器中的授权:可以在此处保存授权信息,比如账号密码等信息。
HTTP Request Defaults(请求默认值)
功能描述: 在实际测试计划中我们常会碰到http请求有较多的参数与配置会重复,每个http请求单独设置的话比较浪费时间与精力,为了节省工作量,通过HTTP Request Defaults来设置http请求的默认值,把重复的部分封装起立,一次设置多次使用。配置与http请求一致。
java Request Defaults(java请求默认值)
功能描述:通过java Request Defaults来设置java Request的请求默认值。java请求默认值可以设置的类有两个:
javaTest:
SleepTest:
JDBC Connection Configuration
设置JDBC连接池
参数说明
名称:元件名称,可以随意设置,甚至可以为空。
注释:可以随意设置,可以为空。
Variable Name Bound to Pool—Variable Name:连接池名称,JDBC请求通过此名称来获取连接池中的连接,最好具有业务意义,能让让你秒懂,名称最好唯一,如果多个JDBC Connection Configuration,好做区分。
Max Number of Connections:连接池的最大连接数。
Max wait:连接超时设置。
time Between eviction runs:空闲连接清理时间间隔。
Auto Commit:事务是否自动提交选项,比如Oracle执行一条更新操作,不Commit一下,数据是不会更新到数据库中,这个选项帮我们自动提交
Transaction IsoIation:JDBC事务控制器选项。
扩展
数据库事务的ACID?
(1)A原子性:事务是数据库的逻辑工作单位,对于其数据修改,要么全部执行,要么全部不执行。
(2)C一致性:事务在完成时,必须是所有的数据都保持一致状态,在相关数据中,所有规则都必须用于事务的修改,以保持所有数据的完整性。
(3)I隔离性:一个事务的执行不能被其他事务所影响。
(4)D持久性:一个事务一旦提提交,事务的操作便永久性地保存在数据库中吗,即使此时再执行回滚操作也不能撤销所做的更改。
为了保证维护事务的ACID属性,就产生了锁这种机制、用来做事务隔离,隔离级别有几种,就是我们在Transaction IsoIation下拉列表中看到的。
TRANSACTION_NONE:不支持事务,TRANSACTION_NONE=0
TRANSACTION_READ_UNCOMMITTED:运行脏读、不可重复读取和幻读。TRANSACTION_READ_UNCOMMITTED=1
TRANSACTION_READ_COMMITTED:禁止脏读,但允许不可重复读和幻读。TRANSACTION_READ_COMMITTED=2
TRANSACTION_REPEATABLE_READ:禁止脏读和不可重复读,允许幻读。TRANSACTION_REPEATABLE_READ=4
TRANSACTION_SERIALIZABLE:禁止脏读、不可能重复读和幻读。TRANSACTION_SERIALIZABLE=8
脏读:一个事务读取了另一个事务未提交的数据。
不可重复读:是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的。这样就发生了在一个事务内两次读到的数据是不一样的,因此称为是不可重复读。(即不能读到相同的数据内容)
例如,一个编辑人员两次读取同一文档,但在两次读取之间,作者重写了该文档。当编辑人员第二次读取文档时,文档已更改。原始读取不可重复。如果只有在作者全部完成编写后编辑人员才可以读取文档,则可以避免该问题。
幻读:一个事务重新执行一个查询,返回的记录包含了其他事务提交的新记录。
test while idle:是否保持与数据库的连接。
soft min evictable idle ti:连接的生存时间,超过这个时间的连接将由连接池自动断开丢弃。正在使用的连接不会马上断开,而是等待它close再断开,配置为0的时候则不会对连接的时间进行限制,单位毫秒。
Validation Query:验证SQL语法。
Database URL:JDBC连接字符串。需要下载对应数据库的驱动包。把驱动包放到JMeter文件的\bin目录下。
JDBC Driver class:驱动类名。
Username:连接数据库的用户名
Password:连接数据库的密码。
Random Variable
功能描述:该元件能够生成随机数字,且可以指定输出格式,我们可以把它与字母组合在一起来代替业务单据编号,比如我们想生成一个客户编号,格式如bh_XXXXX那么我们就可以用此元件来完成。
参数说明
名称:元件名称,可以随意设置,甚至可以为空。
注释:可以随意设置,可以为空。
Variable Name:变量名,生成的随机数保存到此变量中。
Output Format:变量输出格式。例如:bh_000000。
Minimum Value:随机数最小值。
Maximum Value:随机数最大值。
Seed for Random function:随机数种子。随机数就是就随机数种子中取出的数。
例如:如果是从1到50之间取数字,取出的数字叫随机数,这1到50那50个数字就叫随机数种子。
Per Thread(User)?:生成的随机变量是否在线程组中共享,True,共享; FALSE,不共享。
但是这有个弊端就是生成是随机数会有重复的可能。如果是客户编号的话出现重复的编号就不好了。为了避免此问题可以使用Counter
Counter(计数器)
功能描述:计数器顾名思义也就是在测试执行过程中会记录迭代次数。
参数说明
名称:元件名称,可以随意设置,甚至可以为空。
注释:可以随意设置,可以为空。
starting value(启动值):记录数量起始值。
递增:记录迭代次数的步长。如不长是1,就是1、2、3...。如步长是2,就是1、3、5...。
maximum value(最大值):记录的最大值。
Number format:计数器格式,可以是数字,例如000000(6位长度),000,000(6位长度,3位间隔开);字符加数字,例如bh_000000(字符加6位数字)。
引用名称:计数器记录的值可以存入此引用名(变量)可供其他元件调用。
Reset counter on each Thread Group Iteration:每次迭代复原计数器。
一个简单的示例,如我们设置1个线程,循环4次。
如图,可以看到计数器从起始值从0开始执行循环了4次,每次累加1。
login Config Element(登录配置元件)
功能描述:该元件用来配置默认的用户与密码,有些Sampler(取样器)要验证用户与密码;如果 在Sampler中没有配置用户名与密码,那么会自动用Login Config Element中的配置来填充。
参数说明
名称:元件名称,可以随意设置,甚至可以为空。
注释:可以随意设置,可以为空。
用户名:登录的用户名。
密码:登录的密码。
CSV Data Set Config
功能描述:可以从指定的文件中一行一行的提取文本内容,根据分隔符拆解这一行内容并把内容与变量名对应上,然后这些变量可以供取样器引用了。
参数说明
名称:元件名称,可以随意设置,甚至可以为空。
注释:可以随意设置,可以为空。
Filename:引用文件地址,可以是相对路径也可以是绝对路径,相对路径的根节点是Jmeter的启动目录(%JMETER_HOME%\bin)。
File encoding:读取参数文件用到的编码格式,建议用UTF-8。
Variable Names:定义可以被引用的参数名称(相当于变量名),多个参数用逗号隔开,
Delimiter:用来分割参数文件的分割符,默认为逗号,也可以用Tab来分割,如果参数文件用tab分隔,在此应该填\t。
Allow quoted data?:是非选项,如果是,那么可以允许拆分完成的参数里面有分隔符出现。
Recycle on EOF?:是非选项,是,参数文件循环遍历,否,参数文件遍历完成后不循环。
Stop thread on EOF?:与Recycke on EOF中的False选择复用:是,停止测试;否,不停止测试。