Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java编写的现有Selenium测试进行AngularJs端到端测试_Java_Javascript_Angularjs_Selenium_Protractor - Fatal编程技术网

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

使用Java编写的现有Selenium测试进行AngularJs端到端测试,java,javascript,angularjs,selenium,protractor,Java,Javascript,Angularjs,Selenium,Protractor,给定一个站点,该站点使用Selenium以Java编写了大量测试用例,并且该站点正在用AngularJs重新编写,那么如何将Selenium测试集成到新的应用程序中呢 我已经研究了新推荐的使用Selenium的端到端测试运行程序,但是,这似乎建议使用Javascript编写测试。更详细地介绍了如何使此设置正常工作,但同样,测试是用Javascript编写的 尽管我非常希望用Javascript编写测试,但我希望避免重写,因此,有一种方法可以集成现有的测试。量角器中是否有一种配置可以使这种情况发生

给定一个站点,该站点使用Selenium以Java编写了大量测试用例,并且该站点正在用AngularJs重新编写,那么如何将Selenium测试集成到新的应用程序中呢

我已经研究了新推荐的使用Selenium的端到端测试运行程序,但是,这似乎建议使用Javascript编写测试。更详细地介绍了如何使此设置正常工作,但同样,测试是用Javascript编写的


尽管我非常希望用Javascript编写测试,但我希望避免重写,因此,有一种方法可以集成现有的测试。量角器中是否有一种配置可以使这种情况发生?

恐怕这里没有适合您的解决方案。在你的道路上有许多障碍

  • 量角器是用JavaScript编写的,是Selenium的WebDriverJS实现的包装器。考虑到WebDriverJS使用的API与Java WebDriver非常不同(由于节点的异步性质),即使从技术上讲可以让节点库包装Java库,在这种情况下也不起作用
  • 量角器和Selenium不支持相同的API,因此即使有基于Java的量角器,您也会发现自己正在进行一些重新工具化
  • 如果您正在利用Angular,那么尽管页面的整体行为可能相同,但底层DOM结构等将不同。要么是这样,要么就是你明显无法利用Angular。因此,除非您有一个非常好的页面对象抽象层,否则无论如何您都必须重写测试。如果确实有一个好的页面对象层,那么无论如何都需要重写该层
  • 依我看,你最好的意见如下:

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


    如果看起来这比用javascript重写测试要省力的话,您可能会非常雄心勃勃地将量角器移植到Java。然后,您可以自由地将上述第2个问题最小化,但我仍然认为第3个问题会导致您得出结论,将测试移植到javascript具有较低的LOE。

    selenium是否关心页面的实现方式?你就不能运行测试吗?我们在angular应用程序上使用了python selenium套件,它们运行时不依赖于angular页面。我在寻找正确的测试框架/工具方面遇到了问题,您有什么推荐框架吗?我正在使用play framwork+angular+mongod