Jmeter-测试计划,线程组,取样器,逻辑控制器,断言和监听器

一 测试计划

是使用jmeter测试的起点,是其他测试元件的容器,一个完整的测试计划包括多个线程组,逻辑控制器,取样器,监听器,配置元件

Jmeter-测试计划,线程组,取样器,逻辑控制器,断言和监听器_第1张图片 

 

用户定义的变量: 测试计划上可以添加用户定义的变量。一般添加一些系统常用的配置,比如直接${变量名}, eg: ${IP},${Port}。

如果测试过程中想切换环境,切换配置,一般不建议在测试计划上添加变量,因为不方便启用和禁用,一般是直接添加用户自定义变量组件。如: 

Jmeter-测试计划,线程组,取样器,逻辑控制器,断言和监听器_第2张图片 

 Jmeter-测试计划,线程组,取样器,逻辑控制器,断言和监听器_第3张图片

 二 线程组:测试里每个任务都需要线程去处理,所有任务必须在线程组下面创建

 1.线程数:设置发送请求的用户数,即并发数

2.Ramp-Up: 如果参数为2,则表示线程数在2秒内初始化完毕,每秒启动的线程数为:线程数/2

3.循环次数:请求的重复次数,如果参数设置为10,线程数为200,则总的请求数为200*10

4.栗子:200个用户在10秒之内访问百度网页,这样可以设置线程数为200,Ramp-Up为10,这样就表示200个用户在10秒内访问网页,也就是说1秒内有20个用户同时访问百度网页

三 取样器

可以认为所有的测试任务都由取样器承担,如:http请求,ftp请求,JDBC请求;取样器告诉jmeter发送一个请求到指定服务器,并等待服务器的请求。取样器会按照其顺序执行,还可以用逻辑控制器来改变取样器运行的重复次数。

备注:请求的协议,服务器名称或ip, 请求方式, 向服务器请求的路径,请求的参数 

Jmeter-测试计划,线程组,取样器,逻辑控制器,断言和监听器_第4张图片          

四 逻辑控制器

可以控制jmeter发送请求的测试逻辑,它与sampler结合使用可以模拟复杂的请求序列,其中的控制器是可以组合使用,里面包括:

1. 循环控制器:设置请求的循环次数或永远循环,可用于压力测试

2. 事务控制器:将多个请求放在同一事务中。选中Gegerate parent sampler, 则聚合报告中只显示事务控制器的数据,不会显示其中各个请求的数据,反之则全部显示

3. 简单控制器:测试用例顺序执行

独立运行每个线程组: 用于控制测试计划中的多个线程组的执行顺序。如上图,线程组1和线程组2的线程是并行执行的,执行过程线程的执行顺序是不可预料的。
如果勾选了独立运行每个线程组,可以保证线程组1的执行一定在线程组2之前,线程组1执行完毕,才会执行线程组2。

线程组中的取样器的执行顺序: 默认是从上到下执行。交替控制器、随机控制器、随机顺序控制器和循环控制器等可以改变取样器的执行顺序。

函数测试模式(Functional Testing) 如果选中了此选项,监听组件如“查看结果树”配置了保存到一个文件中,那么jmeter会将每次的请求结果保存到文件中。一般不建议勾选。

Jmeter-测试计划,线程组,取样器,逻辑控制器,断言和监听器_第5张图片

五 断言 (Assertion)

它的作用和loadrunner中的检查点类似,对取样器返回的结果给出判断,是否正确。 用户可以使用断言来检查从服务器获得的响应内容,用来判断请求相应的结果是否如用户所期望的。

使用断言的目的:在request的返回层面增加一层判断机制;因为request成功了,并不代表结果一定正确。

使用断言的方法:

在选择的Sampler下添加对应的断言;配置好响应的检查内容(根据断言情况而定,有的断言控制面板不需要添加任何内容,如XML Assertion)。

添加一个断言结果的监听器(从监听器中添加),通过“断言结果”可以看到是否通过断言;对于一次请求,如果通过的话,断言结果中只会打印一行请求的名称;

  如果失败,则除了请求的名称外,还会有一行失败的原因(不同类型的断言,结果不同)。

PS:一个Sampler可以添加多个断言,根据你的检查需求来添加相应的断言,当Sampler下所有的断言都通过了,那么才算request成功。

Jmeter-测试计划,线程组,取样器,逻辑控制器,断言和监听器_第6张图片

1. 响应断言:

Jmeter-测试计划,线程组,取样器,逻辑控制器,断言和监听器_第7张图片

apply to:适用范围

Main sample and sub-samples: 作用于父节点取样器及对应子节点取样器

Main sample only:仅作用于父节点取样器

Sub-samples only: 仅作用于子节点取样器

JMeter Variable:  作用于jmeter变量(输入框内可输入jmeter的变量名称)

要测试的响应字段:要检查的项

                响应文本:响应服务器返回的文本内容,http 协议排除header部分

                响应代码:匹配响应代码,比如http请求中,“200”代表成功

                响应信息:匹配响应信息,处理成功返回“成功”或者“OK”字样

                Response Headers: 匹配响应头中的信息

                URL样本

                Ignore status:忽略返回的响应报文状态码

模式匹配规则:

           包括:返回结果包括你指定的内容

           匹配:(好像跟Equals查不多,弄不明白有什么区别)   

           Equals:返回结果与你指定结果一致

           Substring:返回结果是指定结果的字串

           否:不进行匹配

要测试的模式: 即填写你指定的结果(可填写多个),按钮【添加】、【删除】是进行指定内容的管理

2. 断言持续时间:

用于判断服务器的响应时间

作用对象:服务器

APPly to:  适用范围

         Main sample and sub-samples: 作用于父节点取样器及对应子节点取样器

         Main sample only:仅作用于父节点取样器

         Sub-samples only: 仅作用于子节点取样器

Duration to assert:持续断言

Duration in milliseconds:响应时间设置(单位:毫秒),如果响应时间大于设置的响应时间,则断言失败,否则成功!

3. Beanshell断言

当某些断言不能满足使用时,比如多个断言或的情况,可以使用Beanshell Assertion来进行处理。Beanshell是一种松散类型的脚本语言,一直完全符合java语法的Java脚本语言。

Name: 断言的名字

Comments:注释(对这个断言进行一个解释,备注)

Reset bsh.interpreter before each call: 在每次调用Bean Shell之前重置bsh.interpreter类(bsh.interpreter是Bean Shell脚本语言的一种类,也可以理解为一种解析器)

Parameters(String Parameters and String []bsh.args):String参数(String []bsh.args是主类main函数的形式参数,是一个String 对象数组,可以用来获取命令行用户输入进去的参数)

Script file:脚本文件(可以填入脚本文件路径)

Script(see below for variables that are defined):参照下文定义的变量(使脚本文件参照定义的变量来运行)

栗子:“code:200”或者“code:800034”都认为断言成功时,可以使用如下方法来进行处理:

Jmeter-测试计划,线程组,取样器,逻辑控制器,断言和监听器_第8张图片

4. Json 断言

Jmeter-测试计划,线程组,取样器,逻辑控制器,断言和监听器_第9张图片

在Json Path中添加匹配规则,在Expect value中填写期望值

Assert JSON Path exists: $.

新增一个 JSON Assertion,在 $. 后面加入需要检查的json字段; 
比如截图中我察看的是“result”; 
Expected Value:是要检查的json结果;

下图是我的察看结果树的截图: 
察看结果树

我测试用例中正常的result是11;
如果JSON Assertion 的Expected Value设置result值为11;
则断言结果是请求的名称,察看结果树的结果是绿色的;
如果是JSON Assertion 的Expected Value设置result值为12;
则断言结果是这样的:

这里写图片描述

 5. xpath断言

XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言。

作用对象:针对返回信息为XPAth的数据类型进行断言

Jmeter-测试计划,线程组,取样器,逻辑控制器,断言和监听器_第10张图片

XML Parsing Options:XML解析选项

         Use Tidy(tolerant parser):使用Tidy(容错解析器),默认选择quiet(不显示)

         Quiet:不显示

         Report errors:错误报告

         Show warnings:显示错误

         Use Namespaces:使用名称空间

         Validate XML:验证XML(文件包/数据)

         Ignore Whitespace:忽略空格(允许你指定语法分析器可以忽略哪个空格,而哪个空格重要的)

         Fetch external DTDs: 获取外部DTDs

XPath Assertion: 输入框中写入xpath断言,点击Validate验证其正确性

         True if nothing matches:确认都不匹配

6. 比较断言(compare  assertion)

这是一种比较特殊的断言元件,针对断言进行字符串替换时使用;

作用对象:需要替换的字符串

Jmeter-测试计划,线程组,取样器,逻辑控制器,断言和监听器_第11张图片

Select Comparison Operators:选择比较运算符

Compare Content:可以选择比较的内容类型(true/false或者自定义,编辑)

Compare Time:比较时间(可以设定比较的时间,单位为秒,默认为-1)

Comparison Fitters:比较修改工具

regular expression substitutions:替换正则表达式

Regex String:要替换的字符串(可从断言结果中选择)

substitutions:替换的字符串(替换结果)

六 监听器(结果分析)

Jmeter-测试计划,线程组,取样器,逻辑控制器,断言和监听器_第12张图片

1. 察看结果树

Jmeter-测试计划,线程组,取样器,逻辑控制器,断言和监听器_第13张图片

添加察看结果树,放的位置不同,察看的结果也不同。在线程组下添加察看结果树,察看线程组下所有请求的结果;放在具体某个请求下,只查看此请求的结果;若放在某个控制器节点下,则查看此控制器下节点执行的结果。

参数说明: 

(1)名称:控制器的描述性名称,显示在左边节点上,并用于命名事务 

(2)注释:控制器注释信息,非必填项 

(3)文件名:载入文件名 

(4)Log/Display Only: 仅日志错误、Success ;勾选中显示对应的日志信息
(5) Configure:定义report中自己所关心的数据项。
(6) 取样器结果:
         Thread Name: 线组名称
         Sample Start: 启动开始时间
         Load time: 加载时长
         Latency: 等待时长
         Size in bytes: 发送的数据总大小
         Headers size in bytes: 发送头大小
         Body size in bytes: 发送数据的其余部分大小
         Sample Count: 发送统计
         Error Count: 错误统计
         Response code: 返回码
         Response message: 返回消息
         Response headers:返回头信息
(7)请求 - 数据获取方式、路径、地址等以及传递的参数、cookie
(8)响应数据 - 响应加载的页面html

2. 聚合报告 (Aggregate report)

Jmeter-测试计划,线程组,取样器,逻辑控制器,断言和监听器_第14张图片

 记录这次却被行测试总请求数、错误率、用户响应时间(中间值、90%、最少、最大)、吞吐量等,用以帮助分析被测试系统的性能,如果大家都是做web应用的性能测试,例如只有一个登录的请求,那么在Aggregate Report中,会显示一行数据,共有10个字段,含义分别如下。

参数说明:

  • Label          取样器别名,如果勾选Include group name  ,则会添加线程组的名称作为前缀
  • # Samples  取样器运行次数
  • Average     请求(事务)的平均响应时间
  • Min            请求的最小响应时间
  • Max           请求的最大响应时间
  • Std. Dev    响应时间的标准方差
  • Error %     事务错误率
  • Throughput    吞吐量 也就是TPS
  • Received KB/sec  每秒收到的千字节
  • Sent KB/sec         每秒发送的千字节
  • Avg. Bytes       响应平均流量

3. 汇总报告(summary report)

Jmeter-测试计划,线程组,取样器,逻辑控制器,断言和监听器_第15张图片

 Summary Report 为测试中的每个不同命名的请求创建一个表行。这与聚合报告类似,只是它使用更少的内存。

参数说明:

  • Label          取样器别名,如果勾选Include group name  ,则会添加线程组的名称作为前缀
  • # Samples  取样器运行次数
  • Average     请求(事务)的平均响应时间
  • Min            请求的最小响应时间
  • Max           请求的最大响应时间
  • Std. Dev    响应时间的标准方差
  • Error %     事务错误率
  • Throughput    吞吐量 也就是TPS
  • Received KB/sec  每秒收到的千字节
  • Sent KB/sec         每秒发送的千字节
  • Avg. Bytes       响应平均流量

4. 汇总图(Aggregate Graph)

Jmeter-测试计划,线程组,取样器,逻辑控制器,断言和监听器_第16张图片 

转载于:https://www.cnblogs.com/wz123/p/10243239.html

你可能感兴趣的:(json,测试,shell)