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

总结

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

相关推荐
程序员老邢22 分钟前
【技术底稿 19】Redis7 集群密码配置 + 权限锁死 + 磁盘占满连锁故障真实排查全记录
java·服务器·经验分享·redis·程序人生·微服务
TechubNews2 小时前
Base 发布首个独立 OP Stack 框架的网络升级 Azul,将是 L2 自主迭代的开端?
大数据·网络·人工智能·区块链·能源
多年小白2 小时前
中科院 Ouroboros 晶圆级存算一体芯片深度解析
大数据·网络·人工智能·科技·ai
发光小北3 小时前
IEC104 转 Modbus TCP 网关如何应用?
网络·网络协议·tcp/ip
花舞月咏潭3 小时前
日监测报表自动生成
经验分享
海绵宝宝的月光宝盒3 小时前
2-非金属材料
经验分享·笔记·学习·其他·职场和发展·课程设计·制造
山栀shanzhi4 小时前
在做直播时,I帧的间隔(GOP)一般是多少?
网络·c++·面试·ffmpeg
SPC的存折4 小时前
Cisco Packet Tracer 静态路由全网互通实验及详细教学文档,包括基础常识、实验信息、IP 地址规划和分步操作流程
网络·tcp/ip·智能路由器
东北甜妹4 小时前
网络服务-
网络·智能路由器
isyangli_blog4 小时前
openstack 下载打包整套环境
服务器·网络·openstack