JavaScript UI自动化框架(如Protractor )涉及异步执行、承诺、回调、匿名函数等,这可能是对UI测试自动化之类的直接任务的过度消耗,而UI测试自动化基本上是一个顺序活动,比如查找对象并在其上执行操作。
如果我们可以在非基于JavaScript的自动化框架中处理AngularJS/其他前端web应用程序开发JavaScript框架页面,那么我们为什么要选择JavaScript框架呢?
或者可以用ruby/python等语言移植像量角器这样的框架,这些语言简单、易读、用户友好,更适合UI测试自动化?
注意:我并不反对JavaScript或它的框架,比如protractor (事实上,我已经成功地为多个大型项目设计了自动化框架),但我想了解选择JavaScript作为测试自动化语言的权衡?
发布于 2017-01-20 14:56:07
在测试一个JavaScript应用程序时,通常会选择Protractor或其他基于JavaScript的测试框架,因为很明显,大多数人发现用更多的JavaScript测试他们的JavaScript是最容易的,就像您通常用您正在编写的服务器端语言为服务器端代码编写单元测试一样。另一方面,如果你不觉得这更容易,并且有一些你觉得更直观的测试方案,你完全可以自己动手使用任何你喜欢的技术。就这么简单!
发布于 2017-01-20 15:09:10
我在下面的一个案例中解释了Protractor在测试AngularJs应用程序()中相对于Java的优势。
但是,您可以将此作为一条通用规则应用于基于Javascript的框架如何比其他框架更好地理解角度。这是我的在同一个博客上发表的文章的摘录
这就回答了测试工程师们永恒的问题。
1.为什么我们要从Java转移到?
2.值得付出努力吗?
3.量角器提供什么更多?
4.量角器有什么大不了的?
5.你是否对所有等待和沉睡在你的代码中感到沮丧?
这是比硒更有优势的量角器。
1.理解角度生命周期
量角器是由创建AngularJs的人制作的,它理解并等待AngularJs成为bootstrapped.These应用程序,在后台运行了很多,在浏览器中没有任何可见的行为更改,使Selenium无法理解,用selenium制作的synchronize.Thus脚本最终会有笨拙的等待和睡眠。
browser.waitForAngular()
这指示webdriver等到角绘制完成,并且在继续之前没有未完成的$http或$timeout调用。
请注意,Protractor会在每个WebDriver操作之前自动应用此命令。
2.提供额外的元素检测技术
量角器提供角度特定的定位器,strategy.They提供选择元素的选项,通过角度模型、绑定、ng选项-和在ng内查找元素-重复。
应用程序页上的HTML元素:
<pre><code> <div> <span ng-bind="firstName" class="ng-binding">Sachin</span> <br> <span ng-bind="lastName" class="ng-binding">Tendulkar</span>
量角器element(By.binding('user.firstName'))
中的单元定位
Selenium中的元素位置:在Selenium中没有标识该元素的唯一方法,必须依赖于识别任何唯一的相邻元素并提供相对路径。
量角器提供的一些额外的元素本地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.
https://stackoverflow.com/questions/41766366
复制相似问题