诸如Protractor之类的JavaScript UI自动化框架涉及异步执行,承诺,回调,匿名函数等,这对于像UI测试自动化这样的直接任务来说可能是一种过度杀伤,这基本上是一种顺序活动,如查找对象并对其执行操作.
如果我们可以在非基于JavaScript的自动化框架中处理AngularJS /其他前端Web应用程序开发JavaScript框架页面,那么我们为什么要选择JavaScript框架呢?
或者可以使用像ruby/python这样的语言中的量角器等框架移植,它们简单,可读,用户友好,因此更适合UI测试自动化?
注意:我并不反对JavaScript或其像Protractor这样的框架(实际上我已经成功地使用量角器为多个大型项目设计了自动化框架),但是我想理解选择JavaScript作为测试自动化语言的权衡吗?
我在下面解释了一个案例研究Proractor优于Java-Selenium的优势,用于测试AngularJs应用程序
但您可以将此作为一般规则应用于基于Javascript的框架如何比其他框架更好地理解Angular.这是我的博客文章的摘录
这回答了测试工程师的永恒问题.
1.为什么我们要从Java-Selenium迁移到NodeJs-Protractor?
2.值得努力吗?
3.量角器提供的更多?
4.关于量角器的重大事项是什么?
你对代码中的所有等待和睡眠感到沮丧吗?
这些是Protractor提供的优于Selenium的优势
1.了解角度生命周期
Protractor是由创建AngularJs的人制作的,它理解并等待AngularJs被引导.这些应用程序在后台运行很多,浏览器中没有任何可见的行为变化,让Selenium理解和同步生活地狱.这样做的脚本硒最终会有笨拙的等待和睡眠.
browser.waitForAngular()
这指示webdriver等待Angular完成呈现并且在继续之前没有未完成的$ http或$ timeout调用.
请注意,Protractor会在每次WebDriver操作之前自动应用此命令.
2.提供额外的元素检测技术
量角器提供角度特定定位器策略.它们提供了通过角度模型,绑定,ng选项选择元素以及在ng-repeat内查找元素的选项.
"应用程序"页面上的HTML元素:
量角器中的元素位置 Selenium中的元素位置:在Selenium中没有唯一的方法来识别这个元素,并且必须依赖于识别任何唯一的相邻元素并提供相对路径. Protractor提供了一些额外的元素定位技术
Tendulkar
element(By.binding('user.firstName'))
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.
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有