概述
断言:把你的预期结果写进断言内,若实际响应数据与预期结果相符,那么Jmeter就判断接口通过,若实际结果与你的预期结果不符,那么Jmeter就判断接口失败
一、响应断言
简介:对服务器的相应接口进行断言校验,来判断接口测试得到的接口返回值是否正确(一般用户HTTP请求下)
右击线程组——添加——断言——响应断言
界面组件介绍:
- Apply to (响应断言的应用范围)
- Main sample and sub-samples:作用于父节点取样器及对应子节点取样器
- Main sample only:只作用于父节点取样器(一般的断言都选这个)
- Sub-samples only:只作用于子节点取样器
- JMeter Variable:只作用于jmeter变量(可写入正则提取的响应值)
测试字段:
- 响应文本:请求的响应文本信息,不包含响应头信息。最常用的断言字段
- 响应代码:对应http返回的响应码(如101,200,302,404,501等)
- 响应信息:匹配响应信息
- 响应头:响应头信息
- URL样本: 请求url,如果有重定向包含重定向url(是对sample的url进行断言。如果请求没有重定向(302),那么这个就是请求url。 如果有重定向(且跟随重定向),那么url就包含请求url 和 重定向url)
- 文档(文本):通过Apache Tika从各种的文档中提取的文本进行验证,包括响应文本,pdf、word等等各种格式(一切Apache Tika 支持服务器响应,包括文本响应,还支持 PDF,Office, Audio, Video,formats.jmeter会用Apache Tika 去解析服务器响应内容,会很耗内存,而且也很容易解析失败。所以一般普通 http请求,不要选择这个。)
- 忽略状态(Ignore Status): 一个请求多项响应断言时,忽略某一项断言的响应结果,而继续下一项断言(当我们要验证404.501等http响应代码时,需要勾选忽略状态(ignore status)。因为当http 响应代码为400,500时,jmeter默认这个请求是失败的。)
模式匹配规则:
- 包括:响应的结果中包含指定的文本或者字段值,支持正则表达式
- 匹配:相当于equals,完全匹配,期望值与实际结果必须完全一致,一般结合正则表达式使用(正则表达式必须匹配整个返回值,而非返回值的一部分)
- 相等:响应结果与指定的内容完全一致,不支持正则表达式
- 字符串:返回结果,包含指定的字符串,不支持正则表达式
- 否:相当于取反,如果上面断言结果为true,勾选“否”后,最终断言结果为false,如果上面断言结果为false,勾选“否”后,最终断言结果为“true”
- 或者: 勾选此项后,可以设置多个预期值,只要有一项判定成功,则断言判定成功。
测试模式:
- 填写预期结果,与实际返回结果形成判断
自定义失败消息:
- HTTP响应代码对应的响应消息,当断言失败时,会返回你编辑的内容
二、Json 断言
简介:判断某个请求执行状态&响应结果为Json格式(更为精准的判断)
右击线程组——添加——断言——Json断言
界面组件介绍
- Assert JSON Path exists: $.后面加需要检查的Json字段的路径,以“.”划层级
{ "store": { "book": [ { "category": "reference", "author": "Nigel Rees", "title": "Sayings of the Century", "price": 8.95 }, { "category": "fiction", "author": "Evelyn Waugh", "title": "Sword of Honour", "price": 12.99 }, { "category": "fiction", "author": "Herman Melville", "title": "Moby Dick", "isbn": "0-553-21311-3", "price": 8.99 }, { "category": "fiction", "author": "J. R. R. Tolkien", "title": "The Lord of the Rings", "isbn": "0-395-19395-8", "price": 22.99 } ], "bicycle": { "color": "red", "price": 19.95 } }, "expensive": 10}
路径写法:
- $.book:表示在JSON串以"book"为key获取value,也就是book里的所有数据
- $.book[0].author:对应值“Nigel Rees”
- $..author:定位到所有的“author”值
- $.store.*:对应store下所有的数据
- $.store..price:对应所有price值
- $..book[2]:book中第三个区间的值
- $..book[2]:book中倒数第二个区间的值
- $..book[0,1]:book中第一个和第二个区间的值
- $..book[:2]:从索引0(包括)到索引2(不包括)的所有书籍
- $..book[1:2]:从索引1(包括)到索引2(不包括)的所有书籍
- $..book[2:]:索引2(包括)之后的所有书籍
- $..book[?(@.isbn)]:所有有isbn值的书
- $.store.book[?(@.price<10)]:所有price值小于10的书籍
- $..book[?(@.price <= $['expensive'])]:所有小于等于expensive值的书
- $..book[?@.author=~/.*REES/i]:author中含有REES的书(忽略大小写)
- $..*:所有数据
- $..book.length():书籍数量
- Additionally assert value: 是否添加断言值(添加断言值和返回结果中的Json字段做比较)(一般要选择的)
- Match as regular expression :是否支持正则表达式
- Expected Value:添加要检查的断言值(勾选Additionally assert value才可添加断言值)
- Expect null: 断言值为null,勾选此项,则会匹配断言结果为null的结果(勾选Additionally assert value才生效,与之是或的关系,判断优先级高于Additionally assert value)
- nvert assertion: 取反,若上述断言结果为true,勾选此项后,断言结果为false;反之,若上述断言结果为false,勾选此项后,断言结果为false(以上设置的校验都不成立时生效)
添加断言结果
简介:查看Json断言是否通过
右击断言——添加——监听器——断言结果
最后
以上就是美丽海燕为你收集整理的1.2-断言的全部内容,希望文章能够帮你解决1.2-断言所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复