3

目前,我正在使用specflow,selenium,fluent automation和xunit的組合來測試我的瀏覽器應用程序在Chrome瀏覽器的部署實例上。這在開發人員計算機上運行良好,但經常在構建服務器代理程序上失敗,除非構建服務器代理程序很慢,否則沒有明顯的原因。我可以使用phantom.js來測試JavaScript重度應用程序嗎?

我一直都在phantom.js documentation我很努力去理解,如果我可以使用phantom.js來完全測試我的應用程序。

我的應用程序有很多javascript邏輯,我使用requirejs來加載我所有的模塊,我想知道我是否可以使用phantom的無頭瀏覽器功能來測試它的所有功能。它會下載所有的JavaScript文件,然後讓我對dom執行操作,例如啓動其中包含表單的模式?很多UI都是用淘汰模板構建的。

我已經做了一些搜索,但沒有確定性出現。有沒有人對此有任何建議?在這一點上,我對瀏覽器測試並沒有太在意,我們爲此提供了手動QA。這只是爲了通過所有用戶故事的ui自動化功能失敗的快樂路徑早期預警系統。


在這一切結束時,我做了一些改動這是真正有用的

  • 訪問硒驅動程序和檢查jQuery.active
  • 創建一個新的expectOne/assertOne它拋出,如果css選擇器爲選擇器返回多個項目
+1

您可以提供關於您在構建代理上使用FluentAutomation時遇到的問題的任何細節。我很想看看它並嘗試提供幫助。大多數情況下,這個問題與瀏覽器未被啓動/清理或測試未在UI會話中運行有關,這可能會導致一些問題。 – stirno

回答

7

PhantomJs是一個完整的瀏覽器實現,只是不呈現給屏幕(我噸確實有一個緩衝區,可以通過截圖捕獲)。如果手動測試涵蓋了首選瀏覽器,並且您只需要知道嚴重故障,那就試試吧!

FluentAutomation.SeleniumWebDriver在當前版本中支持PhantomJs開箱即用。只需選擇PhantomJs作爲您的「瀏覽器」,它就可以工作。 FluentAutomation.PhantomJs提供程序已棄用,將消失。

FluentAutomation.SeleniumWebDriver.Bootstrap(FluentAutomation.SeleniumWebDriver.Browser.PhantomJs); 
3

是的。

您可能會發現CasperJS更適用於測試。內置的測試儀模塊非常易於使用。 Casper還使用SlimerJS(用於Gecko/Firefox測試)打開,不需要額外的代碼。

在Phantom或Casper中您可以使用page.evaluate()來運行任何客戶端JavaScript,因此應該沒問題。

+0

我們使用phantomjs/casperjs每天早上在我們的js應用程序上運行一些測試。我們模擬複雜的工作流程,並在每一步之後進行截圖。所以我們可以看到出了什麼問題。但是2件事情:1.你必須編碼每一步 - 這不是一個典型的QA任務,2.它不能代替單元測試 - 但單元測試也可以在幻影中運行;看到chutzpah ... – Andreas

+0

@Andreas同意這兩點。爲了更容易創建測試,您可以使用FireBug。例如。我輸入的這個非常評論欄的CSS選擇器是'html body.question-page div。容器div#content div div#mainbar div#answers div#answer-20261132.answer table tbody tr td div#comments-20261132.comments table tfoot tr td.comment-form form#add-comment-20261132 table tbody tr td textarea' ! –

+0

考慮到他已經在使用封裝PhantomJS的Fluent Automation @Stelrno的答案可能是一種可行的方法。這需要重新編寫他的整個測試套件,而stirno的答案只是一個改變。 – pauljz

相關問題