我們碰到了,你現在看到了同樣的挑戰。 堆棧上有很多硒工程師在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