先说一下使用断言的目的:在request的返回层面增加一层判断机制。因为request成功了,并不代表结果一定正确。类似于QTP中的检查点检查点。断言的使用方法:

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

step_2:添加一个断言结果的监听器(从监听器中添加),通过“断言结果”可以看到是否通过断言。对于一次请求,如果通过的话,断言结果中只会打印一行请求的名称;如果失败,则除了请求的名称外,还会有一行失败的原因。(不同类型的断言,结果不同。)

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

下面简单说一下几种断言的使用(前3种应该较为常用一点):

1、Response Assertion(响应断言)

适用于判断返回内容中的内容,控制面板截图如下:

位置1:名称、注释

位置2:要测试的相应字段,即要检查的项

位置3:模式匹配规则

  • 包括:返回结果包括你指定的内容
  • 匹配:(好像跟Equals查不多,弄不明白有什么区别)
  • Equals:返回结果与你指定结果一致
  • Substring:返回结果是指定结果的字串

否:不进行匹配

位置4:要测试的模式,即填写你指定的结果(可填写多个,如图中就是希望返回文本中包含有2个指定的字符串,只有当同时包含了这2个串,这个断言才算通过,否则,算失败。)按钮【添加】、【删除】是进行指定内容的管理

2、Size Assertion(Size断言)

Size Assertion用于判断返回内容的大小,Size Assertion控制面板截图如下:

位置1:名称、注释

位置2:指定大小(单位:字节)与比较类型,返回内容的大小、比较类型、指定字节大小的比较时的摆放顺序是:【返回内容的大小】【比较类型】【指定字节大小】,如果这个比较结果通过,则断言通过,如图中,如果返回内容的大小大于10个字节,则断言通过,否则失败。

3、Duration Assertion(Size断言)

Duration Assertion用于判断服务器的响应时间,控制面板截图如下:

位置1:名称、注释

位置2:响应时间设置(单位:毫秒),如果响应时间大于设置的响应时间,则断言失败,否则成功!(等于的情况不好设置,暂不知道具体情况如何)

4、HTML Assertion(HTML断言)

html assertion的作用是检查返回的的内容,格式是否符合指定格式的相关标准。具体见下面说明。HTML Assertion的控制面板如下:

位置1:名称、注释

位置2:Tidy Settings,Doctype有auto、omit、strict、loose(这里各设置代表什么意思暂不太了解)

位置3:格式类型,即你按那种格式来检查返回内容,html or xhtml or xml?

位置4:能接受的最大值设置,Error threshold:最大可以接受的错误数;Warning threshold:最大可以接受的警告数。如果勾选“Error only”这忽略Warning,只对Error作统计检查。如果对返回内容的检查结果不超过指定结果,则断言通过,否则失败。

5、XML Assertion(XML断言)

就目前的理解来看XML Assertion的作用是判断返回结果是否否和xml的格式即<></>成对出现。(不知这样理解对不对?如果是这样的话,这个在HTML中,设置Format为XML就可以实现了,为什么还需要这个呢?)XML Assertion控制面板截图如下:

从控制面板上可以看出,XML Assertion不需要设置任何内容。

在使用XML Assertion的过程中,遇到一个问题,弄不明白,问题贴在这里,希望路过的朋友,如果知道的话,帮忙解答一下:

Jmeter中添加xml assertion

断言结果:Error on line 1: The element type "Detail" must be terminated by the matching end-tag "</Detail>".

但实际请求返回结果:

<?xml version="1.0" encoding="UTF-8"?><Info><Country>中国</Country><Province>未知</Province><City>未知</City><Type>大学</Type><ISP>教育网</ISP><Detail>中国教育网</Detail></Info>

问题:<Detail></Detail>是成对的,断言那边怎么会过不去?

以上参考:

1、http://www.51testing.com/html/75/n-97675.html

2、http://jakarta.apache.org/jmeter/usermanual/component_reference.html#XML_Assertion

JMeter学习(十四)jmeter_断言使用的更多相关文章

  1. 强化学习(十四) Actor-Critic

    在强化学习(十三) 策略梯度(Policy Gradient)中,我们讲到了基于策略(Policy Based)的强化学习方法的基本思路,并讨论了蒙特卡罗策略梯度reinforce算法.但是由于该算法 ...

  2. Scala学习十四——模式匹配和样例类

    一.本章要点 match表达式是更好的switch,不会有意外调入下一个分支 如果没有模式能够匹配,会抛出MatchError,可以用case _模式避免 模式可以包含一个随意定义的条件,称做守卫 你 ...

  3. Jmeter(三十四) - 从入门到精通进阶篇 - 参数化(详解教程)

    1.简介 前边三十多篇文章主要介绍的是Jmeter的一些操作和基础知识,算是一些初级入门的知识点,从这一篇开始我们就来学习Jmeter比较高级的操作和深入的知识点了.今天这一篇主要是讲参数化,其实前边 ...

  4. JMeter—常见问题(十四)

    参考<全栈性能测试修炼宝典JMeter实战>第十五章 JMeter常见问题 1.无法产生负载 注意检查各元件是否时禁用状态.JMeter在运行时是以数形式加载各种元件的,如果父节点被禁用, ...

  5. android学习十四(android的接收短信)

    收发短信是每一个手机主要的操作,android手机当然也能够接收短信了. android系统提供了一系列的API,使得我们能够在自己的应用程序里接收和发送短信. 事实上接收短信主要是利用我们前面学过的 ...

  6. JMeter学习(四)参数化

    JMeter也有像LR中的参数化,本篇就来介绍下JMeter的参数化如何去实现. 参数化:录制脚本中有登录操作,需要输入用户名和密码,假如系统不允许相同的用户名和密码同时登录,或者想更好的模拟多个用户 ...

  7. Jmeter(二十四)_服务器性能监控

    下载插件 1.访问网址http://jmeter-plugins.org/downloads/all/,下载三个文件.其中JMeterPlugins-Standard和JMeterPlugins-Ex ...

  8. JavaWeb学习 (十四)————JSP基础语法

    一.JSP模版元素 JSP页面中的HTML内容称之为JSP模版元素.  JSP模版元素定义了网页的基本骨架,即定义了页面的结构和外观. 二.JSP表达式 JSP脚本表达式(expression)用于将 ...

  9. <转>jmeter(十四)HTTP请求之content-type

    本博客转载自:http://www.cnblogs.com/dinghanhua/p/5646435.html 个人感觉不错,对jmeter最常用的取样器http请求需要用到的信息头管理器做了很好的解 ...

  10. Jmeter(三十四)_Beanshell解析并提取json响应

    1:前置条件 将fastjson-1.2.49.jar包置于jmeter的lib目录下,并将该jar包添加到测试计划的Library中:否则会报:Typed variable declaration ...

随机推荐

  1. 解决 UIView 设置背景为UIImage图片变型问题[XXX setBackgroundColor:[UIColor colorWithPatternImage:XXX]];

    [self.drawingViewsetBackgroundColor:[UIColorcolorWithPatternImage:[selfthumbnailWithImageWithoutScal ...

  2. ng-template

    一,锚点链接 定义锚点: <a href="#login" class="btn btn-primary">Login</a> < ...

  3. JavaWeb项目中文乱码问题

    1.从浏览器读数据乱码(post 请求方式) 前提是前端页面是UTF-8编码,因为服务器端默认采用ISO解码,所以乱码,在读取前加上: request.setCharacterEncoding(&qu ...

  4. angualar入门学习-- 自定义指令 认识属性

    个AngularJS指令在HTML代码中可以有四种表现形式: 1.作为一个新的HTML元素来使用 2.作为一个元素的属性来使用 3.作为一个元素的类来使用 4.作为注释来使用 一.创建指令 angul ...

  5. Android 生成keystore,两种方式

    一.eclipse 中生成android keystore 建立任意一个android项目(例如:AntForAndroid) 右键AntForAndroid根目录弹出菜单->Android T ...

  6. ubuntu首次给root用户设置密码和root用户登录设置

    1 ubuntu首次给root用户设置密码 给root用户设置密码输入命令sudo passwd,然后系统会让你输入密码,这时输入的密码就是root用户的密码了,设置完成之后就可以切换root用户登录 ...

  7. 创建超小的Golang docker 镜像

    原文: http://colobu.com/2015/10/12/create-minimal-golang-docker-images/ 本文对于创建超小的镜像非常有用 Docker是PaaS供应商 ...

  8. Piggy-Bank---hdu1114(完全背包)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1114 题意是有一个存钱罐,当它是空的时候重量为E,满的时候重量为F:已知存钱罐里面有 n 种钱,每种钱 ...

  9. Android安装APK报错:Installation error: INSTALL_FAILED_UPDATE_INCOMPATIBLE解决方法

    今天调试一个android应用的时候,安装报了Installation error: INSTALL_FAILED_UPDATE_INCOMPATIBLE错误,代码如下: [2015-12-28 15 ...

  10. Android Studio设置行宽、格式化断行

    设置基于Android studio 1.2,其它版本可能位置不大一样,可以直接搜索 1.设置行宽 就是那条右标准线的位置:Setting-->Editor-->Code Style,右侧 ...