【.com快速翻译】市场上出现了一种新的性能测试工具:FloodElement。它是一种可扩展的、基于浏览器的工具,可让您使用JavaScript编写脚本以像真实用户一样与网页交互。浏览器级用户是一种相对较新的负载测试方法,它克服了传统测试方法的许多常见挑战。它提供:类似于Selenium等常用功能测试工具的脚本,更易于使用。更真实的结果,基于实际的浏览器性能而不是API响应。针对Web应用程序的所有组件进行测试的能力,包括通过浏览器呈现的JavaScript等元素。鉴于上述优势,考虑将FloodElement用于Web负载测试是一个显而易见的选择,尤其是当您对JMeter或HPLoadRunner等现有工具不满意时。结合Element和Flood将其变成一个非常强大的负载测试工具。这里有一份详细的指南(https://help.flood.io/getting-started-with-load-testing/step-by-step-guide-flood-element),如果你想入门,不妨阅读。我已经使用和测试Element几个月了,下面是我在此过程中学到的一些技巧。1.初始化脚本你总是可以从头开始,但最快的开始方式是从终端输入elementinitmyfirstelementtest并填写首选项目名称。然后,您将被要求输入测试标题和编写脚本的相应URL。1分钟后,您会看到一个新目录已创建:Element会自动创建一个名为test.ts的文件。此文件包含脚本的框架以及一些示例代码,可帮助您找到按钮并单击它。但在打开它之前,请先执行此操作...2.选择合适的文本编辑器在Element中编写脚本非常简单,但是语法高亮显示和代码完成这两个功能可以大有帮助。语法高亮显示将大大改善学习使用Element等新测试工具的体验,而代码补全将使您在经验丰富后编写脚本的速度变得非常快。我最喜欢的文本编辑器是VisualStudioCode,它具有这两个功能。它美观实用。语法高亮是指文本编辑器根据代码在编程语言中的作用智能地更改代码的字体颜色。这是我们之前在VSCode中生成的test.ts文件的屏幕截图,以显示我试图传达的内容:这使代码更易于阅读:注释为绿色,值和标签为橙色等。代码完成意味着当您开始输入时,VSCode会友好地打开上下文菜单并提供您可以使用的方法的建议。我喜欢这个特性,因为它意味着我不必记住方法的确切名称。它还建议您定义变量名称并突出显示无意义的代码。这将有助于使您的测试更易于维护和阅读,如果您想在将来扩展您的测试,这是一个很大的好处。3.截屏Element最大的特点之一就是它的截屏功能。我发现它在调试时非常有用,因为有时更容易看到发生了什么。使用基于协议的工具,调试可能是一个极其复杂的技术过程。Element中有两种截屏方式:1.添加设置遇到错误时自动截屏。为此,您可以在TestSettings中将screenshotOnFailure设置为“true”:exportconstsettings:TestSettings={device:Device.iPadLandscape,userAgent:'flood-chrome-test',clearCache:true,disableCache:true,screenshotOnFailure:true,}2.在脚本中的某个点明确截取屏幕截图。为此,请将awaitbrowser.takeScreenshot()添加到您的代码中。4.查看屏幕截图一旦您在测试期间截取了屏幕截图,您可能想要查看它们,因为您知道它们已被保存以备将来妥善保管。无论您是在本地运行测试还是将它们上传到Flood以更高的并发运行,FloodElement都能满足您的需求。1.本地运行测试截图将保存为.jpg文件在与您的运行对应的带时间戳的文件夹中。它应该是这样的:...myfirstelementtest/tmp/element-results/test/2018-11-20T135700.595Z/flood/screenshots/。屏幕截图具有唯一名称,因此即使是同一步骤的新屏幕截图也不会覆盖旧屏幕截图。但是,我很少需要在该文件夹中查找屏幕截图,因为我更喜欢在iTerm2forMacOS中查看它们。iTerm是Terminal的替代品,与Element特别兼容。截取屏幕截图后,iTerm实际上显示内联:2.当在Flood中运行的测试需要更高的并发性时,在Flood上运行Element脚本是理想的。Flood不是在本地访问您的屏幕截图,而是将图像集中到帐户中,因此即使在云负载注入器被破坏后图像仍然存在。您可以通过下载ArchivedResults来访问截图文件:您也可以点击仪表板上的步骤来查看测试的幻灯片:5.使用日志您可能需要查看日志以进行更多技术调试,尤其是当截图不能说明全部情况。同样,无论您是在本地运行测试还是将它们上传到Flood以更高的并发性运行,FloodElement都能满足您的要求。例如在本地运行测试,可以输入:console.log('orderValues='+orderValues),输出到控制台。这会在脚本中此时输出变量orderValues的值。如果您在本地运行Element,您会在终端中看到它。测试在Flood上运行如果你在Flood上运行脚本,你可以下载日志(在前面提到的同一个ArchivedResultszip文件中)或者点击Logs选项卡:六、有趣的标志Element带有几个标志(flags),这样可以更好地控制脚本在本地的运行方式。以下是我喜欢的几个标志:headless标志如有疑问,请在非无头模式下运行Element并查看实际在Chrome上打开网络应用程序并与页面交互的脚本。这只能在本地实现,但是亲眼看到实时发生的事情,而不是在事后依赖屏幕截图和日志,真是太棒了。要启用此模式,请在运行测试时添加此标志:elementrunmyfirstelementtest.ts--no-headlesswatchflagElement在遇到错误或完成迭代时将自动关闭浏览器窗口。添加--watch将使浏览器窗口保持打开状态,然后观看脚本。保存脚本后,它将自动在同一窗口中从头开始运行。只需添加标志,如上例所示:--watchdevtools标志打开一个浏览器实例,并在打开Chrome开发工具的情况下运行脚本,允许您找到要编写脚本的下一个操作的定位器。只需添加标志,如***示例所示:--dev-tools如需更多标志,请使用elementrun--help。7.试用Element您刚刚了解了FloodElement并准备开始使用它。下载Element(https://element.flood.io/),开始编写功能测试脚本并将它们作为Flood上的负载测试脚本重用。如果您没有Flood账号,可以在Flood官网轻松注册免费试用(https://flood.io/load-performance-testing-tool/free-load-testing-trial/).原标题:使用FloodElement进行性能测试的技巧,作者:NicolevanderHoeven
