如何使用Flood Element使用真实浏览器进行负载测试?
所以,你在考虑负载测试。
也许你对你目前正在使用的解决方案感到沮丧,并发现编写和维护测试太困难。或者,这是你第一次考虑负载测试。不管怎样,思考负载测试是很好的第一步 – 许多公司都没有考虑并遭受后果。
应用程序性能与收入、客户注册或更一般的客户满意度等关键业务指标之间有着确定的联系。所有在网络上进行业务的公司都应该希望确保性能不会对这些关键指标产生负面影响。即使这些指标正在改善,你可能会发现应用程序可以更好地运行,以消耗更少的资源,为你和用户节省金钱。
无论你是负载测试的新手还是有经验的人,你可能都知道有许多工具和方法可以完成工作。今天我想告诉你我最喜欢的负载测试工具 – Flood Element。
许多流行的工具在协议级别上操作 – 它们通过发出网络请求来近似用户在你的应用程序上的行为。然而,在今天的万维网世界中,Web应用程序变得越来越复杂,并且比以往任何时候都更多地利用了浏览器的功能列表。
甚至看似简单的在线商店应用程序也使用了大量的浏览器功能,以便为用户选择商品、在线下订单和支付提供尽可能流畅的体验。
因此,在Web的现代时代,协议级别用户(PLU)测试只能为我们提供有关应用程序性能的有限信息。相比之下,Flood Element等新工具通过模拟用户行为使用真实的Web浏览器进行测试。我们称此方法为浏览器级别用户(BLU)。
在Flood Element中,模拟的用户行为使用简单、自然的操作进行定义,例如点击链接和按钮、填写Web表单等。一旦你定义了行为,通过flood.io以大规模运行这些行为非常容易 – 当我说大规模时,指的是来自全球各地的数千用户!
使用Flood Element进行负载测试可以帮助你开发对用户体验而言的整体直观视图。考虑到当我们自己作为用户时的自然思考方式,使用Element BLU测试比传统的PLU工具更容易上手。
整体视图
使用Flood Element从用户的角度度量整个应用程序的性能是发展整体视图的一种很好的方式,从而防止无法解释的变化 – 无论是暂时的异常还是代码中的退步。
Flood Element BLU测试提供了一个更接近用户体验的性能视图。它们考虑到用户将体验到的性能的每个部分:网络性能,以及页面脚本性能以及诸如分析或广告插件之类的第三方脚本(事实上,我们的测试非常逼真,您需要采取措施以避免在Google Analytics中创建虚假数据)。
如果使用Element运行BLU负载测试可以为您提供一点时间的应用程序性能的整体视图,定期运行测试将使您建立起对应用程序是否变得更快或更慢的直觉,也许突然出现在注册小部件场景中。
编写一个测试
现在让我们看看使用Flood Element开始有多简单。
元素脚本是用TypeScript或现代JavaScript编写的。对于最好的体验,我们建议使用使用VS Code编辑的TypeScript令人惊讶的组合,因为它在开发测试时提供了很多有用的辅助功能。
您可以通过点击这里的入门指南来安装元素:https://element.flood.io/
安装完成后,在本地编辑和测试脚本,当您准备好将其上传到flood.io以进行全面的负载测试时,请在此处注册试用:https://flood.io/load-performance-testing-tool/free-load-testing-trial/
上面的注册场景的基本Element BLU测试可能如下所示
如果您熟悉协议级别的测试,您就会知道所有定时都是围绕请求-响应事务安排的。当学习在浏览器级别进行测试时,有一些额外的细微差别需要考虑,以便在完善测试时考虑到这些差别。特别是,没有真正的内置定时分组,因此我们需要在测试结构中引入自己的定时分组。
最简单的定时分组方法是等待必要的元素出现在页面上-就像用户一样。
从上面的场景中,我们对注册的用户体验时间感兴趣,但对页面加载时间不太感兴趣。因此,在第一步中,我们访问URL并等待页面达到已知状态-直到显示标题。
接下来,我们需要关注的是填写并提交注册表单。
现在是时候将脚本保存到本地,以便我们可以将脚本上传到Flood并在数百甚至数千个并发用户下运行。
- (如果您还没有)sign up for flood。
- 创建一个项目
- 在新项目中点击”创建flood”选项
- 使用Flood Element选项创建您的测试
- 为您的测试命名
- 上传您创建的.ts脚本:
- 设置浏览器(用户)的数量以及区域的数量,以获得总用户数(浏览器数*区域数)。还要记得设置您的测试持续时间:
- 启动您的测试并等待结果:
- 结果出来后,查看图表并查看可能突出显示的任何问题区域:
结论
现在,您知道为什么(以及如何)使用Flood Element进行浏览器级别的用户测试。通过这种新方法,我们消除了创建负载测试的很多痛苦,并且同时使结果更加真实。
测试成千上万个用户可能看起来很令人生畏,但您可以逐步进行:
- 下载Element
- 在本地编写一个简单的测试,涵盖您的关键场景(即结账)
- 使用'element run'在本地运行测试,确保测试完全运行
- 将您的测试上传到Flood并以您最大负载的5-10%运行测试(即,如果您的最大负载为5,000个用户,则从250-500个用户开始)
- 评估结果并根据需要调整您的脚本和应用程序
- 将您的测试上传到Flood并以您最大负载的50-100%运行测试(即,如果您的最大负载为5,000个用户,则以2,500-5,000个用户运行)
- 增加您的测试覆盖范围,以涵盖所需的其他场景,直到达到所需的测试覆盖范围。
根据您的测试场景的复杂性,您可能能够在一天之内开始使用数千个用户。因此,请不要浪费时间-立即前往https://element.flood.io开始尝试使用Flood Element进行实验!