Selenium gui测试Liferay + Vaadin

时间:2012-08-29 10:59:02

标签: java testing selenium liferay vaadin

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

  1. 使用基本结构和portlet放置恢复数据库转储
  2. 删除“data”文件夹并将初始数据复制到其中
  3. 从“webapps”文件夹中删除相应的portlet文件夹
  4. 将我们的portlet(* .war)复制到“deploy”文件夹
  5. 启动liferay
  6. 等待portlet已安装
  7. 转到“控制面板” - >服务器管理并单击“清除” 此VM缓存的内容“,”清除数据库缓存。“,”Reindex 所有搜索索引。“
  8. 我们开始selenium测试后(测试portlet行为,通过vaadin portlet上传文件,通过vaadin portlet等批准工作流程(kaleo)任务)。测试在不同的地方失败了:

    1. 有时在上传文件时会发生DuplicateFileException 我们的portlet(但在文档管理器中没有文件)
    2. 有时Selenium无法在页面上找到元素
    3. 有时kaleo工作流程无法批准所有文件而没有错误
    4. 在VM上的Jenkins节点上开始测试时,我们得到的行为更加不稳定。

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

1 个答案:

答案 0 :(得分:2)

  

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

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

  

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

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

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

    waitForElementPresent(locator)

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

    setDebugID("aButton");

  3.   

    如何测试portlet?

    我们使用了硒和黄瓜,请参阅:https://projects.savoirfairelinux.com/projects/ctr-liferay/wiki/Portal_-_Testing