• WebSocket接口怎么做测试


    如果遇见了一个全新的协议,怎么从零开始,完成接口测试?以 WebSocket 为例。

          WebSocket 协议在2008年诞生,2011年成为国际标准。现在所有浏览器都已经支持了。WebSocket 的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话。

    WebSocket 的其他特点:

    •      建立在 TCP 协议之上,服务器端的实现比较容易。

    •    与 HTTP 协议有着良好的兼容性。默认端口也是80和443,并且握手阶段采用 HTTP 协议,因此握手时不容易屏蔽,能通过各种 HTTP 代理服务器。

    •      数据格式比较轻量,性能开销小,通信高效。

    •      可以发送文本,也可以发送二进制数据。

    •      没有同源限制,客户端可以与任意服务器通信。

    •      协议标识符是ws(如果加密,则为wss),服务器网址就是 URL。

    ws–>http(未加密) 无证书
    wss–>https(加密) 有证书

     第一步:

             很多时候第一反应向开发工程师求助,因为开发工程师基于新协议已经完成了接口开发,向开发工程师求助显然是最好的办法。找到一些学习脉络,包含了协议的说明文档、代码开发文档、实现代码等内容,了解协议的原理。向开发求助是个方法。

             那么 WebSocket 用 Fiddler 怎么搞定?,其实主要就是修改了 Fiddler 中 Rules 下的 Customize Rules,如果感兴趣可以自己去搜一下。当面对陌生技术问题的时候,应该使用最熟悉的技术去尝试解决问题。虽然 Fiddler 截获 WebSocket 接口的办法,所截获的全部消息都在日志里面,根本无法操作。但是,可以借助 Fiddler 分析 WebSocket 的接口,一开始给 Fiddler 这款工具的定位一样,那就是通过它辅助分析我们的被测接口。处理HTTP、HTTPS,推荐用Fiddler。

    但是在处理TCP,UDP 就用WireShark。Websocket是应用层协议,建立在 TCP 协议之上,服务器端的实现比较容易。因为应用层是在传输层的基础上包装数据,所以我们还是从底层开始了解Websocket到底是个啥?是如何工作的?

    可以通过---- wireshark(网络封包分析软件)抓包工具抓到WebSocket接口

     wireshark下载地址:https://www.wireshark.org/download.html

     

    以下是python实现的websocket 接口连接。

    #导入websocket的create_connection类
    from websocket import create_connection
    # 建立和WebSocket接口的链接
    ws = create_connection("ws://echo.websocket.org/")
    # 打印日志
    print("Hello, World")
    # 客户端发送Hello,World
    ws.send("Hello, World")
    print("Receiving...")
    # 将WebSocket的返回值存储result变量
    result = ws.recv()
    # 打印返回的result
    print("Received '%s'" % result)
    # 关闭WebSocket链接
    ws.close()
    # 建立和WebSocket接口的链接
    ws = create_connection("ws://echo.websocket.org/")
    执行上面语句之后,客户端就会与服务器进行连接。

    实例对象的send()方法用于向服务器发送数据。
    ws.send("Hello, World")

     
  • 相关阅读:
    将 expression 转换为数据类型 int 时发生算术溢出
    将博客搬至CSDN
    山东省滕州市木石镇化石沟村QQ群116528924
    未能加载文件或程序集 Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad
    sql server 怎么实现mysql中group_concat,列转行,列用分隔符拼接字符串
    sql server 条件 not in (null)总是false
    SCRIPT7002: XMLHttpRequest: 网络错误 0x2ef3, 由于出现错误 00002ef3 而导致此项操作无法完成,浏览器中的Keep-Alive
    2015年总结之什么叫软件开发?
    XSD(XML Schema Definition)用法实例介绍以及C#使用xsd文件验证XML格式
    XML组成结构以及C#通过DTD验证规范性
  • 原文地址:https://www.cnblogs.com/iruance/p/14327543.html
Copyright © 2020-2023  润新知