前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >07 WebSocket接口:如何测试一个完全陌生的协议接口?

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

作者头像
测试开发囤货
发布2021-08-11 15:11:51
7360
发布2021-08-11 15:11:51
举报
文章被收录于专栏:测试开发囤货

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

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

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

自己写 WebSocket 测试代码

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

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

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

将 WebSocket 接口封装进你的框架

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

代码语言:javascript
复制
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 协议的接口测试框架了,随着你不断地积累新协议,你的框架会越来越强 大,你自己的秘密武器库也会不断扩充,随着你对它的不断完善,它会让你的接口测试工作 越来越简单,越来越快速。

总结

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试开发囤货 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档