现在我正在使用 Robot Framework + Selenium2Library 进行 UI 自动化。一旦 AngularJS 2.0 发布到市场上,我们将把我们的 UI 迁移到它。
那么关于 Robot Framework + Selenium2Library 与 AngularJS 2.0 的兼容性有什么想法吗?
现在我正在使用 Robot Framework + Selenium2Library 进行 UI 自动化。一旦 AngularJS 2.0 发布到市场上,我们将把我们的 UI 迁移到它。
那么关于 Robot Framework + Selenium2Library 与 AngularJS 2.0 的兼容性有什么想法吗?
那么关于 Robot Framework + Selenium2Library 与 AngularJS 2.0 的兼容性有什么想法吗?
我敢说——你不应该面临任何重大问题。
在我当前的项目中,我将 RF 用于使用 React.js 的系统,这 - 再次,“我敢说”:),更加极端,在 DOM 上做疯狂的事情,没有对 WebDriver 的直接反馈机制 -我没有到目前为止还没有任何真正的问题。到目前为止,根据我的经验提供了一些建议:
一定要严重依赖 Selenium2Library 关键字“等待元素 *”(可见、约束等)。他们每 200 毫秒轮询一次 DOM,并为您提供关键字并测试执行节奏——一旦 UI 根据操作做出反应并更新,它们就会继续。另外,它们是有时间限制的,如果 SUT 在时限内没有按照预期行事,它们将无法通过测试用例- 而且,这可以让您开箱即用地验证您的 kw 和/或测试用例实际上做了什么您对它们的期望(这自然是每个自动化系统中必须的:)
我主要使用 xpath 作为定位策略(虽然个人更喜欢 css),尤其是。在阅读了一些关于 css 在更新后如何无法匹配元素的恐怖故事等之后。性能差异可以忽略不计 - 在我所做的基本测试中不存在,但 xpath 为您提供了其他好处 - 上树,通过文本值定位元素([contains(text(), "text_placeholder")]
用乱七八糟<div>
的反应救了我无数次);其他的,我现在不记得了:)。
希望这对您有所帮助-您或其他任何人,RF + SE = auto-beast :)
我一直在将 selenium2library 与机器人框架一起用于一些 Web 应用程序,当我们开始使用 angularJs 开发应用程序时,selenium2library 出现了一些问题,例如定位元素和确定 angular 何时完成加载。我进行了一些挖掘,发现了扩展的 selenium2library,它旨在支持 AnugularJs。所以这个库有像“等待 Angular Ready”这样的关键字,因此使用机器人框架和 selenium2library 关键字编写测试用例就像以前一样容易。
Robot Framework + Selenium2Library 几乎独立于用于构建 UI 的框架。只要您的应用程序是基于 Web 的并提供某种方式来定位您的元素(ids、css、xpath 等),它就应该可以工作。所以,是的,您将能够使用 AngularJS 2.0 通过 UI 进行测试自动化
我对 Robot Framework + AngularJS 有不同的策略,但它之所以有用,是因为我们的 Robot Framework 代码在 Linux VM 的后台运行,所以速度并不重要。我使用了一个名为Slow Down
used 的自定义关键字,如下所示:
Click Element ${THIS_ELEMENT}
Slow Down ${SLOW_TIME}
通过在每次单击和文本输入之后(也可以在每次单击之前)放置它,我可以告诉整个测试放慢速度以匹配浏览器的速度与单个变量。我发现Wait Until Element *
当与 Selenium2LibraryExtended 配对时,这比关键字更可靠。不,我不知道为什么会这样。