接口测试 - 协议(socket/websocket)接口测试-了解

文章目录

  • [1. socket协议接口测试](#1. socket协议接口测试)
    • [1.1 socket协议介绍](#1.1 socket协议介绍)
    • [1.2 Socket 协议应用场景](#1.2 Socket 协议应用场景)
    • [1.3 socket协调接口测试](#1.3 socket协调接口测试)
  • [2. webSocket 协议接口测试](#2. webSocket 协议接口测试)
  • [3. 扩展](#3. 扩展)
  • 总结

✨✨✨学习的道路很枯燥,希望我们能并肩走下来!

编程真是一件很奇妙的东西。你只是浅尝辄止,那么只会觉得枯燥乏味,像对待任务似的应付它。但你如果深入探索,就会发现其中的奇妙,了解许多所不知道的原理。知识的力量让你沉醉,甘愿深陷其中并发现宝藏。



本文开始

1. socket协议接口测试

socket协议:较底层的协议,

测试比HTTP协议简单一些,知道主机名,端口即可

1.1 socket协议介绍

在计算机网络中,Socket(套接字)是一种通信机制。

Socket是对TCP/IP协议的封装。

HTTP协议是应用层协议,更标准,方便。

Socket协议更底层、更通用。

1.2 Socket 协议应用场景

  1. 直接应用:特定的物联网应用中,需要与底层硬件或其他系统进行直接的、定制化的通信。
  2. 间接应用:大部分的协议都是基于 Socket 协议进行抽象优化,比如HTTP协议。

1.3 socket协调接口测试

实现思路:

1.创建socket连接: 知道主机名,端口

2.发送消息DataOutputStream中的writeUTF()方法

3.接受消息DataInputStream中的readUTF()方法

4.关闭连接。

5.返回响应,完成断言。

java 复制代码
public class SocketClass {
	//发送Socket方法
    public String sendSocket(String sendData){
        String hostName = "127.0.0.1";
        int port = 30001;
        String response = null;

        //1. 建立socket连接
        try {
            Socket socket = new Socket(hostName, port);
            // 2. 获取输入流和输出流
            OutputStream outputStream = socket.getOutputStream();
            DataOutputStream out = new DataOutputStream(outputStream);

            InputStream inputStream = socket.getInputStream();
            DataInputStream input = new DataInputStream(inputStream);
            // 3. 向服务器发送数据
            out.writeUTF(sendData);
            System.out.println("发送消息给服务器:" + sendData);
            //4. 从服务器接收数据
            response = input.readUTF();
            System.out.println("从服务器接收到的消息:" + sendData);
            //关闭连接
            socket.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
        return response ;
    }
}

测试用例:

java 复制代码
public class SocketClassTest {
    @Test
    void sendSocket() {
    	//实例化对象
        SocketClass socketClass = new SocketClass();
        String res = socketClass.sendSocket("测试");
        assertEquals("测试",res);
    }
}

2. webSocket 协议接口测试

2.1 webSocket协议

  1. 服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息
  2. 数据格式比较轻量,性能开销小,通信高效。
  3. 可以发送文本,也可以发送二进制数据。
  4. 协议标识符是ws(如果加密,则为wss),服务器网址就是URL.
    如:ws://www.baidu.com

使用场景:发送消息,游戏

抓包查看webSocket请求,类似与抓取HTTP请求

协议接口实现思路-python

安装:

python 复制代码
pip install websocket-client
  1. 链接服务
  2. 发送信息
  3. 获取响应值
  4. 断言响应信息
python 复制代码
from websocket import create_connection
def websocket_protocol():
#发起连接
ws = create_connection("ws://xxx.com: 10000/websocket")
#获得服务端返回的信息
result = ws.recv()
print(result)
#发送请求信息
ws.send("test-websocket")
# 获取响应
result_send = ws.recv()
print (result_send)
# 断言
assert "test-websocket" in result_send
# 关闭连接
ws.close()
if __name__ == '__main__':
	websocket_protocol()

3. 扩展

测试开发工程师可能还需要掌握如下协议接口测试:

Dubbo协议

Dubbo 协议:是阿里巴巴开源的一款高性能 Java RPC(远程过程调用)框架,主要用于构建分布式服务架构。

Dubbo定义了服务提供者与消费者之间的通信协议

测试开发/接口自动化人员:需要编写 Dubbo 客户端代码 模拟消费者调用。

使用工具如:

1.TestNG / JUnit + Dubbo 客户端

2.Telnet / Dubbo Admin(简单调试)

3.自研测试平台(封装 Dubbo 调用)

4.工具如:JMeter(需插件)、IDEA 插件

Thrift协议

Thrift是跨语言的 RPC 框架,由 Facebook 开源,支持多种传输协议(如 binary、compact、JSON)和底层传输(TCP、HTTP 等)。

测试开发工程师:需编写代码调用 Thrift 服务,集成到自动化框架

Protocol Buffers协议(PB / Protobuf)

Protobuf 本身不是协议,而是一种二进制序列化格式。

常与 gRPC 或自定义 TCP 协议搭配使用

常见组合:

  1. gRPC + Protobuf:完整的 RPC 框架(主流用法)
  2. 自定义 TCP/UDP + Protobuf:私有协议(如游戏、IoT)

总结

✨✨✨各位读友,本篇分享到内容是否更好的帮助你理解,如果对你有帮助给个👍赞鼓励一下吧!!
🎉🎉🎉世上没有绝望的处境,只有对处境绝望的人。
🎉🎉🎉一遇挫折就灰心丧气的人,永远是个失败者。而一向努力奋斗,坚韧不拔的人会走向成功。
感谢每一位一起走到这的伙伴,我们可以一起交流进步!!!一起加油吧!!!

相关推荐
xiaoye-duck11 分钟前
《C++ 项目:手写大模型接入 SDK》DeepSeek接口设计(上):初始化和全量响应
开发语言·网络·c++·语言模型
暴走约伯35 分钟前
【VFX工具链源码拆解 01】总体架构:大型项目特效流程的程序化落地
开发语言·经验分享·3d·unity·架构·游戏引擎
Yang961139 分钟前
鼎讯信通热剥钳实测:大芯径光纤如何做到无损剥除
网络
JIAOZHANZHISHIKU8 小时前
机器人外壳粘接性价比怎么选?3M VHB 胶带与结构胶解决方案
经验分享·机器人·工业胶粘剂·3m胶粘剂
贞明电子9 小时前
工业三色报警灯怎么接入项目系统?开关量与RS485控制应用指南
运维·网络·微信公众平台·贞明电子
明天也要努力学习9 小时前
HTTP 协议的基本格式和 fiddler 的用法
网络协议·http·fiddler
HideF9 小时前
Linux
linux·服务器·网络
万联WANFLOW10 小时前
海外网络故障怎么排查?Cloudflare 三季度断网报告解读与 mtr 实战
运维·网络·故障分析
sbjdhjd10 小时前
网工进阶笔记:H3CSE 园区网全栈技术与协议汇总
网络·笔记·云计算·ssh·网络工程·vlan·aaa
taktok_ai12 小时前
用 cc-switch 连接 Taktok
网络