6.4 配置元件 1 CSV Data Set Config CSV Data Set Config是用来做参数化的常用元件。通过右键点击菜单,选择“添加->配置元件->CSV Data Set Config”而获得。其界面如图41所示。
图41 CSV Data Set Config
Ø 文件名:csv文件的名称。可以点击右侧的浏览按钮选择文件,会自动带上文件的绝对路径。为了维护方便,建议使用相对路径。比如csv文件为user.dat,把它放在测试的jmx文件下的data文件夹下,文件名中输入“data/user.dat”。 Ø 文件编码:csv文件的编码格式。默认使用当前操作系统的编码格式。如果文件中包含中文字符,建议使用utf-8。 Ø 变量名(西文逗号间隔):csv文件中各列的名字(有多列时,用英文逗号隔开列名)。名字顺序要与内容对应,这个变量名称是在其他处被引用的,所以为必填项。 Ø 分割符(使用"\t"替代制表符):csv文件中的分隔符(用"\t"替代Tab键)。一般情况下,分隔符为英文逗号。 Ø 是否允许带引号?:是否允许数据内容加引号。默认为False。如果数据带有双引号且此项设置True,则会自动去掉数据中的引号使能够正常读取数据,且即使引号之间的内容包含有分隔符时,仍作为一个整体而不进行分隔。如果此项设置为False,则读取数据报错。如果希望字段中含有双引号,那么用两个双引号来代替一个双引号。比如:此项设置为true时,"2,3"表示:2,3;"4""5"表示:4"5。 Ø 遇到文件结束再次循环?:到了文件的结尾是否循环。默认为True。True表示继续从文件第一行开始读取;False表示不再循环。此项与下一项的设置为互斥关系。 Ø 遇到文件结束停止线程?:到了文件尾是否停止线程,默认为False。True表示停止;False表示不停止。注意:当遇到文件结束再次循环设置为True时,此项设置无效。 仍旧以第4.1节的测试参数化数据作为例子,里面有五行数据,分别为。
linda,knyzh158
cindy,123456
jerry,654321
susan,qwert
peter,zxcvb
设置循环控制器的循环次数为5。商品列表HTTP请求的名称为“商品列表${username}”。运行后察看结果树得到图42所示。5个数据被顺序了5次。
图42 循环次数为5
图43 循环次数为5,遇到文件结束再次循环?为True 将循环次数改为8,选择遇到文件结束再次循环? 为True。运行后察看结果树得到图43所示。第6次使用第1条数据;第7次使用第2条数据;第8次使用第3条数据。 仍旧保持循环次数改为8,选择遇到文件结束再次循环?为False;选择遇到文件结束停止线程?为False。运行后察看结果树得到图44所示。获取了5条数据,由于选择遇到文件结束不停止线程,所以最后一条数据出现错误。
图44 循环次数为5,遇到文件结束再次循环,选择遇到文件结束不停止线程
选择遇到文件结束停止线程?为True。运行后察看结果树得到图45所示。获取了5条数据,由于选择遇到文件结束停止线程,所以循环了5次就结束了。
图45 循环次数为5,遇到文件结束再次循环,选择遇到文件结束停止线程
Ø 线程共享模式。 √ 所有现场:所有线程,此元件作用范围内的所有线程共享csv数据,每个线程依次读取csv数据,互不重复。 √ 当前线程组,在此元件作用范围内,以线程组为单位,每个线程组内的线程共享csv数据,依次读取数据,互不重复。 √ 当前线程,在此元件作用范围内,每次循环中所有线程取值一样。 2 JDBC连接设置 JMeter访问数据库主要通过JDBC 连接设置和JDBC Request两个元件来完成。JDBC 连接设置通过右键点击菜单,选择“添加->配置元件->JDBC Connection Configuration”。如图46所示。
图46 JDBC Connection Configuration
Database Connection Configuration设置数据可连接,可以支持MySQL、PostgreSQL、Oracle、Ingres (2006)、MSSQL等多个数据库。首先要把对应数据库的JDBC jar文件拷贝到%JMETER_HOME% \lib\ext\目录下,并且重新启动JMeter。
Ø TRANSACTION_NODE:事务节点。 Ø TRANSACTION_READ_UNCOMMITTED:事务未提交读。 Ø TRANSACTION_READ_COMMITTED :事务已提交读。 Ø TRANSACTION_SERIALIZABLE:事务序列化。 Ø DEFAULT:默认。 Ø TRANSACTION_REPEATABLE_READ:事务重复读。 Ø 编辑。
一般情况下,以上部分,除了Variable Name for created pool需要单独设置外,其他均可使用默认值。
class根据数据库设置不同。参见表1所示。 表1 根据数据库不同,设置Database URL和JDBC Driver class
数据库 | Database URL | JDBC Driver class |
---|---|---|
MySQL | jdbc:mysql://host:port/{dbname} | com.mysql.jdbc.Driver |
PostgreSQL | jdbc:postgresql:{dbname} | org.postgresql.Driver |
Oracle | jdbc:oracle:thin:user/pass@//host:port/service | oracle.jdbc.driver.OracleDriver |
Ingres (2006) | jdbc:ingres://host:port/db[;attr=value] | com.ingres.jdbc.IngresDriver |
MSSQL | jdbc:sqlserver://IP:1433;databaseName=DBname | com.microsoft.sqlserver.jdbc.SQLServerDriver |
Ø Username:连接DB的用户名
Ø Password:连接DB的密码 3 计数器 计数器允许用户创建可在线程组中的任何位置引用的计数器。计数器配置允许用户配置起点、最大值和增量。计数器将从开始循环到最大值,然后从开始重新开始,这样继续,直到测试结束。计数器使用长字符存储值,因此范围为-2^63到2^63-1。 设置通过右键点击菜单,选择“添加->配置元件->计数器”。如图47所示。
图47 计数器