3

我们尝试通过 Selenium 测试 Liferay 6.0.6 的 portlet。我们几乎没有 liferay mvc portlet 和 vaadin portlet。在第一种方法中,我们创建执行以下步骤的测试:

  1. 使用基本结构和 portlet 放置恢复数据库转储
  2. 删除“数据”文件夹并将初始数据复制到其中
  3. 从“webapps”文件夹中删除适当的 portlet 文件夹
  4. 将我们的 portlet (*.war) 复制到“deploy”文件夹
  5. 启动liferay
  6. 等待 Portlet 已安装
  7. 转到控制面板 -> 服务器管理,然后单击“清除此 VM 缓存的内容”、“清除数据库缓存”、“重新索引所有搜索索引”。

在我们开始 selenium 测试之后(测试 portlet 行为、通过 vaadin portlet 上传文件、通过 vaadin portlet 批准工作流(kaleo)任务等)。并且测试在不同的地方失败:

  1. 有时在通过我们的 portlet 上传文件时会发生 DuplicateFileException(但在文档管理器中没有文件)
  2. 有时 Selenium 在页面上找不到元素
  3. 有时 kaleo 工作流程无法无误地批准所有文件

我们在 VM 上的 Jenkins 节点上开始测试时会出现更不稳定的行为。

你如何测试你的portlet?有没有办法稳定测试行为?什么是最佳实践?

4

1 回答 1

2

有时在通过我们的 portlet 上传文件时会发生 DuplicateFileException(但在文档管理器中没有文件)

查看完整的堆栈跟踪将非常有用

有时 Selenium 无法在页面上找到元素。

我看到 2 个可能的原因/解决方案:

  1. 如果 portlet 使用 ajax 加载内容,那么您的测试应该等到内容加载完毕,尝试:

    waitForElementPresent(locator)

  2. 如果您不使用 Vaadin TestBench,请确保为 vaadin 元素设置 debugId:

    setDebugID("aButton");

你如何测试你的portlet?

我们使用了 selenium 和 cucumber,参见:https ://projects.savoirfairelinux.com/projects/ctr-liferay/wiki/Portal_-_Testing

于 2013-05-13T19:55:31.667 回答