面具女巫 2021-07-20 09:15 采纳率: 75%
浏览 35
已结题

WebSocketApp和Pytest是不是冲突?

1,如果用Pytest执行,则长链接会被挂起
2,如果用python直接执行,则Pytest的测试用例会被挂起

求解决方法:
怎么样能在保持长链接的情况下,也用pytest执行测试用例

  • 写回答

1条回答 默认 最新

  • 咕泡-三木 2021-07-23 18:51
    关注

    WebSocket是全双工长链接通讯协议,测试方法和HTTP有所不同

    1. 使用专业的websocket客户端建立链接
    2. 根据全双工的特性,分别对读、写进行数据传输
    3. 考虑到长链接特性,在夹具中要及时关闭连接,同时为给用例设置超时

    代码示例

    class ServerTestCase:
        """公众号:测试开发研习社"""
        def test_echo(self):
            client = self._get_client() #建立连接
    
            self.logger.info("准备发送数据")
            send_data = "a".encode()
            client.sendall(send_data)  # 发送的是字节流
            self.logger.info("数据发送完毕")
    
            client.settimeout(2) 
            recv_data = client.recv(1024)  # 如果没有设置超时,可能挂起等很久
            self.logger.info("收到回复")
            self.assertEqual(send_data, recv_data)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月9日
  • 已采纳回答 9月1日
  • 创建了问题 7月20日

悬赏问题

  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入