面具女巫 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 python动态规划:N根火柴摆出的最大数字
  • ¥20 (标签-excel)
  • ¥200 求idea10和MyEclipse7.1
  • ¥20 vb6.0截取当前窗体保存为jpg文件
  • ¥20 苹果手机不使用大疆sdk怎么获取遥控器控制信息或如何接入大疆sdk并且成功上架sdk
  • ¥20 woocommerce 注册按键重定向
  • ¥100 求书法图像文字切割代码
  • ¥15 同一个波形探测距离不同的目标,为什么fft之后得到的频谱图会发生移动,不应该时移不改变幅度谱吗(标签-matlab)(相关搜索:matlab仿真)
  • ¥15 Proteus仿真程序只能执行一次
  • ¥15 语音识别websocket报错