前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通过案例带你轻松玩转JMeter连载(27)

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

作者头像
顾翔
发布2021-11-12 14:48:16
1.7K0
发布2021-11-12 14:48:16
举报

6.4 配置元件 1 CSV Data Set Config CSV Data Set Config是用来做参数化的常用元件。通过右键点击菜单,选择“添加->配置元件->CSV Data Set Config”而获得。其界面如图41所示。

图41 CSV Data Set Config

  • 设置CSV数据文件

Ø 文件名: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节的测试参数化数据作为例子,里面有五行数据,分别为。

代码语言:javascript
复制
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。

  • Variable Name for created pool:自定义数据库连接池的变量名,必须与JDBC Request的Variable name of Pool保持一致。
  • Max Number of Connections:该数据库连接池的最大连接数, 0表示每个线程都使用单独的数据库连接,线程之间数据库连接不共享。默认值为:0。
  • Max Wait:最大等待时间,如果超过这个时间,请求结果还没有返回,系统会报超时错误。默认值为:10000。
  • Time Between Eviction Runs (ms):疏散时间,在空闲对象驱逐线程运行期间,可以休眠的毫秒数。当值为非整数的时候,将运行无空闲对象驱逐器线程。如果当前连接池中某个连接在空闲了Time Between Eviction Runs Millis时间后任然没有使用,则被物理性的关闭掉。默认值为默认值:60000,即1分钟。
  • Auto Commit :自动提交SQL语句,有三个选项:true、false、编辑。默认值为True。
  • Transaction Isolation:事务间隔级别设置,主要有下面几个选项。

Ø TRANSACTION_NODE:事务节点。 Ø TRANSACTION_READ_UNCOMMITTED:事务未提交读。 Ø TRANSACTION_READ_COMMITTED :事务已提交读。 Ø TRANSACTION_SERIALIZABLE:事务序列化。 Ø DEFAULT:默认。 Ø TRANSACTION_REPEATABLE_READ:事务重复读。 Ø 编辑。

  • Test While Idle :当空闲的时候测试连接是否断开,默认为True。
  • Soft Min Evictable Idle Time(ms):最少的时间连接可能在池中闲置,然后才有资格被闲置的对象驱逐出去,额外的条件是至少在池中保持连接。默认值为5000,即5秒。
  • Validation query:测试连接是否有效的查询语句,这是JMeter用来检验数据库连接是否有效的一种机制,超过5秒没有使用的话,就会用validation query去测试下这个连接是否有效。默认为空。

一般情况下,以上部分,除了Variable Name for created pool需要单独设置外,其他均可使用默认值。

  • Database Connection Configration。数据库连接属性中的Database URL和JDBC Driver

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 计数器

  • Srtart value:计数器的起始值。在第一次迭代期间,计数器的值(默认值为0)。
  • 递增:每次迭代后计数器的增量(默认为0,表示无增量)。
  • Maxium value:计数器最大值。如果计数器超过最大值,则将其重置为起始值。默认值为Long.MAX_VALUE值。
  • 数字格式:例如000将格式化为001、002等。这将传递给DecimalFormat,因此可以使用任何有效格式。如果在解释格式时出现问题,则忽略它(默认格式是使用Long.toString()生成的)。
  • 应用名称:计数器值可用的变量名。
  • 为每个用户独立的跟踪计数器:换句话说,这是一个全局计数器,还是每个用户独有的计数器?如果没有选中,则计数器为全局计数器(即:用户1将获得值“1”,用户2将在第一次迭代中获得值“2”)。如果选中,则每个用户都有一个独立的计数器。
  • 为每个线程组迭代上重置计数器:此选项仅在每个用户跟踪计数器时可用,如果选中此选项,计数器将重置为每个线程组迭代的起始值。
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-11-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件测试培训 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档