【问题标题】:Selenium gui tests for Liferay + VaadinLiferay + Vaadin 的 Selenium gui 测试
【发布时间】:2012-08-23 23:20:48
【问题描述】:

我们尝试通过 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 缓存的内容”、“清除数据库缓存。”、“重新索引 所有搜索索引。”

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

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

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

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

【问题讨论】:

  • 嗨@dimafeng,这也是我非常感兴趣的东西。你们有没有把一些东西放在一起?我们也经历了你提到的那条路(除了我们使用 Maven 和一些自定义脚本将成功的构建从 Jenkins 发布到测试/演示/生产环境),你写过博客或关于你的经验的东西吗?提前致谢!

标签: java testing selenium liferay vaadin


【解决方案1】:

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

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

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

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

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

    waitForElementPresent(locator)

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

    setDebugID("aButton");

您如何测试您的 portlet?

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-25
    • 2016-06-10
    • 2019-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多