我们碰到了,你现在看到了同样的挑战。 堆栈上有很多硒工程师在Java堆栈上,但在Node.js和selenium-webdriver
堆栈上没有太多。
大多数较新的现代测试框架都是在Node.js中完成的,因为前端和后端均使用NodeJS完成,并将继续这种趋势。我会问的问题是开发团队是使用Java(例如Tomcat)还是使用Node.js来开发他们的产品。如果他们正在使用Node.js那么最好使用相同语言编写测试框架。
这是为了便于开发和自动化团队,定位器和等之间
有一个很Marcel Erz在我们的南湾硒会议上做了很好的介绍。我强烈建议你在做出决定之前通过它。
的Java与JavaScript的(对UI测试)
- 通过前端工程师
- 不熟悉Java和它的生态系统
- 上下文切换
- 不太可能编写的大多数测试接受测试
http://www.marcelerz.com/blog/talk-nodejs-based-selenium-testing-south-bay-selenium-meetup
现在如果你使用Javascript,主要的挑战是当然的异步性。大多数自动化工程师用于同步Python
和Java
中的模式。习惯JavaScript的异步行为需要一些时间。但最终的结果是值得的。
我们的框架主要是用Node.js编写的,我们使用Mocha作为我们的线束和测试运行器。推荐的断言库是Chai,但如果您需要特定需求,则可以使用其他库。
我们选择的硒库是WebDriverJs(区分大小写),也就是npm上的selenium-webdriver
,这是官方的JavaScript端口。我们与selenium-webdriver
一起进行的主要原因之一是代码可读性和能够实现开箱即用的类似同步的语法到让Java测试工程师记住。这可以通过利用内置的Promise Manager控制流和Mocha Test Wrapper来实现,该自动处理所有对promise管理器的调用,使代码非常同步。
https://code.google.com/p/selenium/wiki/WebDriverJs#Writing_Tests
然后,它添加在自己的框架和构建页面对象的问题。 Javascript中的页面对象是一个全新的野兽,你将不得不掌握原型,以及如何模拟Java的继承。
您还应该在npm中使用selenium-standalone
作为本地和远程执行的硒的唯一通信点,而不是在测试中创建Driver实例(本地/远程)。这是为了使框架具有相同的界面并使事物保持一致。您不想跟踪多个本地驱动程序可执行文件并更新它们。一个包裹照顾一切。
如果你已经阅读到这里,并且你几乎可以确定你将使用Node.js路线而不是Java。以下是我们框架的一个非常简化的版本,可以帮助您开始。它具有上述所有的实现。任何拉请求也欢迎!
https://github.com/mekdev/mocha-selenium-pageobject
你应该知道这是一个自动过程,建议编辑队列;你不需要问我为你看。无论如何,像维基百科一样思考Stack Overflow,而不是像论坛;我们的目标是尽可能地提供最好的问题和答案,所以诸如“感谢”或“p.s.你有一个错字”等额外的东西不应该在你的答案中;相反,请自己编辑问题。当你有2000名代表时,你将能够自己进行编辑而无需同行评审。 – durron597 2015-09-04 17:50:57