接口测试断言详解(Jmeter)

Posted 自动化软件测试

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口测试断言详解(Jmeter)相关的知识,希望对你有一定的参考价值。

接口测试断言详解(Jmeter)
简介

接口测试是目前最主流的自动化测试手段,它向服务器发送请求,接收和解析响应结果,通过验证响应报文是否满足需求规约来验证系统逻辑正确性。接口的响应类型通过Content-Type指定,常见的响应类型有

• text/html HTML格式   

• text/plain :纯文本格式         

• text/xml :  XML格式   

• application/xml     : XML数据格式  

• application/json    : JSON数据格式  

接口测试断言详解(Jmeter)


Jmeter通过响应断言组件,Json断言组件实现对响应报文的解析和验证

• 响应断言可以验证任意格式的响应报文

• Json断言适用于Json格式的响应报文

接口测试断言详解(Jmeter)
相应断言

响应断言可以选择断言验证的范围(URL,响应头,响应码,响应体,响应附件),匹配的模式(纯文本还是正则表达式匹配),具体选项如下:

接口测试断言详解(Jmeter)

Apply to (响应断言的应用范围)

• Sub-samples适用于发送一个请求同时触发多个子请求的情况,一般情况下推荐使用Main Sample only,仅校验发起的请求响应。对跟随重定向的请求,重定向后的请求是主请求。

• Jmeter Variable可对Sampler中生成的Jmeter变量进行校验,此处写明变量名。

要测试的响应字段(可通过取样器结果查看)

• 响应文本:最常用的选项,服务器的响应文本(不包含响应头信息)

• Document(text):除了文本响应还支持 PDF/ Office/ Audio/ Video ,Apache Tika 解析服务器响应内容,很耗内存而且很容易解析失败,非特殊需求不建议使用此选项。 

• Response Headers:响应头

• URL样本:  请求url,如果有重定向包含重定向url  

• 响应代码:Http返回的响应码  

• 响应信息: 响应代码对应的响应信息eg:OK(200),可在结果树中查看代码和信息

• Ignore Status: 当http 响应代码为400/500时,jmeter默认请求失败,要验返回码为500需勾选ignore status。Sampler下多个断言是叠加作用的,只要有一个断言勾选了Ignore Status就可以。

接口测试断言详解(Jmeter)


响应断言:模式匹配

• 包括:支持纯文本和正则,验证返回包括指定的内容

• 匹配:支持纯文本和正则,正则需全匹配(正则必须匹配全部返回,而非部分返回)

• Equals:字符串相等,纯文本匹配,验证返回结果和指定结果完全一致

• SubString:字符串包含,纯文本匹配,验证返回结果包含指定结果

• 否:结合上述条件取反,若上述断言结果为false,取否后,最终断言结果为true


接口测试断言详解(Jmeter)


接口测试断言详解(Jmeter)
Json断言

Json断言是针对Json报文的断言方式,通Json Path提取出Json响应报文中的字段,再采用纯文本或者正则去验证Json Path的提取结果,Json结合了Json Path和正则表达式,有如下选项:

• Additionally assert value:文本验证,此处是完全匹配,勾选上此选项后再勾选Match as regular expression,可以触发正则匹配。

• Match as regular expression:支持正则表达式匹配

• Expect null:判定返回为null

• Invert assertion:倒置断言结果

接口测试断言详解(Jmeter)


Json Path是用于确定 JSON 文档中某部分元素位置的语言。它将 JSON 数据转换为 DOM 树状结构,并提供在数据结构中寻找节点的能力。Jmeter提供组件来验证Json Path的语法正确性,以及元素匹配情况。可以在察看结果树中将响应报文的格式从Text切换为Json Path Tester,并在Json Path Expression栏中输入相应的Json Path ,点击Test,察看JsonPath的定位结果。

接口测试断言详解(Jmeter)

目前接口测试最主流的交换文档就是Json报文,无论是响应断言还是Json断言,核心都是对正则表达式,JsonPath 语法的理解。Jmeter 内置了JsonPath的校验工具,针对正则表达式,可通过在线正则表达式工具进行测试:http://tool.oschina.net/regex/


响应断言和Json断言可以涵盖大部分的接口校验需求,针对更加复杂的接口校验需求,比如数据库校验,比如复杂计算逻辑的校验 ,可通过Beanshell断言组件编写脚本来实现断言。


接口测试断言详解(Jmeter)

Bye~



RECOMMEND


testfan一直致力于提高整个测试行业技术实力,近期特推出”大咖解题--公益提升计划“项目,帮助所有测试从业者走上高端测试之路!


接口测试断言详解(Jmeter)

点击文章底部的阅读原文,了解更多

扫上图加安然老师微信可解锁上期解题视频,暗号:“接口测试框架设计


以上是关于接口测试断言详解(Jmeter)的主要内容,如果未能解决你的问题,请参考以下文章

jmeter之接口测试(断言)

Jmeter接口测试数据库断言的实现与设计

(二)jmeter完成一个简单接口测试和断言

JMeter接口测试——断言

Jmeter接口测试系列之保存断言结果到文件

接口测试之JMeter-2