我们尝试通过 Selenium 测试 Liferay 6.0.6 的 portlet。我们几乎没有 liferay mvc portlet 和 vaadin portlet。在第一种方法中,我们创建执行以下步骤的测试:
- 使用基本结构和 portlet 放置恢复数据库转储
- 删除“数据”文件夹并将初始数据复制到其中
- 从“webapps”文件夹中删除适当的 portlet 文件夹
- 将我们的 portlet (*.war) 复制到“deploy”文件夹
- 启动liferay
- 等待 Portlet 已安装
- 转到控制面板 -> 服务器管理,然后单击“清除此 VM 缓存的内容”、“清除数据库缓存”、“重新索引所有搜索索引”。
在我们开始 selenium 测试之后(测试 portlet 行为、通过 vaadin portlet 上传文件、通过 vaadin portlet 批准工作流(kaleo)任务等)。并且测试在不同的地方失败:
- 有时在通过我们的 portlet 上传文件时会发生 DuplicateFileException(但在文档管理器中没有文件)
- 有时 Selenium 在页面上找不到元素
- 有时 kaleo 工作流程无法无误地批准所有文件
我们在 VM 上的 Jenkins 节点上开始测试时会出现更不稳定的行为。
你如何测试你的portlet?有没有办法稳定测试行为?什么是最佳实践?