Jmeter 修改Sampler result 结果信息

news/2024/12/22 13:25:24/文章来源:https://www.cnblogs.com/JcHome/p/18622028

首先说一下,jmeterSampler result是什么?

Jmeter Samplers result jmeter在向服务器发送请求后,接收到服务器响应的基本信息的展示,如 sample 的开始请求时间、发送的内容大小、基于协议的响应状态码和响应消息等信息。

什么是基于协议的响应状态码和响应消息。比如http协议的状态码:200400等,和response messageok,这些都是http自身定义的状态码和消息。而接口的响应内容一般也会定义一些状态码或者状态信息。不过这些是后端开发者自定义的内容,比如某个接口的响应内容中包含:{status:ok,code:200,response:[...]},这类信息是不会在Sample result中展示出来,而是在response data中显示。

sampler result 中,还记录当前接口是否请求成功的信息,比如当请求某个接口失败后,在结果树中就会以红色形式标记出来。

 

一般情况下,最好不要随意修改响应结果信息,在什么情况下要修改响应结果呢?

最近在用jmeterwebsocket接口连接k8spod对另一台pod机进行ping超出时,如果ping pod存在则响应ping的结果信息。如果ping pod不存在时,不会响应任何信息,导致jmeter websocket在循环接收消息超时后,会被标记为失败。与实际期望的结果不符。

大致的业务场景为:

PodA 存在,且开机状态,ip地址:15.xx.1.35

PodB 存在,且开机状态,ip地址:15.xx.1.36

PodC 存在,关机状态, ip地址:15.xx.1.37

用例1podA ping podB 地址正常响应ping 的信息  --pass

用例2podA ping podC 地址无响应信息      --pass

jmeter中用websocket 实现podA ping podC时,当长时间没有响应信息,导致jmeter认为该请求失败,由于websocket是长连接类型,运行不断地请求服务信息。而且在WebSocket Single Read Sampler 中,已设置了超时不标记为错误。也没有达到预期效果。

 执行结果会有时候,没有响应时,执行通过。有时候没有响应时,执行失败

但实际期望的结果是,pingpodC(未开机)没有响应。是正确的

因此,需要通过干预当sampler result结果,当请求response code 报:Sampler error: unexpected frame type (ping). 时,忽略该错误,标记该请求为成功。

 

实际操作如下:

1、WebSocket Single Read Sampler 中的后置处理器中,通过beanshell 获取到该sample的执行结果。

2、判断response code 等于:Sampler error: unexpected frame type (ping). 时,标记该请求成功。

实际代码如下:

import org.apache.jmeter.samplers.SampleResult;// 获取当前的SampleResult
SampleResult sr = ctx.getPreviousResult();// 设置新的Response Code
//sr.setResponseCode("test code");
// 
//// 设置Response Message,如果需要的话
//sr.setResponseMessage("Read timeout, no response received");
String response_code  = sr.getResponseCode();log.info(response_code);
if(response_code.equals("Sampler error: unexpected frame type (ping).")){// 设置sample 为成功sr.setSuccessful(true);
}

最终执行结果,当出现Sampler error: unexpected frame type (ping).错误类型时,不会在显示执行失败了。

可以看到虽然,jmeter日志中显示该请求是失败的,但实际上已经标记为:通过了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/856758.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Shell Script

Shell Script 赋值操作 foo=bar echo $foo注意: 不要使用空格分开shell 将会把foo当作一个程序 转义 Bash通过使用和""来定义字符串 ""会将字符串中的变量转义 echo "String is $foo"会将字符串中的变量原样输出 echo String is $foo函数 函数内…

聊一聊 C#前台线程 如何阻塞程序退出

一:背景 1. 讲故事 这篇文章起源于我的 C#内功修炼训练营里的一位朋友提的问题:后台线程的内部是如何运转的 ? ,犹记得C# Via CLR这本书中 Jeffery 就聊到了他曾经给别人解决一个程序无法退出的bug,最后发现是有一个 Backgrond=false 的线程导致的。恰巧在我分析的350+dum…

聊一聊 C#后台线程 如何阻塞程序退出

一:背景 1. 讲故事 这篇文章起源于我的 C#内功修炼训练营里的一位朋友提的问题:后台线程的内部是如何运转的 ? ,犹记得C# Via CLR这本书中 Jeffery 就聊到了他曾经给别人解决一个程序无法退出的bug,最后发现是有一个 Backgrond=false 的线程导致的。恰巧在我分析的350+dum…

offset explorer如何安装?附获取方式

前言 大家好,我是小徐啊。我们在Java开发的时候,有时候需要进行大数据的开发,或者需要使用消息队列,这个时候,就需要用到kafka这个组件了。而对于我们平常运维来说,最好有一个可视化的连接kafka的工具。今天小徐就来介绍一款连接Kafka的工具,是offset explorer,介绍下w…

NUMA的取舍与优化设置

NUMA的取舍与优化设置在os层numa关闭时,打开bios层的numa会影响性能,QPS会下降15-30%;在bios层面numa关闭时,无论os层面的numa是否打开,都不会影响性能。 安装numactl: #yum install numactl -y #numastat 等同于 cat /sys/devices/system/node/node0/numa…

2024-2025-1(20241321)《计算机基础与程序设计》第十三周学习总结

这个作业属于哪个课程 <班级的链接>(2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 <作业要求的链接>(2024-2025-1计算机基础与程序设计第十三周作业)这个作业的目标 <深刻学习C语言,反思一周学习,温故知新>作业正文 ... 本博客链接https://www.…

解决 PbootCMS 附件上传报错

根据你提供的信息,PbootCMS 附件上传时报错: 上传失败:UNKNOW: Code: 8192; Desc: stripos(): Non-string needles will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior; File: /www/wwwroot/aaa.xxxx.com/core/fu…

如何修改网站的错误,网站错误排查与修复

网站错误可能由多种原因引起,以下是一些常见的排查和修复步骤:查看错误日志:在服务器上查看错误日志文件,通常位于 logs 文件夹中。 分析日志中的错误信息,确定问题原因。浏览器开发者工具:使用浏览器的开发者工具(F12),查看控制台中的错误信息。 检查网络请求,查看是…

如何在PbootCMS中增加对WebP和MOV文件类型的上传支持?

在PbootCMS中,默认情况下支持的上传文件类型可能不包括WebP和MOV。为了允许上传这些文件类型,你需要修改PbootCMS的配置文件和Ueditor编辑器的配置文件。以下是详细的步骤和说明: 1. 修改PbootCMS的配置文件 PbootCMS的上传配置位于 /config/config.php 文件中。你需要在这个…

易优CMS中的adv标签如何使用?

在易优CMS中,adv标签主要用于获取广告列表内容。这个标签非常灵活,可以通过设置不同的属性来控制广告的展示方式。基本的用法如下:html{eyou:adv pid=1 loop=3}<a href="{$field.links}"><img alt="{$field.title}" src="{$field.litpic}…

如何在易优CMS中输出单条广告的数据?

在易优CMS中,如果你希望输出单条广告的数据,可以使用ad标签。以下是一个具体的示例:{eyou:ad aid=37}<a href="{$field.links}" {$field.target}><img alt="{$field.title}" src="{$field.litpic}" /></a> {/eyou:ad}在这个…

2024-2025-1 20241314 《计算机基础与程序设计》第十三周学习总结

2024-2025-1 20241314 《计算机基础与程序设计》第十三周学习总结 作业信息这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计这个作业要求在哪里 2024-2025-1计算机基础与程序设计第十三周作业这个作业的目标作业正文 正文教材学习内容总结 第12章:文件操作 1. 文件的…