接口测试 - 协议(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)

总结

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

相关推荐
安科士andxe7 小时前
深入解析|安科士1.25G CWDM SFP光模块核心技术,破解中长距离传输痛点
服务器·网络·5g
YJlio10 小时前
1.7 通过 Sysinternals Live 在线运行工具:不下载也能用的“云端工具箱”
c语言·网络·python·数码相机·ios·django·iphone
CTRA王大大10 小时前
【网络】FRP实战之frpc全套配置 - fnos飞牛os内网穿透(全网最通俗易懂)
网络
testpassportcn11 小时前
AWS DOP-C02 認證完整解析|AWS DevOps Engineer Professional 考試
网络·学习·改行学it
星哥说事11 小时前
上车2手成品NAS?4 盘位铝合金+J4125+双 2.5G,值不值
经验分享
通信大师11 小时前
深度解析PCC策略计费控制:核心网产品与应用价值
运维·服务器·网络·5g
Tony Bai13 小时前
告别 Flaky Tests:Go 官方拟引入 testing/nettest,重塑内存网络测试标准
开发语言·网络·后端·golang·php
消失的旧时光-194313 小时前
从 0 开始理解 RPC —— 后端工程师扫盲版
网络·网络协议·rpc
叫我龙翔14 小时前
【计网】从零开始掌握序列化 --- JSON实现协议 + 设计 传输\会话\应用 三层结构
服务器·网络·c++·json
“αβ”14 小时前
网络层协议 -- ICMP协议
linux·服务器·网络·网络协议·icmp·traceroute·ping