0


JMeter学习笔记002-JMeter之响应断言

JMeter之响应断言

首先,我们先聊一聊,什么是断言。

百度对于【断言】的解释:断言(assertion)是一种在程序中的一阶逻辑(如:一个结果为真或假的逻辑判断式),目的为了表示与验证软件开发者预期的结果——当程序执行到断言的位置时,对应的断言应该为真。若断言不为真时,程序会中止执行,并给出错误信息。

简而言之:判断请求成功与否。

接下来我们聊一聊JMeter中的断言。

添加断言的方法:【HTTP请求】 -> 添加 -> 断言。

在这里插入图片描述

如图所示,JMeter自带了很多种断言,对于后端Java来说,常用的断言有两种,分别是【响应断言】与【BeanShell】断言。

本文主要阐述【响应断言】。

在这里插入图片描述

如图所示,响应断言分为【Apply to】【测试字段】【模式匹配规则】【测试模式】【自定义失败信息】五个部分。

Apply to

断言的作用域。

笔者通常使用默认的【Main sample only】(比如给HTTP请求新增断言,选择了Main sample only,那么这个断言的作用域只针对此HTTP请求),没有对其他作用域有过深入的研究。之前笔者看到过一个帖子,对其他选项有一些印象。

【Main sample and sub-samples】与【Sub-samples only】这两个作用域的场景是:部分请求一次会触发多个线程,【Main sample and sub-samples】作用于主线程以及子线程,【Sub-sample only】只用作于子线程。如果选择了前者,即使主线程成功,子线程失败,那么断言也是以失败做结果。(笔者没有针对这种场景做详细的实验)

测试字段

这个模块,指的是我们使用哪一块的返回信息做断言。

【响应文本】指返回的文本信息。

【响应代码】指Http响应码,如200、500等。

【响应信息】指的是http的response message。

【响应头】指http响应头信息。

注意:响应文本不等于响应信息。

如下图所示,响应数据是有值的,但是响应信息显示为空,此时如果【测试字段】选择【响应信息】,断言会失败。笔者尝试了几种方式,仍然没有找到如何设置Response message,有清楚的道友可以留言给我。

在这里插入图片描述

其他的【测试字段】笔者工作中没有用到,以后使用到再做记录。

模式匹配规则

分为【包括】【匹配】【相等】【字符串】

【包括】与【字符串】:断言的内容,比如响应信息为

{"status":"0","message":"success"}

,选择【包括】或者【字符串】时,断言内容为【“status”:“0”】,则可以通过。二者的区别是,【包括】支持正则,【字符串】不支持正则。

【匹配】与【相等】:响应信息必须完全等于断言内容才可以通过,否则均为失败。其中【相等】是通过正则表达式匹配。(内容必须完全匹配


【否】:挂钩之后,断言结果true为false,false为true,很奇妙的旅程。

【或者】:当有多个断言时,只要有一个断言成功,那么最终结果就是成功的。

测试模式

断言的内容。如果有多个,按照顺序执行,没有选择【或者】的情况下,所有的断言通过之后,取样器结果才是成功的。

自定义失败信息

顾名思义,当失败是,可以定义个性化信息。

实战

编写一个Java接口。

@PostMapping("/test/jmeter2")publicStringtest2(){return"{\n"+"    \"status\":\"0\",\n"+"    \"message\":\"success\"\n"+"}";}

响应文本断言

包括

"status":"0"

在这里插入图片描述

执行结果

在这里插入图片描述

响应代码断言

http状态码200

在这里插入图片描述

结果

在这里插入图片描述

模拟失败

响应代码为500,自定义失败信息

在这里插入图片描述

结果

在这里插入图片描述

JMeter之响应断言篇到此告一段落,部分功能笔者未使用过,后续工作中如实际使用,再做记录。如果有对断言部分比较精通的道友,还请不吝赐教。


本文转载自: https://blog.csdn.net/qq_35316141/article/details/125863617
版权归原作者 是天松啊 所有, 如有侵权,请联系我们删除。

“JMeter学习笔记002-JMeter之响应断言”的评论:

还没有评论