网站开发框架的演化速度比以往任何时候都快,网站应用程序堆栈正在演变为更复杂的体系结构。 测试网站的性能以发现依赖性瓶颈和恢复能力是现代体系结构的必要条件。 加载测试您的网站是使用整个系统或特定网站功能时需要关注的关键领域之一。 负载测试已经存在很长时间了。 虽然大多数开发人员使用传统的标准负载测试方法,例如基于协议的网站测试,但现代网站需要现代 负载测试 方法。
基于协议的网站负载测试
基于协议的网站负载测试通过生成大量特定协议请求来模拟虚拟用户负载。 然后,根据请求-响应行为测量性能。 HTTP 服务器用于生成网站的用户负载,在峰值条件下测量响应时间、响应延迟、计算时间、网络延迟等性能参数。 以下是一些属于基于协议的网站 性能负载测试的协议:
HTTP/S
HTTP/S 协议负载测试用于模拟 最终用户 在浏览器上使用您的网站。 它用于确定用户的预期性能。 这里需要注意的是,这里没有使用真正的浏览器实例。
异步 JavaScript 和 XML (AJAX)
AJAX 协议负载测试用于测试动态内容请求负载性能。
互联网消息应用协议 (IMAP)
IMAP 负载测试用于确定客户端从 服务器 读取的电子邮件容量。
文件传输协议 (FTP)
FTP 负载测试用于确定客户端和服务器之间的文件传输负载。
Dns
DNS 协议负载测试用于确定其 IP 地址的主机名解析负载。
基于协议的负载测试的优势
- 易于快速设置和入门。
- 可以使用最少的资源生成大量虚拟用户负载。
- 许多免费工具可用于执行基于协议的测试。
- 无需实际开发网站 用户界面即可执行测试方案。
基于协议的负载测试的缺点
- 不模拟用户实际使用的真实浏览器实例。
- 不同类型的协议的独立视图。 在实际方案中,所有协议都为网站功能协同工作。
- 无法捕获浏览器中网站的用户行为和事务流。
- 不考虑第三方 Web 服务/API 可能会严重影响性能。
- 无法测试网站的设备依赖项。
- 不适用于在浏览器中使用现代框架进行客户端计算的网站和应用程序。
为什么基于协议的负载测试对于现代网站来说是不够的
基于协议的负载测试是测试网站性能的基本和传统方法之一。 它提供有关在负载条件下网站功能的快速见解。 但是,您的网站很可能构建在现代框架之上,这些框架严重依赖浏览器来计算和呈现各自的组件。 如果仅对网站和应用程序进行基于协议的负载测试,您将错过用户体验和流最重要的方面。 让我们多谈一下关于现代网站和 Web 应用程序的几点。
- 现代网站利用浏览器引擎获得更快的用户体验。
- JavaScript 和 CSS 计算在浏览器中完成,然后将最终计算请求发送到服务器。 此请求不会捕获通过利用浏览器在客户端执行的所有操作。
- 它测量网络和服务器的性能,并且不真正执行或呈现 HTML/CSS/JavaScript。
- 浏览器还使用缓存机制来提供重复的静态资产,并且不会将它们中继到服务器。
- 单页应用程序 (SCA) 事务不能仅通过基于协议的负载测试进行测试。 请求-响应的预计算和后计算在很大程度上取决于使用的浏览器。
- 网站上的动态内容还严重依赖浏览器、设备类型和用户位置。 基于协议的负载测试没有考虑到这一点。
基于浏览器的现代网站负载测试
基于浏览器的负载测试利用创建用于生成测试负载的实际浏览器实例。 这些真实浏览器实例提供最现实的条件,因为您的最终用户将使用真实浏览器访问您的网站。 真实浏览器实例呈现 HTML/CSS 代码,并在浏览器中执行 JavaScript 代码进行所有 测试,模拟访问网站的真实场景。 它使您能够从最终用户的角度测量实际网站性能。 例如,基于浏览器的负载测试不仅验证 身份验证 协议,还使您能够评估登录流并测量 页面 性能。
基于浏览器的负载测试的优势
- 使用现代框架对所有类型的网站进行全面的负载测试。
- CI/CD 管道中的详细用户体验性能分析。
- 具有最现实最终用户条件的准确负载测试结果。
- 评估客户端上的第三方 Web 服务/API 行为。
- 利用浏览器功能增强用户体验,确定范围前端优化。
- 能够测试任何类型的用户行为、流或事务。
基于协议和基于浏览器的负载测试的 LoadView
LoadView 是一种基于云的负载测试工具,允许您测试网站、Web 应用程序、Web 服务、API 等。 其直观和简单的界面使您能够快速设计负载测试用例,而无需任何编码经验。 您可以使用负载曲线功能和选项为几乎任何方案运行负载测试用例。 以下是使用 LoadView 进行基于协议和 基于浏览器的 测试的一些优势:
- 只需单击几下,即可使用 EveryStep Web 记录器创建 简单而复杂的用户脚本。
- 运行基于协议的负载测试以及动态 API 负载测试。
- 40+ 真正的桌面/移动浏览器和设备用于生成负载以实现实际场景。
- 动态调整负载以微调测试用例。
- 网站负载从世界各地的地理位置进行测试,以识别基于位置的瓶颈。
- 根据您的要求进行可扩展的负载测试,无需担心测试基础架构。
- 加载测试几乎任何类型的交互式内容,如鼠标单击、键盘操作、动态元素、表单提交、菜单选择等,包括流式处理平台。
详细了解 LoadView 提供什么。
结论:基于协议的网站负载测试
基于协议的负载测试可用于快速测试您的网站的请求-响应方案以及网络和服务器性能。 但是,如果您更专注于用户体验,或者您拥有具有现代框架的网站,则使用真正的基于浏览器的负载测试平台,您可以查看您的网站对最终用户的行为。 基于浏览器的负载测试几乎不需要编码经验,并且测试方案创建非常简单。 使用基于云的负载测试平台(如 LoadView),您可以立即开始对网站进行负载测试,并有能力在真实浏览器、设备和多个地理位置上测试您的网站。