2012-08-29 81 views
3

我們嘗試通過Selenium測試我們的Liferay 6.0.6 portlet。 我們有幾個liferay mvc portlet和vaadin portlet。在第一種方法,我們創建的測試,做下面的步驟:Liferay + Vaadin的Selenium gui測試

  1. 恢復數據庫轉儲,基本結構和portlet放置
  2. 刪除「Data」文件夾和初始數據複製到
  3. 刪除門戶的相應文件夾從「 web應用」文件夾
  4. 複製我們的portlet(*的.war)爲 「部署」 文件夾
  5. 開始的Liferay
  6. 等待,而portlet將安裝
  7. 轉到控制面板 - >服務器管理,然後單擊「清除 由此VM緩存的內容」,「清除數據庫緩存」,「所有搜索索引」,「Reindex 」。

我們開始硒測試(測試portlet行爲,通過vaadin portlet上傳文件,通過vaadin portlet批准工作流(kaleo)任務等)。通過 我們的portlet上傳文件時

  1. 有些時候DuplicateFileException出現(但在文件管理器中沒有文件)
  2. 有時候硒找不到元素頁面上
  3. 有時:和試驗失敗在不同的地方kaleo工作流程無法批准所有文件無錯

當在VM上的Jenkins節點上開始測試時,會出現更不穩定的行爲。

你如何測試你的portlet?有沒有辦法穩定測試行爲?什麼是最佳做法?

+0

嗨@dimafeng,這是後話,我也非常關心你們設法把東西在一起?我們也經歷了你提到的道路(除了我們使用Maven和一些自定義腳本從Jenkins發佈到測試/演示/產品環境的成功構建),你是否寫過博客或關於你的經驗?提前致謝! – rlegendi

回答

2

有些時候,通過我們的portlet上傳文件時DuplicateFileException出現(但在文件管理器中沒有文件)

看到完整的堆棧跟蹤

有些時候,這將是非常有用的硒在頁面上找不到元素。

我看到2個可能的原因/解決方案:

  1. 如果一個portlet是使用AJAX加載內容,那麼您的測試應該等到內容已經被加載,請嘗試:

    waitForElementPresent(locator)

  2. 如果您不使用Vaadin TestBench,那麼請確保您爲vaadin元素設置debugId:

    setDebugID("aButton");

你怎麼測試您的portlet?

我們用硒和黃瓜,請參閱:https://projects.savoirfairelinux.com/projects/ctr-liferay/wiki/Portal_-_Testing