我们尝试通过Selenium测试Liferay 6.0.6的portlet。 我们有很少的liferay mvc portlet和vaadin portlet。在第一种方法中,我们创建测试,执行以下步骤:
我们开始selenium测试后(测试portlet行为,通过vaadin portlet上传文件,通过vaadin portlet等批准工作流程(kaleo)任务)。测试在不同的地方失败了:
在VM上的Jenkins节点上开始测试时,我们得到的行为更加不稳定。
如何测试portlet?有没有办法稳定的测试行为?什么是最佳做法?
答案 0 :(得分:2)
有时在通过我们的portlet上传文件期间会发生DuplicateFileException(但在文档管理器中没有文件)
查看完整的堆栈跟踪非常有用
有时Selenium无法在页面上找到元素。
我看到了两个可能的原因/解决方案:
如果portlet正在使用ajax加载内容,那么您的测试应该等到内容加载完毕,请尝试:
waitForElementPresent(locator)
如果您不使用Vaadin TestBench,请确保为vaadin元素设置debugId:
setDebugID("aButton");
如何测试portlet?
我们使用了硒和黄瓜,请参阅:https://projects.savoirfairelinux.com/projects/ctr-liferay/wiki/Portal_-_Testing