Jmeter响应数据是空,首要确认是否返回了数据

2024-03-11 08:48

本文主要是介绍Jmeter响应数据是空,首要确认是否返回了数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

响应数据是空,首要确认是否返回了数据。

一个小乌龙,记录下来伯君一笑。

实例:
最近在用Jmeter做一个中奖接口的测试 ,主要测试各奖项的中奖概率。因为在后置处理程序里写了脚本判断返回状态码是200的才判断属于哪个奖项,所以就没有再认真看返回状态的代码。

然后乌龙事件就来了。在聚合报告里显示,不管抽多少次奖,都是未中奖,这明显是有问题呀。我就想着去查看结果树里看一下返回的数据,不看不打紧,一看问题就来了——所有的请求返回数据都是空的。这把我着急的呀,毕竟是刚用Jmeter,也不是很了解,于是各种百度,各种研究,无果。

后来就想着,用postman跑一下接口,看看返回数据不。

哪知,postman一跑,接口不通,返回状态就不是200。于是我就回头再看看Jmeter返回的状态码,好家伙,没有一个是200的。再细想,不对啊,后置处理程序里判断了状态码是不是200呀。遂在研究研究脚本,稍微一细看就发现原因了。虽然脚本是判断了状态码是不是200,但是按照脚本判断的逻辑,状态码不是200的都判断为未中奖了。所以才导致不同的接口跑出来的结果都是不中奖。

下附原脚本:

import org.json.*;JSONObject jo = new JSONObject(prev.getResponseDataAsString());
String rewardName = "";
if (jo.getInt("code") == 200) {if (jo.getJSONObject("data").length() == 16) {rewardName = "奖品";} else if (jo.getJSONObject("data").length() == 18) {rewardName = "优惠券";} else {rewardName = "未知奖品";}
} else {rewardName = "未中奖";
}
vars.put("rewardName", rewardName);

这篇关于Jmeter响应数据是空,首要确认是否返回了数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/797309

相关文章

检查 Nginx 是否启动的几种方法

《检查Nginx是否启动的几种方法》本文主要介绍了检查Nginx是否启动的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1. 使用 systemctl 命令(推荐)2. 使用 service 命令3. 检查进程是否存在4

MySQL快速复制一张表的四种核心方法(包括表结构和数据)

《MySQL快速复制一张表的四种核心方法(包括表结构和数据)》本文详细介绍了四种复制MySQL表(结构+数据)的方法,并对每种方法进行了对比分析,适用于不同场景和数据量的复制需求,特别是针对超大表(1... 目录一、mysql 复制表(结构+数据)的 4 种核心方法(面试结构化回答)方法 1:CREATE

Springboot3统一返回类设计全过程(从问题到实现)

《Springboot3统一返回类设计全过程(从问题到实现)》文章介绍了如何在SpringBoot3中设计一个统一返回类,以实现前后端接口返回格式的一致性,该类包含状态码、描述信息、业务数据和时间戳,... 目录Spring Boot 3 统一返回类设计:从问题到实现一、核心需求:统一返回类要解决什么问题?

详解C++ 存储二进制数据容器的几种方法

《详解C++存储二进制数据容器的几种方法》本文主要介绍了详解C++存储二进制数据容器,包括std::vector、std::array、std::string、std::bitset和std::ve... 目录1.std::vector<uint8_t>(最常用)特点:适用场景:示例:2.std::arra

SpringBoot返回文件让前端下载的几种方式

《SpringBoot返回文件让前端下载的几种方式》文章介绍了开发中文件下载的两种常见解决方案,并详细描述了通过后端进行下载的原理和步骤,包括一次性读取到内存和分块写入响应输出流两种方法,此外,还提供... 目录01 背景02 一次性读取到内存,通过响应输出流输出到前端02 将文件流通过循环写入到响应输出流

C# WebAPI的几种返回类型方式

《C#WebAPI的几种返回类型方式》本文主要介绍了C#WebAPI的几种返回类型方式,包括直接返回指定类型、返回IActionResult实例和返回ActionResult,文中通过示例代码介绍的... 目录创建 Controller 和 Model 类在 Action 中返回 指定类型在 Action

MySQL中的DELETE删除数据及注意事项

《MySQL中的DELETE删除数据及注意事项》MySQL的DELETE语句是数据库操作中不可或缺的一部分,通过合理使用索引、批量删除、避免全表删除、使用TRUNCATE、使用ORDERBY和LIMI... 目录1. 基本语法单表删除2. 高级用法使用子查询删除删除多表3. 性能优化策略使用索引批量删除避免

MySQL 数据库进阶之SQL 数据操作与子查询操作大全

《MySQL数据库进阶之SQL数据操作与子查询操作大全》本文详细介绍了SQL中的子查询、数据添加(INSERT)、数据修改(UPDATE)和数据删除(DELETE、TRUNCATE、DROP)操作... 目录一、子查询:嵌套在查询中的查询1.1 子查询的基本语法1.2 子查询的实战示例二、数据添加:INSE

Linux服务器数据盘移除并重新挂载的全过程

《Linux服务器数据盘移除并重新挂载的全过程》:本文主要介绍在Linux服务器上移除并重新挂载数据盘的整个过程,分为三大步:卸载文件系统、分离磁盘和重新挂载,每一步都有详细的步骤和注意事项,确保... 目录引言第一步:卸载文件系统第二步:分离磁盘第三步:重新挂载引言在 linux 服务器上移除并重新挂p

使用MyBatis TypeHandler实现数据加密与解密的具体方案

《使用MyBatisTypeHandler实现数据加密与解密的具体方案》在我们日常的开发工作中,经常会遇到一些敏感数据需要存储,比如用户的手机号、身份证号、银行卡号等,为了保障数据安全,我们通常会对... 目录1. 核心概念:什么是 TypeHandler?2. 实战场景3. 代码实现步骤步骤 1:定义 E