07 WebSocket接口:如何测试一个完全陌生的协议接口?

简介: 07 WebSocket接口:如何测试一个完全陌生的协议接口?

未知的新协议接口并不可怕


   测试工程师的首要任务就是要测试接口的正确逻辑、错误逻辑是否满足最初的需求,因此,我们需要快 速地掌握验证手段。在时间紧迫的情况下,如果我们还是先学习新协议的基础知识,再学习 怎么使用它,就无疑压榨了测试的工期,也会让我们在真正开始工作时手忙脚乱。


所以,我们要从解决实际问题的角度出发,直接拿到开发工程师提供的调用客户端代码,这 样我们就可以快速完成工作了;在完成工作的后续时间里,我们也可以慢慢补充基础知识。需要你注意的是,我并不是说基础知识不重要,而是说在项目进行过程中,学习基础知识很多时候没有完成项目的质量保障工作重要。


自己写 WebSocket 测试代码

  Python 提供了 WebSocket 的协议库,因此我只要用它完成客户端的撰写,就可以 进行接口测试了第一个 WebSocket 的调用代码(这里我们以http://www.websocket.org/demos/echo/ 为例)

#引入websocket的create_connection类 from websocket import create_connection# 建立和WebSocket接口的链接ws = create_connection("ws://echo.websocket.org")# 打印日志print("发送 'Hello, World'...")7 # 发送Hello,Worldws.send("Hello, World")# 将WebSocket的返回值存储result变量result = ws.recv()# 打印返回的resultprint("返回"+result)# 关闭WebSocket链接ws.close()

区别是,WebSocket 是一个长连接,因此需要人为的建立连接,然 后再关闭链接,而 HTTP 却并不需要进行这一操作。

将 WebSocket 接口封装进你的框架

 由于 WebSocket 是一个长连接,我们在 Common 类析构函 数中添加了关闭 ws 链接的代码,以释放 WebSocket 长连接。依据前面的交互流程,实现代码如下所示:

from common import Common# 建立和WebSocket接口的链接con = Common('ws://echo.websocket.org','ws')# 获取返回结果result = con.send('Hello, World...')#打印日志print(result)#释放WebSocket的长连接del con


现在,从改造后的代码中,你是不是更能体会到框架的魅力了?它能让代码变得更加简洁和 易读,将 WebSocket 的协议封装到你的框架后,你就拥有了一个既包含 HTTP 协议又包 含 WebSocket 协议的接口测试框架了,随着你不断地积累新协议,你的框架会越来越强 大,你自己的秘密武器库也会不断扩充,随着你对它的不断完善,它会让你的接口测试工作 越来越简单,越来越快速


总结


借力开发工程师。你首先该借力就是开发工程师,但你不要进入开发工程师给你的那 种,从技术基础和理论开始学起,再逐步应用的学习脉络。你要一击致命,直接把他的 客户端代码拿来,尽最大可能挪为己用,将其变成自己的接口测试代码。


站在自己的技术栈之上,完成技术积累。如果开发工程师的代码并不能拿来使用,那么 你就需要站在自己的技术栈上寻求解决方法,这其中既包含了你已经熟悉的测试工具、 测试平台,也包含了自己的测试框架和编码基础。


       归入框架,无论你使用哪一种方法,在完成测试工作后,你还是要掌握对应的理论基 础,同时想办法将这个一开始陌生的接口,通过自己熟悉的方式合并到你自己的框架 中,不断扩充自己框架的测试能力,不断丰富你自己的测试手段。

收录于合集 #接口测试

10

上一篇06 接口测试平台:工具和框架不可以兼容?下一篇08 测试数据:是不是可以把所有的参数都保存到Excel中?


相关文章
|
13天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
46 3
|
1月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
67 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
2月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
247 7
Jmeter实现WebSocket协议的接口测试方法
|
1月前
|
消息中间件 网络协议 安全
C# 一分钟浅谈:WebSocket 协议应用
【10月更文挑战第6天】在过去的一年中,我参与了一个基于 WebSocket 的实时通信系统项目,该项目不仅提升了工作效率,还改善了用户体验。本文将分享在 C# 中应用 WebSocket 协议的经验和心得,包括基础概念、C# 实现示例、常见问题及解决方案等内容,希望能为广大开发者提供参考。
108 0
|
2月前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
49 5
|
1月前
|
缓存 网络协议 Linux
Python渗透测试之ARP毒化和协议应用
Python渗透测试之ARP毒化和协议应用
|
1月前
|
JavaScript 前端开发 API
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
41 0
|
2月前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
255 3
快速上手|HTTP 接口功能自动化测试
|
3月前
|
网络协议 测试技术 网络安全
Python进行Socket接口测试的实现
在现代软件开发中,网络通信是不可或缺的一部分。无论是传输数据、获取信息还是实现实时通讯,都离不开可靠的网络连接和有效的数据交换机制。而在网络编程的基础中,Socket(套接字)技术扮演了重要角色。 Socket 允许计算机上的程序通过网络进行通信,它是网络通信的基础。Python 提供了强大且易于使用的 socket 模块,使开发者能够轻松地创建客户端和服务器应用,实现数据传输和交互。 本文将深入探讨如何利用 Python 编程语言来进行 Socket 接口测试。我们将从基础概念开始介绍,逐步引导大家掌握创建、测试和优化 socket 接口的关键技能。希望本文可以给大家的工作带来一些帮助~
|
4月前
|
存储
Postman 接口测试配置 Pre-request Script
Postman 接口测试配置 Pre-request Script
220 5
Postman 接口测试配置 Pre-request Script
下一篇
无影云桌面