简体中文   |   English

010-82790900

WebSocket压力测试解决方案
方案背景

WebSocket作为一种高效的通信协议,在实时性要求较高的Web应用中发挥着重要作用。随着Web技术的不断发展,WebSocket的应用场景也将越来越广泛。

WebSocket作为全双工通信的协议,在实时数据交换方面展现出了显著的优势,但同时也伴随着一系列关于性能、资源占用和稳定性的挑战。在开发高并发系统时,开发人员和测试人员需要特别关注WebSocket高可用性和性能优化,必然离不开压测来评估系统的负载能力和性能瓶颈。

当前广泛使用的工具如wsbench、JMeter、Apifox、Locust等,普遍存在配置繁琐的问题,且往往要求用户具备一定的编程语言知识。此外,这些工具在模拟并发用户数量方面表现不佳,通常只能支持有限数量的用户同时操作,这在一定程度上限制了其在高并发场景下的应用效果和测试准确性。

方案介绍

北京网测Supernova压力测试工具依据RFC6455标准实现WebSocket协议仿真,能够通过简单的界面配置,模拟数百万用户进行并发连接和消息传输,对WebSocket进行压测,确定WebSocket服务器在处理大规模实时通信时的能力。

Supernova压力测试工具具有高性能、高精度、高灵活性等特点,可提供精准的且丰富的测试报告,操作简单,完美解决了完美地解决了目前WebSocket的测试工具配置复杂、性能低、测试效率不高的痛点。

  • 超高性能

    集成硬件计算能力、磁盘读写速度的测试功能,数据库查询、写入速度测试功能,中间件应用性能测试功能等,并支持应用安全测试,能够全方位评估信创产品的性能以及安全性。

  • 精准控制

    时延进度可以精确到10纳秒,远远优于Jmeter这类软件

  • 灵活配置

    模拟多IP和路由,支持复杂网络环境,可以在任何网络环境中部署

测试拓扑

Supernova一个测试端口模拟用户涌入发送消息,并接收WebSocket服务端的推送消息,也可以使用两个端口,一个模拟用户涌入,另一个端口模拟消息发送,可以更精准控制消息推送速率。

  • 测试指标包括:
  • 客户端连接数(并发用户数)

    客户端连接数表示同时与服务器建立连接的客户端数量。对于支持大规模并发访问的应用,能够同时处理大量客户端连接是一个重要的指标。

  • 建立连接时间

    连接建立时间是指从客户端发起链接请求到与服务器成功建立连接所花费的时间。对于实时性要求较高的应用,较短的连接建立时间是个重要指标。

  • 数据传输延迟

    数据传输延迟是指从服务器发送数据到客户端接收数据之间所经过的时间。较低的延迟可以提供更好的实时性和用户体验。

  • 吞吐量

    吞吐量是指单位时间内传输的数据量。对于高并发场景下的应用,较高的吞吐量可以提供更好的性能。

WebSocket压测场景与案例

Websocket 广泛应用于在线游戏、股票基金、体育实况更新、聊天室、弹幕、在线教育等实时性要求非常高的场景。

如电商大促等直播场景中,直播往往追求和线下客户的互动。例如弹幕,评论,聊天,秒杀等等。主持人聊的热火朝天,用户毫无反应,这就是一次失败的直播了。通常这些功能用WebSocket来实现的。WebSocket 通过服务端/客户端建立长链,来保证消息的实时性、以及降低性能开销。

针对以上场景,Supernova可以模拟整个WebSocket 的通信过程,用户通过场景配置和施压配置,仅需要配置压测 url 等基本配置、消息设置、响应匹配等几个简单参数,就能够进行测试了。

咪咕赛事直播聊天室WebSocket压测

网测与咪咕视讯达成合作,自2022年1月份开始,为咪咕重大直播活动提供高并发性能测试服务,其中包括对直播聊天室进行压力测试,重点验证咪咕视讯平台处理百万级WebSocket连接的能力,确保在高峰时段直播活动的稳定性和流畅性。

压测效果

在卡塔尔世界杯直播保障测试中,第一次进行聊天室的并发压力测试,使用测试仪模拟了180万用户同时涌入聊天室的情景,在推送消息中,导致聊天室接口CPU到达99%,无法继续推送消息,后续修改后可稳定180万用户。之后根据需求,咪咕对聊天室接口又进行了一系列的优化和整改,实现了接近500万用户的并发处理能力,显著提升了系统的稳定性和扩展性。