使用Flood Element测试性能的若干贴士

栏目: 编程工具 · 发布时间: 5年前

内容简介:【51CTO.com快译】市面上有一款新的性能测试工具:Flood Element。它是可扩展的、基于浏览器的工具,让你可以用JavaScript编写脚本,像实际用户那样与网页进行交互。浏览器级用户(Browser Level Users)是一种比较新的负载测试方法,克服了传统测试方法的许多常见挑战。它提供:

使用Flood Element测试性能的若干贴士

【51CTO.com快译】市面上有一款新的性能测试工具:Flood Element。它是可扩展的、基于浏览器的工具,让你可以用JavaScript编写脚本,像实际用户那样与网页进行交互。

浏览器级用户(Browser Level Users)是一种比较新的负载测试方法,克服了传统测试方法的许多常见挑战。它提供:

  • 类似Selenium等常见功能测试 工具 的脚本,更易于上手。
  • 更真实的结果,基于实际的浏览器性能而不是API响应。
  • 针对Web应用程序的所有组件进行测试的功能,包括通过浏览器呈现的JavaScript等元素。

鉴于上述优点,考虑Flood Element用于Web负载测试是不二的选择,如果你使用JMeter或HP LoadRunner之类的现有工具觉得不尽如人意,更是如此。

结合Element和Flood将其变成了非常强大的负载测试工具。这里有一篇详细的指南(https://help.flood.io/getting-started-with-load-testing/step-by-step-guide-flood-element),如果你想开始入手,不妨一读。几个月来,我一直在使用和测试Element,在此分享这个过程中学到的几个贴士。

一、初始化脚本

你始终可以从零开始,但最快捷的入手方法是从终端输入element init myfirstelementtest,并填写偏爱的项目名称。

然后,系统要求你输入测试标题以及编写脚本的相应URL。1分钟后,你会看到一个新的目录已创建:

使用Flood Element测试性能的若干贴士

Element将自动创建一个名为test.ts的文件。此文件包含脚本的框架以及一些示例代码,可帮助你找到按钮然后点击。但在你打开它之前,先做这个......

二、选择合适的文本编辑器

在Element中编写脚本已经很简单,但语法高亮和代码完成是大有帮助的两项功能。语法高亮将极大地改善学用像Element这种新测试工具的体验,而代码完成将使你在变得更有经验后编写脚本极快。我的首选文本编辑器是Visual Studio Code,它拥有这两个功能。它漂亮且实用。

语法高亮是指文本编辑器根据代码在编程语言中的角色,智能地更改代码的字体颜色。这是我们之前在VS Code中生成的test.ts文件的屏幕截图,以表明我要传达的意思:

使用Flood Element测试性能的若干贴士

这使得代码解读起来更一目了然:注释呈绿色,值和标签呈橙色,等等。

代码完成是指你开始输入内容时,VS Code贴心地打开上下文菜单,给出了你可以使用的方法方面的建议。

我喜欢该功能,因为这意味着我不需要记住方法的确切名称。它还建议你已定义的变量名称,并高亮显示无意义的代码。这将有助于使你的测试对别人来说更易于维护和阅读,如果你希望将来扩展测试,这是一大好处。

使用Flood Element测试性能的若干贴士

三、获取截图

Element最强大的功能之一是它能够获取屏幕截图。我发现调试时非常有用,因为有时这样更容易看明情况。若使用基于协议的工具,调试会是极其复杂化和技术化的过程。

有两种方法可以在Element中获取屏幕截图:

1. 添加设置以便遇到错误时自动获取屏幕截图。为此,你可以在TestSettings中将screenshotOnFailure设置为“true”:

export const settings: TestSettings = { 
        device: Device.iPadLandscape, 
        userAgent: 'flood-chrome-test', 
        clearCache: true, 
        disableCache: true, 
        screenshotOnFailure: true, 
}  

2. 在脚本中的某个点显式获取屏幕截图。为此,将await browser.takeScreenshot()添加到你的代码中。

四、查看截图

一旦你在测试中获取了屏幕截图,可能希望查看它们,知道它们会存起来以备将来妥善保管。无论你在本地运行测试还是将其上传到Flood以便以更高的并发性运行,Flood Element都能满足你的要求。

1.本地运行测试

屏幕截图将作为.jpg文件保存在与你的运行对应的带时间戳的文件夹中。它看起来应该是这样:…myfirstelementtest/tmp/element-results/test/2018-11-20T135700.595Z/flood/screenshots/。屏幕截图会以独特的方式命名,那样即使同一步骤的新屏幕截图也不会覆盖旧屏幕截图。

然而,我很少需要查找该文件夹中的屏幕截图,因为我更喜欢在iTerm2 for MacOS中查看它们。iTerm是终端的替代工具,与Element特别兼容。获取屏幕截图后,iTerm实际上会嵌入式显示:

使用Flood Element测试性能的若干贴士

2.测试在Flood中运行

需要更大的并发性时,在Flood上运行Element脚本很理想。Flood不会在本地访问你的屏幕截图,而是将图像集中到帐户中,那样即使在云负载注入器被破坏后图像依然存在。可以通过下载Archived Results来访问屏幕截图文件:

使用Flood Element测试性能的若干贴士

还可以点击仪表板上的步骤查看测试的幻灯片:

使用Flood Element测试性能的若干贴士

五、使用日志

你可能需要查看日志进行更技术性的调试,尤其是屏幕截图说明不了全部情况时。同样,无论你在本地运行测试还是将其上传到Flood以便以更高的并发性运行,Flood Element都能满足你的要求。

本地运行测试

比如说,你可以输入:console.log('orderValues = ’ + orderValues),输出到控制台。

这将在脚本中的这个点输出变量orderValues的值。如果你在本地运行Element,会在终端中看到这个。

测试在Flood中运行

如果你在Flood上运行脚本,可以下载日志(在前面提到的同一个Archived Results压缩文件中)或点击Logs选项卡:

使用Flood Element测试性能的若干贴士

六、有趣的标志

Element随带几个标志(flag),那样可以更好地控制脚本在本地如何运行。这是我偏爱的几个标志:

headless标志

如有疑问,在non-headless模式下运行Element,看看在Chrome上实际打开Web应用程序并与页面进行交互的脚本。这只能在本地实现,但能亲眼看到实时发生的情况再好不过了,而不是事后依赖屏幕截图和日志。想启用该模式,运行测试时添加该标志:

element run myfirstelementtest.ts --no-headless 

watch标志

Element遇到错误或完成迭代时会自动关闭浏览器窗口。添加--watch将使浏览器窗口保持打开,然后监视脚本。一旦脚本保存完毕,它会从头开始自动在同一个窗口中运行。只需添加该标志,如上例所示:

--watch 

dev tools标志

打开一个浏览器实例,并在Chrome Dev Tools打开的情况下运行脚本,让你可以查找要编写脚本的下一个操作的定位符。只需添加该标志,如第一示例所示:

--dev-tools 

想了解更多标志,请使用element run --help。

七、试一试Element

你刚大致了解了Flood Element,已准备好开始使用。下载Element(https://element.flood.io/),开始编写功能测试脚本并将其重新用作Flood上的负载测试脚本。 如果你没有Flood帐户,可以在Flood官网(https://flood.io/load-performance-testing-tool/free-load-testing-trial/)上轻松注册免费试用版。

原文标题:Tips for using Flood Element for performance testing,作者:Nicole van der Hoeven

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

【责任编辑:庞桂玉 TEL:(010)68476606】


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

高性能Python

高性能Python

(美)戈雷利克、(英)欧日沃尔德 / 东南大学出版社 / 2015-2

你的Python代码也许运行正确,但是你需要运行得更快速。通过探讨隐藏在设计备选方案中的基础理论,戈雷利克和欧日沃尔德编著的《高性能Python》将帮助你更深入地理解Python的实现。你将了解如何定位性能瓶颈,从而显著提升高数据流量程序中的代码执行效率。 你该如何利用多核架构和集群?或者你该如何搭建一个可以自由伸缩而不会影响可靠性的系统?有经验的Python程序员将会学习到这类问题的具体解......一起来看看 《高性能Python》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码