02-jmeter组件介绍

1、测试计划

1)用户定义的变量

相当于全局变量,多个线程组都能使用

2)独立运行每个线程组

不勾选:测试计划下多个线程组并行;勾选:先执行测试计划下第一个线程组,执行完后再执行第二个。

3)Run tearDown Thread Group after shutdown of main threads

*  此配置需线程组配置为“在取样器错误后要执行的操作为停止测试”才有效

*  不勾选,主线程出现错误,teardown线程组不运行

*  勾选,主线程出现错误,teardown线程组运行

*  选中TestPlan右键->添加->线程组->teardown thread group添加teardown 线程组

4)其他配置

2、线程组

1)在取样器错误后要执行的动作

继续

继续执行,测试时大多数情况下选择这个

start next thread loop

开始下一个线程的循环,如线程组下设置循环10次,如第七次循环出现错误,则后面不再执行,从第8次循环开始执行

停止线程

如,线程组出设置3个线程循环2次,加入第2个线程出错了,那么整个线程都不跑了,循环不再跑,直接到下一个线程取

停止测试

停止整个线程组,类似正常关机

stop test now

立刻停止,类似强制关机

2)线程属性

线程数

类似loadrunner的 的vu,并发用户数

RAM-Up Period(in seconds)

多长时间内启动,实际测试中该值没什么影响

循环次数

类似loadrunner迭代

Delay Thread creation until needed

不勾选,运行时先把所有的线程组都创建;勾选,需要时再创建。

3)调度器

*  使用调度器,必须勾选循环次数永远

*  持续时间:跑多长时间

*  启动延迟:多少秒之后启动

3、http请求

1)Basic

web服务器

HTTP 请求

paramters

*  名称:key

*  值:value

*  编码:勾选编码,会按照content encoding 配置方式进行编码

body data

*  json、xml格式的数据,写在bodydata中

*  当paramters为空时,可点进去body,否则无法点进去

file upload

填写上传的文件信息

2)Advanced

client implementation

http client4、java两种方式,某些情况下出现请求乱码,将实现方式换成java能解决乱码

times out

*  connect:设置连接超时时间

*  response:设置响应超时时间

enable resources from html files

*  从HTML文件获取所有内容的资源:获取潜在资源,css/js/jpg

*  parallel downloads number:同时开启几个下载连接数

*  URL must match:url过滤

source address

IP欺骗用的,参考公众号ip欺骗讲解。公网、线上环境做都是自欺欺人,没任何用。在一个教室里,所有人使用同一个wifi,每个人ip都不一样,但是所有的出口都是一个,此时ip欺骗就没有任何意义。

save responseas md5 hash

将响应结果保存为md5 hash形式

4、jdbc request

1)varriable name of pool declared in jdbc connection configuration

数据库资源池名称,与jdbc connection configuration配置中保持一致

2)sql query

*  select statement:查询

*  update statement:更新

*  callable statement:调用存储过程用

*  prepared select statement:预编译查询,预编译语句中,数据可以用问号代替

*  prepared update statement:预编译更新,预编译语句中,数据可以用问号代替

*  commit:提交

*  rollback:回滚

*  auto commit(false):自动提交

3)parameter value

*  在查询语句中,数据可以用?代替

*  用问号代替的值从parameter value中传,如,select * from user where id = ?

4)parameter type

Varchar,bgint,integer

5)variable names

*  将查询的结果保持到变量中,多个变量逗号分开

*  变量名_#,表示查询的变量总数,变量名_1,表示第一行的第一列值

6)result varviable name

把整个result保存到一个变量中

5、逻辑控制器

1)事物控制器

*  generate parent sample:仅仅统计父亲

*  可将多个sample放在事物控制器中,统计这几个请求总的平均响应时间和TPS

2)仅一次控制器

*  放在仅一次控制器下的sample只会执行一次,有几个线程就执行多少次

*  循环下面的仅一次控制器中sample只执行一次

*  登录放在仅一次控制器,减少其对其他接口的影响

3)吞吐量控制器

6、前置处理器

7、后置处理器

1)正则表达式

Apply To

*  Main sample and sub-samples:匹配主sample和子sample,主sample的重定向请求是子sample

*  main sample only:只匹配主sample

*  sub-samples only:只匹配子sample

*  jmeter variable name to user:匹配jmeter变量文件

要检查的响应字段

*  主体:大部分情况下用,默认就是主体

*  body:body是对主体中的一些特殊html字符进行了转义,因为特殊字符的复杂多样,可能出现转义不完全的情况,这种方式慎用,避免挖坑,直接用主体就好

*  body as document:把body作为document呈现,一般不用

*  信息头:响应信息头,一般提取信息头中信息要用到,如cookie

*  request heasders:请求信息头

*  url:从请求url中提取

*  响应代码:响应码,200,500,302,404等

*  响应信息:如响应消息中的ok

③匹配规则

*  引用名称:提取出的值放到变量中,此变量的名称,引用时要用${}括起来

*  正则表达式:填写提取变量值对应的正则表达式

*  模板:取第几组数据,$1$表示取第一组,$1$2$表示取第1第2组

*  匹配数字:-1表示全部,0表示随机,1表示取第一个值,2表示取第二个值

*  缺省值:缺省值建议不要为空,方便调试脚本看问题

2)JSON Extractor

Apply to

*  Main sample and sub-samples:匹配主sample和子sample,主sample的重定向请求是子sample

*  main sample only:只匹配主sample

*  sub-samples only:只匹配子sample

*  jmeter variable name to user:匹配jmeter变量文件

②匹配规则

*  name of created variables:变量名

*  json path expression:json表达式

   *  $代表根

   *  $.result  得到result的所有元素

   *  数组要加[],如$.result[0]表示取根下的result数组的第一个值,$.result[*]表示取根下result数组的所有值

3)xpath extractor

XPath Extractor使用方法与正则表达式提取器类似,只不过xpath extractor中指定的不是正则表达式,而是给定的XPath路径

Apply to

*  Main sample and sub-samples:匹配主sample和子sample,主sample的重定向请求是子sample

*  main sample only:只匹配主sample

*  sub-samples only:只匹配子sample

*  jmeter variable name to user:匹配jmeter变量文件

xml parsing options

*  use tity (tolerant parser)

*  quiet:只显示需要的html页面

*  report errors:显示响应报错

*  show warning:显示响应警告

*  Use Namespaces:如果启用该选项,后续的XML解析器将使用命名空间来分辨

*  Validate XML:根据页面元素模式进行检查解析

*  Ignore Whitespace:忽略空白内容

*  Fetch external DTDs:如果选中该项,外部将使用DTD规则来获取页面内容

Return entire XPath fragment instead of  text content

勾选:返回文本内容的整个XPath片段

不勾选:只返回值

④匹配规则

*  引用名称:引用名称

*  xpath query:表达式若以/开头,/表示从根目录开始,以//开头,//表示相对路径。如//*/ID[text()=9]/../Zone

*  匹配数字:-1表示全部,0表示随机,1表示取第一个值,2表示取第二个值

*  缺省值:缺省值建议不要为空,方便调试脚本看问题

8、定时器

1)固定定时器

*  线程延迟,单位毫秒

*  等待XXX时间,类似loadrunner中思考时间

2)高斯随机定时器

*  偏差(毫秒)

*  固定延迟偏移(毫秒),如:偏差设置1000,固定延迟设置3000,则实际延迟时间在2000-4000ms间

3)Synchronizing Timer

*  number of simulated users to group by :用户数

*  timeout in millisecond:超时时间,0代表永远等待

*  等同于loadrunner的集合点

9、监听器

1)查看结果数

*  文件浏览:导入jmeter结果文件、将执行结果写入文件

*  Log/Display Only

  仅日志错误:只记录错误信息到日志

  Successes:只记录正确信息到日志

Config:配置写入到日志文件中的信息

2)聚合报告

10、断言

1)响应断言

2)BeanShell断言

使用说明

*  注意,引用变量引号一定要加

*  注意FailureMessage一定要加,否则断言无效

*  断言内容是支持中文的,如下图

11、配置元件

1)CSV data config

 

2)jdbc connection configuration

variable name bound to pool

*  variable name for created pool:变量名称,需要变量名绑定到池

connection pool configration

*  Max Number of Connection:数据库最大连接数

*  max wait(ms):最大等待时间

*  time between eviction runs(ms):数据库连接多长时间不用就释放

*  auto commit:自动提交

*  transaction isolation:事物级别,使用默认就行

connection validation by pool

*  Test while idle:测试,选择true

*  soft min evictable idle time(ms):

*  validation query:mysql选择select 1,Oracle选择select 1 from dual

database connection configuration

* database url:jdbc:mysql://116.196.88.42:3306/besttest?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true

*  jdbc driver class:com.mysql.jdbc.Driver

*  username:数据库连接用户名

*  password:数据库连接密码

3)cookie管理器

在jmeter bin路径下的jmeter.properties文件中可配置自动保存cookie到变量

*  CookieManager.save.cookies=true  每次执行时,自动将cookie保存到变量

*  CookieManager.name.prefix=  设置cookie前缀

*  cookie变量前缀,默认是COOKIE_

*  开启自动保存cookie到变量后可以在debug sample看到cookie值

*  每个测试计划下只放一个cookie管理器,否则可能会出现jmeter不知道运行哪个cookie从而报错问题。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值