2014-02-14 38 views
4

如果網站使用Selenium作爲網站,並且該網站正在使用AngularJs進行重新編寫,那麼在Java中編寫的測試用例中,如何將Selenium測試集成到新應用程序中?使用以Java編寫的現有Selenium測試的AngularJs端對端測試

我已經看過Protractor這個新推薦的使用Selenium的端到端測試運行器,但是,這似乎是建議在Javascript中編寫測試。 This article進一步詳細瞭解如何使此設置正常工作,但同樣,測試用Javascript編寫。

儘管我想用Javascript編寫測試,但我想避免重寫,所以想要將現有的集成在一起的方法將會很不錯。量角器中是否有配置可以使其發生?

+1

硒是否關心你的頁面是如何實現的?你不能只是運行測試?我們在我們的角度應用程序上使用python硒套件,並且它們不依賴頁面的角度而運行。 – hassassin

+0

我遇到了找到正確的測試框架/工具的問題,你有沒有推薦的框架?我正在使用play framwork + angular + mongod – Fenici

回答

1

恐怕在這裏沒有好的解決方案。你的方式有許多障礙。

  1. 量角器是用JavaScript編寫的,是Selenium的WebDriverJS實現的一個包裝。鑑於WebDriverJS使用與Java WebDriver完全不同的API(由於節點的異步特性),即使技術上可能獲得節點庫來封裝Java庫,在這種情況下它也不起作用。
  2. 量角器和Selenium不支持相同的API,所以即使存在基於Java的量角器,您也會發現自己正在進行一些重構。
  3. 如果您正在利用Angular,那麼您的頁面的整體行爲可能與底層DOM結構相同,等等。無論是這個還是你都沒有充分利用Angular。因此,除非你有一個非常好的頁面對象抽象層,否則你將不得不重寫你的測試。如果你有一個好的頁面對象層,你將需要在任何情況下重寫該層。

我認爲你最好的最好如下:

如果您的規格本身都寫在像黃瓜,那麼這些更高層次的規範語言,至少在理論上,可以用黃瓜被移植到JavaScript的-js,你可以簡單地在量角器上重新實現底層定義(不是小任務)。

如果你覺得這樣做比用Javascript重寫你的測試更省力,你可以實現雄心勃勃的目標,並將量角器移植到Java中。然後,您可以自由地將上述問題#2減至最小,但我仍然認爲#3會導致您斷定將測試移植到JavaScript的LOE較低。

相關問題