你还记得你早期在Orkut等社交网络应用程序上与朋友聊天的经历吗? 快进到现在, 我们使用应用程序, 如 Gmail, Slack, Whatsapp, 沙扎姆, Instagram, 和无数其他, 没有打任何眼睛。 在短短几年内,我们真正见证了实时网络的兴起。 这样做的最大原因之一主要是由于引入了 WebSocket 协议。 让我们尝试解释和理解 Web 插座是什么、其功能、优势,以及如何强调测试应用程序和网站,这些应用和网站利用 WebSockets 来了解在压力下的整体性能,以及这如何影响用户体验。

 

什么是网络袜子?

根据定义,WebSocket 是通过 单个 TCP 的双向计算机通信协议。 WebSockets 极大地帮助处理 客户端和服务器之间的大规模数据传输。 WebSockets 是不同的,因为它们通过保持客户端和服务器之间的连接一直保持打开状态来工作。 使用此方法,服务器有权随时发送信息,即使它不是由客户端启动的。 客户端仍然可以向服务器发出常规 HTTP 请求,而 WebSockets 可在客户端和服务器之间打开一个介质进行通信。 Web 服务器(如 Nginx、Apache 和 Windows 服务器)都支持 Web 插座协议,所有流行的浏览器(如 Chrome、Edge、互联网浏览器、火狐和 Safari)也是如此。

 

网套在哪里使用?

Web 插座适合您需要近实时通信的情况,例如以下情景和应用程序:

  • 在线多人游戏
  • 聊天应用程序
  • 物联网
  • 实时应用
  • 体育成绩/记分

 

网络插座的优势与优势

  • 客户端和服务器之间的连续连接。 它使随时向客户端发送信息成为可能,即使客户端没有请求。
  • 全双工通信。 在连接客户端和服务器的任何时间,都可以通过任一方式启动通信。
  • 低延迟。 由于 HTTP 标头、Cookie 等的开销非常有限,因此数据传输的速度变得无缝且快速。
  • HTTP 轮询。 这可以帮助客户端继续轮询服务器以了解最新信息。 今天,大量应用程序都使用轮询,而且大多数时间都用于 RESTful 实践。

 

网络袜子的缺点

  • WebSockets 比 HTTP 更复杂。 我们可以与 Telnet 建立 HTTP 连接,但不能对 Web 插座进行相同的连接。
  • 无法使用 Web 袜子进行负载平衡和代理设置。
  • 如果在连接之间丢弃,则 WebSockets 中不存在重新连接处理。

 

使用 Web 袜子的性能测试应用程序

正如我们所看到的,WebSockets可用于支持 聊天 应用程序或新闻提要,例如在网站上提供实时内容,但它可能存在性能 问题如果实施得当,可能会影响整体用户体验。 为了保护这一点,明智的做法是在我们的网站或应用程序上执行负载和压力测试,以发现任何性能问题、瓶颈或退化问题。 当我们将应用程序与大量并发用户对比时,我们可以更好地了解用户将体验到什么。

 

使用”每步 Web 记录器”使用 LoadView 进行性能测试

EveryStep 网络记录器在您浏览时提供屏幕记录器选项,并帮助您模拟客户端与网站和应用程序的交互。 它支持40多种桌面和移动浏览器,以及用于创建动态Web应用程序的框架和技术,例如HTML5,Java,Ruby,React,Vue,Angular和Knockout,仅举几例。 从本质上讲,如果它在浏览器中呈现,则可以使用”每个步骤”网络记录器创建脚本。 我们可以记录我们网络交易的每一步,只需像用户一样浏览我们的应用程序,然后在真正的浏览器中重播这些脚本。 最后,我们可以采取该脚本,并测试我们刚刚在负载下录制的步骤和场景,以便更好地了解各种工作负载下的性能。

让我们看一下使用每个步骤 Web 记录器记录脚本,然后 使用 LoadView 执行负载测试的步骤和过程。

打开 加载视图测试主页. 您将看到多种类型的负载测试选项,如下图所示。 对于我们的用例,我们将选择 Web 应用程序 选项以开始记录用户的旅程。

创建新的负载测试 Web 应用程序

 

我们将获得一个”录制新脚本”的选项。 请输入我们希望压力测试运行的应用程序的网站 URL,浏览器类型和用户设备类型, 并记录我们的测试用例。 添加详细信息后,请单击”立即录制”按钮。

 

网络袜子每一步

 

单击” 立即录制 “按钮将允许您选择与正在测试的网站进行交互,并记录我们想要模拟的步骤。 一旦用户流完成,我们将可以选择停止录制。

 

网络搜索记录浏览器

 

成功录制脚本后,可以使用 来查看测试方案。 选择” 现在播放 “按钮,或者通过单击”继续”按钮,我们可以向前 移动以 进行测试。

 

每一步录制已停止

 

单击” 继续 “将重定向到 “创建测试” 窗口,并准备好模拟操作脚本。 我们可以在此视频上命名我们的测试,稍后我们需要单击”创建 设备” 按钮。

 

Websocket 测试方案窗口

 

一旦我们成功创建了一个设备,我们将看到 测试方案 屏幕,在那里我们可以 设置负载曲线类型,它可以根据负载测试的目标有所不同。 下图显示了 LoadView 为开发人员和性能测试人员提供的负载 测试曲线。

Websocket 测试方案

 

选择负载曲线后,可以使用 并发用户数和测试持续时间开始测试执行。 您还可以从 20 多个地理位置中选择运行测试,确保您 从用户所在的位置测量和测试性能

测试完成后,您可以查看测试结果以及关联的指标。 如下图所示。

Websockets 平均响应时间

 

平均用户数平均响应时间

具有“平均响应时间”图的并行平均用户数。

 

网络搜索组虚拟用户数量

摘要:基于 WebSocket 的负载测试应用程序

正如我们在本文中看到的WebSockets等创新技术及其解决的新挑战一样,开发人员在使用 WebSockets作为实时解决方案时可能会面临许多操作问题。 这些应用程序的负载测试是必须的,它帮助我们估计负载下实时应用程序的行为。 我们还逐步学习了如何使用 LoadView 测试基于 WebSocket 的应用程序,以及 EveryStep Web 记录器,这对发现 WebSocket 体系结构中固有的主要问题非常有用。

现在 就试试 EveryStep Web 记录器,看看开始编写复杂用户方案的脚本是多么容易。 注册 LoadView 免费试用版 ,并开始为基于 WebSocket 的应用程序运行负载测试。 您将获得多达 5 个免费负载测试。 或安排您自己的 一对演示 与我们的性能工程师之一。