Jmeter

2019-06-24  本文已影响0人  SPONGE_KE

1.Jmeter 安装

官网最新版本:https://jmeter.apache.org/download_jmeter.cgi

历史版本:https://archive.apache.org/dist/jmeter/binaries/

windows下载安装apache-jmeter-X.X.X.zip即可,解压后进入Jmeter的bin文件夹,windows双击jmeter.bat启动jmeter。注:如有问题可能是Jmeter版本和jdk版本不匹配导致

2.Config element

*1.CSV Data Set Config

路径:右击线程组-add-Config element-CSV Data Set Config

例子:可以用于登录的参数化

1.将用户名和密码录入在users.csv文件,如图

NamePassword

2.CSV Data Set Config的属性配置

Filename:csv文件的名称及存放路径

File encoding:文件的编码格式,默认为空,可写utf-8

Variable Names:定义csv文件中的参数名

Ignore first line:忽略第一行(仅使用变量名不是空的)----默认为false

Delimiter:分隔符---每个参数变量之间的分隔符号,一般默认使用逗号,如此例子的userName,password,分隔符即为“,”

Allow Quoated data: 是否允许引用数据引

Recycle on EOF: 文件结束循环----设置为True后,允许循环取值

Stop Thread on EOF: 文件结束后是否停止线程------默认为false,即不停止,true即停止,当Recycle on EOF设置为True时,此项设置无效。

Sharing Mode: 设置线程是否共享---默认设置为All threads,ll threads---所有线程,Current thread group—当前线程组,Current thread—当前线程。

All threads:测试计划中所有线程,假如说有线程1到线程n (n>1),线程1取了一次值后,线程2取值时,取到的是csv文件中的下一行,即与线程1取的不是同一行。

Current thread group:当前线程组,假设有线程组A、线程组B,A组内有线程A1到线程An,线程组B内有线程B1到线程Bn。取之情况是:线程A1取到了第1行,线程A2取第2行,现在B1取第1行,线程B2取第2行。

Current thread:当前线程。假设测试计划内有线程1到线程n (n>1),则线程1取了第1行,线程2也取第1行。

此总结部分来自原文:https://blog.csdn.net/zwc2xm/article/details/78896034

CSV

这里请求中的参数userName,password引用csv的数据即为:${userName},${password},如下图:

LoginHttps

3.Pre Processors

前置处理器,在请求发送之前执行。

*1.BeanShell PreProcessors

路径:右击线程组-add-Pre Processors

Jmeter支持java来编写,对请求报文的预处理,可以使用jdk自带的jar包,如以下获取时间的例子

BSP HttpRequest

附上其他大佬写的相关的帖子:https://www.jianshu.com/p/c267cc0df931

4.Post Processors

*1.Regular Expression Extractor

正则表达式提取器,附上正则表达式在线工具:https://c.runoob.com/front-end/854

路径:右击线程组-add-Pre Processors-Regular Expression Extractor

ResponseHeader REE

将正则表达提取器提取的变量用于其它请求的(hear,body)中

Jsessionid

Apply to :作用域

Field to check:取值来源,即从哪里取值

*Reference Name,变量名,取值后存储的对象名,可以用作${变量名},另外${变量名}_g#,#代表第几组,g0表示完全匹配,包含整个字符串,g1代表从第对括号开始匹配,g2表示第二对括号开始的匹配

*Regular Expression: 正则表达式

*Template: $1$指向group 1,即匹配第一个正则表达式括号内的内容,依次类推

*Match No: 选择第几次匹配到的值,有可能一个Sampler下面匹配到多个值,这时这个变量就可以用到,0代表随机取,可以用在每次取到的值是一样的情况下

*Default Value: 如果没有匹配到的默认值,建议设置,可以快速定位问题

*2.JDBC Connection Configuration

Jmeter支持数据库存取数据,需要在JDBC Connection Configuration先进行配置,然后再配置JDBC Request

路径:右击线程组-add-Pre Processors-JDBC Connection Configuration

JDBC

Variable Name: 变量名称,需要变量名绑定到池。需要唯一标识。与JDBC取样器中的相对应,决定JDBC取样的配置。简单理解就是在JDBC request的时候确定去哪个绑定的配置。

Connection Pool Configuration

Max Number of Connection:  该数据库连接池的最大连接数,一般可设置为0,意思是每个线程都使用单独的数据库连接,线程之间数据库连接不共享

注:池中允许的最大连接数。在大多数情况下,将其设置为0,这意味着每个线程将得到它自己的池,其中只有一个连接,即线程之间不共享连接。如果您真的想要使用共享池(为什么?),那么将

Max Wait(ms):在连接池中取回连接最大等待时间,如果在试图检索连接过程中(取回连接)超过所设置期限,连接池抛出一个错误

Time Between Eviction Runs (ms): 疏散时间,在空闲对象驱逐线程运行期间,可以休眠的毫秒数。当非正值时,将运行无空闲对象驱逐器线程。(默认为“60000”,1分钟)(如果当前连接池中某个连接在空闲了time

Auto Commit:自动提交sql语句。有三个选项,true、false、编辑(自己通过jmeter提供的函数设置)打开或关闭连接的自动提交。

Transaction Isolation:  

事务间隔级别设置,主要有如下几个选项:(对JMX加解密) 

【TRANSACTION_NODE   事务节点 、

TRANSACTION_READ_UNCOMMITTED  事务未提交读、

TRANSACTION_READ_COMMITTED   事务已提交读 、

TRANSACTION_SERIALIZABLE   事务序列化 、

DEFAULT  默认、

TRANSACTION_REPEATABLE_READ 事务重复读

Connection Validation by Pool

这是Jmeter用来检验数据库连接是否有效的一种机制,超过5秒没有使用的话,就会用validation query去测试下这个连接是否有效

Test While Idle:当空闲的时候测试连接是否断开,测试连接池的空闲连接,验证查询将会被使用去测试。

Soft Min Evictable Idle Time(ms):最少的时间连接可能在池中闲置,然后才有资格被闲置的对象驱逐出去,额外的条件是至少在池中保持连接。默认值为5000(5秒)

Validation Query:在3.2版本的Jmeter中需要将默认的“select 1”改为“select 1 from dual”否则DBC Request结果将会报错:Cannot create PoolableConnectionFactory (ORA-00923: δ??????? FROM ?????)

Database Connection Configuration 

Database URL:如jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL = TCP)(HOST = XX.XXX.XX.XX)(PORT = 1521))(CONNECT_DATA=(SERVICE_NAME = SJCM)))

其中@(DESCRIPTION=(ADDRESS=(PROTOCOL = TCP)(HOST = XX.XXX.XX.XX)(PORT = 1521))(CONNECT_DATA=(SERVICE_NAME = SJCM)))后面的内容可以在Oracle的配置文件tnsnames.ora中找到(路径:Oracle\product\12.2.0\client_1\network\admin)

JDBC Driver Class: 数据库JDBC驱动类名,如org.gjt.mm.mysql.Driver  

Datebase

JDBC Request

JDBCRequest

SQL Query-Query Type 可以选择对数据进行增删改查,在输入框写sql语句

上一篇下一篇

猜你喜欢

热点阅读