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

总结

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

相关推荐
YuMiao2 天前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议
Jony_5 天前
高可用移动网络连接
网络协议
chilix5 天前
Linux 跨网段路由转发配置
网络协议
DianSan_ERP7 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
呉師傅7 天前
火狐浏览器报错配置文件缺失如何解决#操作技巧#
运维·网络·windows·电脑
gihigo19987 天前
基于TCP协议实现视频采集与通信
网络协议·tcp/ip·音视频
一个人旅程~7 天前
如何用命令行把win10/win11设置为长期暂停更新?
linux·windows·经验分享·电脑
2501_946205527 天前
晶圆机器人双臂怎么选型?适配2-12寸晶圆的末端效应器有哪些?
服务器·网络·机器人
linux kernel7 天前
第七部分:高级IO
服务器·网络
数字护盾(和中)7 天前
BAS+ATT&CK:企业主动防御的黄金组合
服务器·网络·数据库