实战webSocket压测(三)Jmeter真实接口联调

news2025/2/26 9:56:57

背景:

接口地址为:ws://sunlei.demo
接口说明:websocket接口,首次连接,通过Text请求设置开启标志,然后通过wav文件流传输,达到后端服务可以根据传输信息进行解析满足指定标准后,websocket返回请求成功信息。

后端研发提供了一个请求成功的示例python代码,这是截取文件传输部分:,代码解释为:
某个文件,每次读取,并发送服务区400字节,转换为2进制进行传输。直至整个文件全部传输完成。

Jmter实际操作:
1、首先配置websocket连接

2、连接成功,开启正式传输标志。注意选择,使用已经存在的webSocket链接,这里是文本模式

3、请求成功,传输文件,Binary形式,首先直接选择整个文件进行传输。发现出现异常。因为服务端做的限制,避免压力过大,每次需要接收要求大小的字节流,而不是整个文件。从示例代码中也可以看出。本请求需要不允许。

4、不能传输整个文件,那么把文件进行转换,按照示例代码说明,每次取400字节,并且转换成我们需要的格式,放置在 Request data框里进行传输。注意:Request data 框内,Bianry请求 需要放置 16进制数据。这也是好多人在webSocket请求中传输流导致服务端收不到的异常原因,大部分都是文件格式错误,或者进制转换错误。以下为转为16进制代码.并每400字节的内容为1行,写入到txt文件中

step = 400
                with open(self.file, 'rb') as f:

                    while True:
                        read_data = f.read(step)
                        hex_string = binascii.hexlify(read_data).decode('utf-8')
                        print(hex_string)
                        # 打开文件用于追加
                        with open('E:\mytxt\demo.txt', 'a') as file:
                                # 在每个元素后面添加换行符
                                file.write(hex_string + '\n')
                        #print(read_data)
                        #print("------------------------------------------------------------------------------------------")
                        if read_data:
                            #print("发送了1次流文件")
                            ws.send(read_data, ABNF.OPCODE_BINARY)

                        if len(read_data) < step:
                            break
                        time.sleep(0.02)

5、通过循环发送binary16进制文件请求,每次读取1行txt文件内容,直至文件传输完毕


6、读取服务端发送的消息

7、消息正常,关闭WebSocket请求

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot响应式RedisClient配置

大多数场景&#xff0c;默认配置的Redis客户端不满足业务场景&#xff0c;根源在于Redis key、value 序列化反序列化问题。因此&#xff0c;有必要配置自定义的客户端来满足需求。 默认配置源码如下&#xff0c;采用jdk序列化/反序列化方式进行&#xff0c;我们只需要配置相同…

SpringMVC数据响应和请求

文章目录 1.SpringMVC简介2. SpringMVC快速入门3. SpringMVC执行的流程4.SpringMVC注解解释5. 视图解析器6.SpringMVC的数据响应6.1返回ModelView对象6.2直接返回字符串6.3返回json字符串 7.SpringMVC获得请求数据7.1 获得基本类型参数7.2获得POJO类型参数7.3获取数组类型参数7…

基于Swin Transformers的乳腺癌组织病理学图像多分类

乳腺癌的非侵入性诊断程序涉及体检和成像技术&#xff0c;如乳房X光检查、超声检查和磁共振成像。成像程序对于更全面地评估癌症区域和识别癌症亚型的敏感性较低。 CNN表现出固有的归纳偏差&#xff0c;并且对于图像中感兴趣对象的平移、旋转和位置有所不同。因此&#xff0c;…

WPS解决插入公式在正文带来行间距变大问题

问题描述 写论文解释公式时&#xff0c;插入对应的变量&#xff0c;导致行间距变大&#xff0c;如图 显然上文与下文行间距不等。但无法通过修改数值修改下文行间距。 解决办法

(已解决)引入本地bootstrap无效,bootstrap和jquery的引入

问题&#xff1a; 首先我是跟着张天宇老师下载的bootstrap文件&#xff0c;新建了一个css文件夹&#xff0c;但是这样子<link rel"stylesheet" type"text/css" src"./css/bootstrap.css">在index.html引入没有用。 解决办法: 1.把建立的…

贪心算法|1005.K次取反后最大化的数组和

力扣题目链接 class Solution { static bool cmp(int a, int b) {return abs(a) > abs(b); } public:int largestSumAfterKNegations(vector<int>& A, int K) {sort(A.begin(), A.end(), cmp); // 第一步for (int i 0; i < A.size(); i) { // 第二步if…

DSOX3034T是德科技DSOX3034T示波器

181/2461/8938产品概述&#xff1a; 特点: 带宽:350 MHz频道:4存储深度:4 Mpts采样速率:5 GSa/s更新速率:每秒1000000个波形波形数学和FFT自动探测接口用于连接、存储设备和打印的USB主机和设备端口 触摸: 8.5英寸电容式触摸屏专为触摸界面设计 发现: 业界最快的无损波形更…

MSOLSpray:一款针对微软在线账号(AzureO365)的密码喷射与安全测试工具

关于MSOLSpray MSOLSpray是一款针对微软在线账号&#xff08;Azure/O365&#xff09;的密码喷射与安全测试工具&#xff0c;在该工具的帮助下&#xff0c;广大研究人员可以直接对目标账户执行安全检测。支持检测的内容包括目标账号凭证是否有效、账号是否启用了MFA、租户账号是…

[开源]基于SVM的时间序列预测python代码

整理了SVM的时间序列预测python代码分享给大家。记得点赞哦 #!/usr/bin/env python # coding: utf-8import numpy as np import matplotlib.pyplot as plt import pandas as pd from sklearn import preprocessing from sklearn.metrics import mean_squared_error from math i…

华为海思校园招聘-芯片-数字 IC 方向 题目分享——第九套

华为海思校园招聘-芯片-数字 IC 方向 题目分享&#xff08;有参考答案&#xff09;——第九套 部分题目分享&#xff0c;完整版获取&#xff08;WX:didadidadidida313&#xff0c;加我备注&#xff1a;CSDN huawei数字芯片题目&#xff0c;谢绝白嫖哈&#xff09; 单选 1&…

MTK i500p AIoT解决方案

一、方案概述 i500p是一款强大而高效的AIoT平台&#xff0c;专为便携式、家用或商用物联网应用而设计&#xff0c;这些应用通常需要大量的边缘计算&#xff0c;需要强大的多媒体功能和多任务操作系统。该平台集成了Arm Cortex-A73 和 Cortex-A53 的四核集群&#xff0c;工作频…

2024 Tuxera NTFS for Mac功能介绍及如何安装使用

随着科技的发展&#xff0c;我们的日常生活和工作越来越依赖于电子设备。而在这些设备中&#xff0c;Mac由于其出色的稳定性和易用性&#xff0c;成为了许多用户的首选。然而&#xff0c;尽管Mac自带的文件系统已经足够强大&#xff0c;但仍有一些用户希望获得更加高效、稳定的…

Ubuntu22.04平台编译完美解决问题“error: GLSL 4.5 is not supported.”【GLSL(OpenGL着色器语言)】

GLSL介绍 GLSL&#xff08;OpenGL着色器语言&#xff09;是用于编写OpenGL着色器程序的语言。GLSL 4.5 是 GLSL 的一个版本&#xff0c;引入了许多新的特性和改进&#xff0c;旨在提高着色器编程的灵活性和性能。GLSL 4.5 工具通常是用于编写、调试和优化 GLSL 4.5 着色器代码…

网络基础知识入门

目录 一、局域网与广域网 1、局域网 2、广域网 二、协议 1、概念 2、协议的理解 3、协议的分层 1、分层 2、OSI七层模型 三、网络传输基本流程 1、报头 2、局域网通信原理 3、跨网络传输流程 四、IP地址和MAC地址 1、IP地址 2、MAC地址 3、两者的区别 一、局域…

基于微信小程序的无中介租房系统

本基于微信小程序的无中介租房系统主要实现了房东功能模块、租客功能模块和管理员功能模块三大部分&#xff0c;系统结构图如图4-1所示。 4.3.2 数据库表设计 本基于微信小程序的无中介租房系统在开发过程中使用MySQL数据库系统进行系统数据的储存&#xff0c;以下是本系统的主…

倍讯科技Ethernet/iP转modbusTCP网关在电厂里为通信设备搭建桥梁

在电厂里&#xff0c;Ethernet/IP网关扮演着极为重要的角色&#xff0c;它作为不同设备和系统之间的通信桥梁&#xff0c;使得基于不同协议的设备能够无缝交流&#xff0c;从而实现整个电厂的高效、可靠运行。Ethernet/IP网关的使用提高了数据的实时性和可靠性&#xff0c;优化…

蓝桥杯 历届真题 杨辉三角形【第十二届】【省赛】【C组】

资源限制 内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 思路&#xff1a; 由于我第一写没考虑到大数据的原因&#xff0c;直接判断导致只得了40分&#xff0c;下面是我的代码&#xff1a; #…

Flutter第六弹 基础列表ListView

目标&#xff1a; 1&#xff09;Flutter有哪些常用的列表组建 2&#xff09;怎么定制列表项Item&#xff1f; 一、ListView简介 使用标准的 ListView 构造方法非常适合只有少量数据的列表。我们还将使用内置的 ListTile widget 来给我们的条目提供可视化结构。ListView支持…

一个更难破解的加密算法 Bcrypt

BCrypt是由Niels Provos和David Mazires设计的密码哈希函数&#xff0c;他是基于Blowfish密码而来的&#xff0c;并于1999年在USENIX上提出。 除了加盐来抵御rainbow table 攻击之外&#xff0c;bcrypt的一个非常重要的特征就是自适应性&#xff0c;可以保证加密的速度在一个特…

深入理解GO语言——GC垃圾回收二

文章目录 前言一、Go V1.5的三色并发标记法总结 前言 书接上回&#xff0c;无论怎么优化&#xff0c;Go V1.3都面临这个一个重要问题&#xff0c;就是mark-and-sweep 算法会暂停整个程序 。 Go是如何面对并这个问题的呢&#xff1f;接下来G V1.5版本 就用 三色并发标记法 来优…