jmeter --响应断言详解

  1. 响应断言 :对服务器的响应进行断言校验

  • 应用范围: main sample and sub sample, main sample only , sub-sample only , jmeter variable

  关于应用范围,我们大多数勾选“main sample only” 就足够了,因为我们一个请求,实质上只有一个请求。但是当我们发一个请求时,可以触发多个服务器请求,类似于ajax那种,那么就有main sample  和 sub-sample之分了。

  此外,对于有重定向的请求,并且勾选了“跟随重定向”, 那么这两个请求都是 sub-sample,重定向后的请求(第二个请求)就是main-sample

  关于main sample and sub sample,有兴趣的可以看看这个帖子

http://stackoverflow.com/questions/28214936/jmeter-in-which-scenario-i-can-use-main-sample-or-sub-sample-or-both-for-te

  • 响应字段: 响应文本,Document(Text),url样本,响应代码,响应信息,Response Header,ignore status

  响应文本: 服务器响应文本,一般普通http响应,都勾选这个。
  Document(Text):一切Apache Tika 支持服务器响应,包括文本响应,还支持 PDF, Office, Audio, Video formats。jmeter会用Apache Tika 去解析服务器响应内容,会很耗内存,而且也很容易解析失败。所以一般普通http请求,不要选择这个。
  url样本:是对sample的url进行断言。如果请求没有重定向(302),那么就是这个就是请求url。 如果有重定向(且跟随重定向),那么url就包含请求url 和 重定向url
  响应代码:http响应代码,如101,200,302,404,501等。但当我们要验证404,501等http响应代码时,需要勾选“ ignore status”。因为当http 响应代码为400,500时,jmeter默认这个请求时失败的。
  响应信息:http响应代码对应的响应信息,例如:OK, Found
  HTTP/1.1 200 Ok
  HTTP/1.1 302 Found
  Response Header : 响应头信息,例如
  Server: Tengine
  Date: Thu, 12 Mar 2015 09:43:52 GMT
  Content-Type: text/html
  Content-Length: 260
  Connection: close
  Location: http://www.baidu.com/404.html

  • 模式匹配规则

包括:返回结果包括你指定的内容,支持正则匹配
  例如:
  响应字段为: 响应文本
  模式匹配规则:匹配
  断言为:1、invalid    2、[a-z]+
  当返回值为:{"msg":"channel invalid."} , 这两个断言都是ok的,返回true
  匹配:
  (1) 相当于 equals 。当返回值固定时,可以返回值做断言,效果和equals相同
  (2) 正则匹配 。 用正则表达式匹配返回结果,但必须全部匹配。 即正则表达式必须能匹配整个返回值,而不是返回值的一部分。
  例如:
  响应字段为: 响应文本
  模式匹配规则:匹配
  断言为:1、{"msg":"channel invalid."}   2、{"msg":"[a-z]+ invalid."}  , 3、[a-z]+
  当返回值为:{"msg":"channel invalid."}   ,断言1 2 是ok的, 断言3是false
  当返回值为:{"msg":"channel invalid."} , 断言1 3是false, 断言2才是ok的。
  原因是,断言1 只能用于equals,而断言3 只匹配了返回值部分,而不是全部匹配。
  Equals : 返回结果与你指定断言完全一致
  SubString:与 “包括”差不多,都是指返回结果包括你指定的内容,但是subString不支持正则字符串
  例如:
  响应字段为: 响应文本
  模式匹配规则:匹配
  断言为:1、invalid    2、[a-z]+
  当返回值为:{"msg":"channel invalid."} , 断言1返回true, 但断言2返回false
  否:就相当于取反。 如果上面断言结果为true,勾选“否”后,最终断言结果为false。如果上面断言结果为false,勾选“否”后,则最终断言结果为 true。

时间: 2024-11-06 09:53:54

jmeter --响应断言详解的相关文章

JMeter响应断言详解

响应断言 :对服务器的响应进行断言校验 (1)应用范围: main sample and sub sample, main sample only , sub-sample only , jmeter variable 关于应用范围,我们大多数勾选"main sample only" 就足够了,因为我们一个请求,实质上只有一个请求.但是当我们发一个请求时,可以触发多个服务器请求,类似于ajax那种,那么就有main sample  和 sub-sample之分了. 此外,对于有重定向的

Jmeter接口之响应断言详解

响应断言 : 对服务器的响应进行断言校验 Apply to 应用范围: main sample and sub sample, main sample only , sub-sample only , jmeter variable 关于应用范围,我们大多数勾选"main sample only" 就足够了,因为我们一个请求,实质上只有一个请求.但是当我们发一个请求时,可以触发多个服务器请求,类似于ajax那种,那么就有main sample 和 sub-sample之分了.此外,对于

Jmeter笔记:响应断言详解

平时我们使用jmeter进行性能测试时,经常会用到断言.jmeter提供了很多种断言,本来想全都写一下,但发现每一个断言里面的东西都很多,所以就先写一下我们经常使用的响应断言. 响应断言 :对服务器的响应进行断言校验 (1)应用范围: main sample and sub sample, main sample only , sub-sample only , jmeter variable 关于应用范围,我们大多数勾选“main sample only” 就足够了,因为我们一个请求,实质上只

【转】Jmeter笔记:响应断言详解

平时我们使用jmeter进行性能测试时,经常会用到断言.jmeter提供了很多种断言,本来想全都写一下,但发现每一个断言里面的东西都很多,所以就先写一下我们经常使用的响应断言. 第一次在cnblog上写东西,不会排版,希望达人指点. 响应断言 :对服务器的响应进行断言校验 (1)应用范围: main sample and sub sample, main sample only , sub-sample only , jmeter variable 关于应用范围,我们大多数勾选“main sam

jmeter 基础功能详解

jmeter 基础功能详解 thread group:包含一组线程,每个线程独立地执行测试计划. sampler:采样器,有多种不同的sample实现,用来发起各种请求,如http请求,jdbc请求,javaTest请求等等. logic controller:逻辑控制器有多种不同的实现,可以决定每个sample的执行顺序. listener:有多种不同的实现,主要用于统计测试接话运行中的数据并展示,如可以进行图形化方式展示响应时间. timer:定时器,有多种不同的实现,可用作每个请求见的停顿

Java知多少(54)断言详解

断言的概念 断言用于证明和测试程序的假设,比如“这里的值大于 5”.断言可以在运行时从代码中完全删除,所以对代码的运行速度没有影响. 断言的使用 断言有两种方法: 一种是 assert<<布尔表达式>> : 另一种是 assert<<布尔表达式>> :<<细节描述>>. 如果布尔表达式的值为false , 将抛出AssertionError 异常: 细节描述是AssertionError异常的描述文本使用 javac –source

jmeter响应断言通过,结果树中却显示红色

jmeter测试登录失败的场景,添加的响应断言通过,但查看结果树中一直显示红色. 原来jmeter是响应状态码200请求成功的前提下,才会去匹配断言,而返回的4xx,5xx一般是失败的.此时我们需要在响应断言中勾选Ignore status. 原文地址:https://www.cnblogs.com/tianpin/p/10039426.html

jmeter 常用组件详解

1.测试计划(test plan) 描述一个性能测试,包含本次测试所有相关功能 2.threads(users)线程 Setup thread group: 一种特殊类型的线程,可用于执行预测试操作.即执行测试前进行定期线程组的执行 Teardown thread group: 一种特殊类型的线程,可用于执行测试后动作.即执行测试结束后执行定期的线程组 以上两个线程组,举个例子:loadrunner的脚本除了action里是真正的脚本核心内容,还有初始化“环境”的初始化脚本和测试完毕后对应的清除

JMeter数据库操作详解

Jmeter提供了JDBC连接的插件,通过执行SQL语句的java API,实现对数据库的访问和查询. 一.安装驱动包 将需要连接JDBC的jar包放入jmeter安装文件的lib文件中(也可测试计划中的导入) 二.配置JDBC Connection configuration 右键线程组→添加→配置元件→JDBC Connection configuration Variable Name:数据库连接池的名称,在使用JDBC Request时通过该连接池名称进行连接,因此在使用JDBC Req