文章目录
- [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 协议接口测试)
-
- [2.1 webSocket协议](#2.1 webSocket协议)
- 协议接口实现思路-python
- [3. 扩展](#3. 扩展)
- 总结
✨✨✨学习的道路很枯燥,希望我们能并肩走下来!
编程真是一件很奇妙的东西。你只是浅尝辄止,那么只会觉得枯燥乏味,像对待任务似的应付它。但你如果深入探索,就会发现其中的奇妙,了解许多所不知道的原理。知识的力量让你沉醉,甘愿深陷其中并发现宝藏。

本文开始
1. socket协议接口测试
socket协议:较底层的协议,
测试比HTTP协议简单一些,知道主机名,端口即可
1.1 socket协议介绍
在计算机网络中,Socket(套接字)是一种通信机制。
Socket是对TCP/IP协议的封装。
HTTP协议是应用层协议,更标准,方便。
Socket协议更底层、更通用。
1.2 Socket 协议应用场景
- 直接应用:特定的物联网应用中,需要与底层硬件或其他系统进行直接的、定制化的通信。
- 间接应用:大部分的协议都是基于 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协议
- 服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息
- 数据格式比较轻量,性能开销小,通信高效。
- 可以发送文本,也可以发送二进制数据。
- 协议标识符是ws(如果加密,则为wss),服务器网址就是URL.
如:ws://www.baidu.com
使用场景:发送消息,游戏
抓包查看webSocket请求,类似与抓取HTTP请求
协议接口实现思路-python
安装:
python
pip install websocket-client
- 链接服务
- 发送信息
- 获取响应值
- 断言响应信息
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 协议搭配使用
常见组合:
- gRPC + Protobuf:完整的 RPC 框架(主流用法)
- 自定义 TCP/UDP + Protobuf:私有协议(如游戏、IoT)
总结
✨✨✨各位读友,本篇分享到内容是否更好的帮助你理解,如果对你有帮助给个👍赞鼓励一下吧!!
🎉🎉🎉世上没有绝望的处境,只有对处境绝望的人。
🎉🎉🎉一遇挫折就灰心丧气的人,永远是个失败者。而一向努力奋斗,坚韧不拔的人会走向成功。
感谢每一位一起走到这的伙伴,我们可以一起交流进步!!!一起加油吧!!!
