AngularJs使用Java编写的现有Selenium测试进行端到端测试

前端之家收集整理的这篇文章主要介绍了AngularJs使用Java编写的现有Selenium测试进行端到端测试前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
鉴于一个网站现有大量使用Selenium为 Java编写的 Java测试用例,并且该网站正在AngularJs中重写,如何将Selenium测试集成到新应用程序中?

我已经研究了Protractor,这是一个使用Selenium的新推荐的端到端测试运行器,但是,这似乎建议用Javascript编写测试. This article详细介绍了如何使这个设置正常工作,但同样,测试是用Javascript编写的.

尽管我想在Javascript中编写测试,但我想避免重写,因此将现有的集成方法集成起来会很好. Protractor中是否有配置可以实现这一点?

解决方法

我担心这里没有好的解决方案.你的方式有很多障碍.

> Protractor是用JavaScript编写的,是Selenium的WebDriverJS实现的包装器.鉴于WebDriverJS使用与Java WebDriver非常不同的API(由于节点的异步性质),即使技术上可以获得包装Java库的节点库,在这种情况下它也不起作用.
>量角器和Selenium不支持相同的API,所以即使有基于Java的量角器,你也会发现自己做了一些重组工作.
>如果您正在利用Angular,那么虽然您的页面的整体行为可能与底层DOM结构相同,但不会如此.无论是这个还是你都没有充分利用Angular.因此,除非你有一个非常好的页面对象抽象层,否则你将不得不重写你的测试.如果确实有一个好的页面对象层,则需要在任何情况下重写该层.

在我看来,你最好的最好的如下:

如果您的规范本身是用更高级别的规范语言(如Cucumber)编写的,那么理论上至少可以使用cucumber-js将其移植到javascript中,您可以简单地重新实现底层定义(不是小任务).量角器.

你可以真正雄心勃勃地将端口量角器转换为Java,如果它似乎比在javascript中重写你的测试更省力.然后,您可以自由地将问题#2最小化,但我仍然认为#3会让您得出结论,将您的测试移植到javascript具有较低的LOE.

猜你在找的Angularjs相关文章