gpt4 book ai didi

javascript - 为什么选择 JavaScript 作为 UI 测试自动化的语言?

转载 作者:行者123 更新时间:2023-11-29 16:06:11 24 4
gpt4 key购买 nike

Protractor 等 JavaScript UI 自动化框架涉及异步执行、promises、回调、匿名函数等,这对于 UI 测试自动化这样的直接任务来说可能有点矫枉过正,UI 测试自动化基本上是一个顺序事件,比如查找对象并执行对其进行操作。

如果我们可以在非基于 JavaScript 的自动化框架中处理 AngularJS/其他前端 Web 应用程序开发 JavaScript 框架页面,那么我们为什么要选择 JavaScript 框架?

或者可以在 ruby​​/python 等语言中使用 Protractor 等框架的移植,这些语言简单、可读、用户友好,因此更适合 UI 测试自动化?

注意:我并不反对 JavaScript 或 Protractor 这样的框架(事实上我已经成功地为多个使用 Protractor 的大型项目设计了自动化框架),但我想了解选择 JavaScript 作为测试自动化语言的权衡?

最佳答案

我在下面解释了一个案例研究 Protractor 在测试 AngularJs 应用程序方面相对于 Java-Selenium 的优势

但是您可以将此作为通用规则应用,了解基于 Javascript 的框架如何比其他框架更好地理解 Angular。这是我的 blog post on the same 的摘录

这回答了测试工程师的永恒问题。

1.为什么要从 Java-Selenium 迁移到 NodeJs-Protractor?

2.值得付出努力吗?

3. Protractor 还提供什么?

4. Protractor 有什么大不了的?

5.您是否对代码中的所有等待和休眠感到沮丧?

这些是 Protractor 相对于 Selenium 的优势

1.了解 Angular 生命周期

Protractor 是由创建 AngularJs 的人制作的,它理解并等待 AngularJs 被引导。这些应用程序在后台运行很多,浏览器中没有任何可见的行为变化,让 Selenium 无法理解和同步。因此用 selenium 编写的脚本最终会有笨拙的等待和 sleep 。

browser.waitForAngular() This指示 webdriver 等到 Angular 完成渲染并且在继续之前没有未完成的 $http 或 $timeout 调用。

请注意, Protractor 会在每个 WebDriver 操作之前自动应用此命令。

2.提供额外的元素检测技术

Protractor 提供特定于 Angular 定位器策略。它们提供了通过 Angular 模型、绑定(bind)、ng-options 选择元素的选项,以及在 ng-repeat 中查找元素的选项。

应用程序页面上的 HTML 元素:

<pre><code>
<div>
<span ng-bind="firstName" class="ng-binding">Sachin</span>
<br>
<span ng-bind="lastName" class="ng-binding">Tendulkar</span>

Protractor 中的元素位置 element(By.binding('user.firstName'))

Selenium 中的元素位置:在 Selenium 中没有唯一的方法来识别此元素,必须依赖于识别任何唯一的相邻元素并提供相对路径。

一些额外的 element locato Protractor提供的r技巧

binding – Find an element by text binding.
exactBinding – Find an element by exact binding.
model – Find an element by ng-model expression.
buttonText – Find a button by text.
partialButtonText – Find a button by partial text.
repeater – Find elements inside an ng-repeat.
exactRepeater – Find an element by exact repeater.
cssContainingText – Find elements by CSS which contain a certain string.
options – Find an element by ng-options expression.
deepCss – Find an element by css selector within the Shadow DOM.

关于javascript - 为什么选择 JavaScript 作为 UI 测试自动化的语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41766366/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com