16

我需要使用 Jemmy 创建一些 gui 测试,但我不知道如何使用 javaws 应用程序启动它。在教程/示例/等中是这样的:

new ClassReference("org.netbeans.jemmy.explorer.GUIBrowser")
                                                        .startApplication();

此代码打开一个示例窗口,但我如何使用 ClassReference 对象打开*.jnlp文件?还是另一种将jemmy与java web start应用程序“连接”的方式?

感谢提前。

4

3 回答 3

5

您可以通过准备包含 Jemmy 的特殊构建并从以 jnlp 模式本身运行的应用程序调用 Jemmy 来实现这一点。

于 2014-07-23T10:59:54.957 回答
2

解决方案是:

  1. 将构建文件放入 PC 上的任何文件夹中。
  2. 将此构建中的文件添加.jar到您的测试项目中。
  3. 在文本编辑器中打开.jnlp文件并搜索主应用程序类
    application-desc main-class="[Main application class]"/>
  4. 从您的测试中调用它以启动应用程序
    new ClassReference("[Main application class]").startApplication();

现在您可以从测试环境访问此 Java 应用程序的元素

于 2016-05-16T15:00:13.457 回答
1

您可以在 NetBeans IDE 中将 Jemmy 与 JUnit 一起使用。

对于 GUI 测试,我们使用 Jemmy,这是 NetBeans IDE 附带的一个库,对于测试 Swing 应用程序非常有用。

使用 Jemmy 的 JUnit 测试,例如:

@Test
public void JunitTest() {
JFrameOperator mainFrame = new JFrameOperator();
JTextFieldOperator textField = new JTextFieldOperator(mainFrame, "textIn");
int x = 10;
assertEquals(x, textField.getLocationOnScreen().x);
}

如果需要,添加@Test注释并使用 JUnit 。assertEquals()fail()


另一种方法:

您也可以使用 jnlp 来完成。已经建议@Sergey Grinev

此链接中给出了一个很好的示例和运行代码:

快照:

  1. 点击webdriver中的jnlp文件链接,将jnlp文件保存到磁盘;
  2. 从 jnlp 运行 webstart 应用程序;
  3. 捕获打开的应用程序并将其用于测试。

这个过程可以通过使用以下库来完成:

  • netx - 用于从 jnlp 运行 webstart 应用程序。
  • uispec4j - 用于拦截创建的 webstart 窗口和操作窗口元素。

您可能可以使用其他 AWT/Swing 测试工具执行相同的技巧,但是 uispec4j 允许拦截从 jnlp 执行的 webstart 应用程序,您不需要通过调用 main() 来运行应用程序,也不需要让您的 webstart测试代码仓库中的应用程序源代码。

归功于tporeba

要了解有关 Jemmy 的更多信息,您可以通过此链接

  1. 杰米教程
  2. 杰米样品
  3. NetBeans 平台测试基础结构教程
于 2016-05-13T14:20:53.093 回答