02-jmeter组件介绍

    xiaoxiao2025-01-09  88

    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从而报错问题。

    最新回复(0)