2017-09-01 99 views
0

我有在Windows上的3個瀏覽器中運行產品測試的自動化測試設置:IE 11,Chrome和Firefox(55.0.3和56.0 .b7被試用)。 手動運行測試在特定用戶的特定機器上的所有3個瀏覽器中都能正常運行。如何調試從Windows服務運行的Firefox,但無法設置「允許服務與桌面交互」

但是,如果要使用從同一用戶作爲Windows服務運行的Jenkins從服務器運行測試,它只適用於IE 11和Chrome,但一開始就與Firefox失敗。 由於Firefox是從Windows服務運行的,因此沒有UI,因此我無法得到Firefox需要的工作。

我懷疑它掛在「你想讓我默認瀏覽器?」的對話框上。 對於測試配置文件,特定設置在about:config中設置爲false,但我無法在任何地方找到完整的對話框列表,因此我無法確定是否已關閉所有對話框。

主要問題是,我看不到問題:如果我啓用「允許服務與桌面交互」爲詹金斯奴隸,它得到正常工作。不幸的是,Jenkins奴隸不能保留這個選項,因爲它必須從特定用戶運行,並且沒有這種情況。

任何想法如何調試Firefox需要什麼,如果你不能看到瀏覽器用戶界面? 我已經嘗試使用NSPR_LOG_MODULES=all:5NSPR_LOG_FILE=<path-to-log>來捕獲Firefox日誌,但在日誌中沒有找到任何線索。

我還能做些什麼來找到問題的根源? 我可以連接到遠程運行Firefox來查看它的功能或等待嗎? 我可以捕獲其他日誌嗎?

一些測試設置細節

生成系統基於詹金斯和特定步驟經由詹金斯從屬運行Windows 7的機器上運行作爲從特定的用戶的Windows服務。 測試是Node.js的腳本,請執行下列操作步驟:

  1. 運行本地HTTP服務器來服務測試頁,它使用
  2. 運行瀏覽器加載頁面(適用於Firefox是以下命令行資源: <full path to firefox>/firefox.exe -no-remote -profile <full-path-for-prepared-profile> <url-to-test-page>
  3. 等待來自瀏覽器的HTTP請求確認頁面 準備運行測試
  4. ...

如果失敗,第3步的請求永遠不會發生,所以看起來Firefox由於未知原因而無法加載頁面。

回答

0

經過長期的長期調查,我的同事找到了根本原因以及如何解決它(如果要更精確的話,可以將其解決)。

似乎在這種情況下Bug1400637發生,並在Firefox v57.0中工作它需要設置security.sandbox.content.level4about:config

此外,我已經瞭解到,在Firefox這樣的問題可能值得看看about:crashes,它有助於找到根本原因,甚至找到解決方案。

相關問題