【问题标题】:Issues with running my Galen tests on AWS Device Farm在 AWS Device Farm 上运行我的 Galen 测试的问题
【发布时间】:2016-12-28 14:52:44
【问题描述】:

我在 AWS Device Farm 上运行 Galen 测试时遇到问题,我将我的 .gspec 文件正确打包到 src/tests/java 文件夹下并在我的 POM.xml 中提供相同的文件,但是在农场上运行测试时它抛出 FileNotFound 异常即:

java.io.FileNotFoundException: src/test/java/HomePage.gspec at
 com.galenframework.speclang2.pagespec.PageSpecReader.read(PageSpecReader.java:43)
 at com.galenframework.api.Galen.checkLayout(Galen.java:68) at
 com.galenframework.api.Galen.checkLayout(Galen.java:59) at
 com.galenframework.api.Galen.checkLayout(Galen.java:154) at
 com.galenframework.api.Galen.checkLayout(Galen.java:128) at

这在本地设备上就像一个魅力。

【问题讨论】:

    标签: aws-device-farm galen


    【解决方案1】:

    我是 AWS Device Farm 团队的工程师。

    我不熟悉 Galen 测试框架。我们尚未正式测试该框架以声称它可以在设备场上运行。

    但是,我可以从您的描述中看出几件事:

    1. .gspec 文件:似乎框架正在寻找读取此文件以开始使用。任何基于 appium/selenium 的测试文件都可以在打包时放在 src/test/resources 下,这应该将文件放在 jar 根目录下的 *SNAPSHOT-tests.jar 文件中。

    这个 jar 文件然后在测试执行环境的 CLASSPATH 中可用,这意味着您可以直接访问它。通过在 *tests.jar 文件中查看 .gspec 文件的存在,在上传到设备场之前进行验证可以为您节省一些时间。

    另一种方法是将文件放在 src/test/resources/com (或任何包结构)下。然后要访问测试代码中的文件,您可以假设该文件位于资源下的包结构下,因此在您的情况下,文件路径为“com/yourfile.gspec”。

    希望这可以帮助您进一步进行。

    【讨论】:

    • 您是否遇到与最初发布的相同的错误?
    • 感谢您的回复。根据您的建议,我们尝试了类似的方式,即将 .gspec 文件保存在 src/test/resources/com 下,也直接保存在资源中。我们还可以在打包的 JAR 中看到 .gspec 文件,即 SNAPSHOT-tests.jar。还提取了这个 JAR 的内容,它确实有 gspec 文件。所以所有这些方法都没有奏效。此外,我们假设农场上确实有物理设备,因为如前所述,我们能够在本地物理设备上成功运行 Galen 测试。
    • 您能分享一下您在测试代码中使用的代码 sn-p 或文件路径来查找 .gspec 文件吗?
    • 您好,请找到maven包的附加代码sn-p(文件路径)和POM文件
    • 正如 hypery2k 所指出的那样,您想使用相对路径,因此在您共享的代码中,您的路径应该从“com/........./yourfile.gspec”开始" 而不是 "src/test/java/......."。
    【解决方案2】:

    您好,请找到随附的代码 sn-p 屏幕截图,其中我们使用 maven 包的文件路径和 POM 文件。

    POMFile

    FilePathCode

    【讨论】:

    • 而不是绝对路径尝试使用相对路径,例如'主页.gspec'。如果它适用于 AWS 设备场,您可以尝试我的示例项目之一:github.com/hypery2k/galen_samples/tree/master/junit
    • 嗨,我已经更改了文件路径,现在它抛出 UnsatisfiedLinkError 异常:java.lang.UnsatisfiedLinkError: /usr/lib/jvm/jdk1.8.0_65/jre/lib/amd64/libawt_xawt.so :libXtst.so.6:无法打开共享对象文件:java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1938) 的 java.lang.ClassLoader$NativeLibrary.load(Native Method) 没有这样的文件或目录。 lang.ClassLoader.loadLibrary(ClassLoader.java:1821) 在请帮助这个问候..
    • @GauravSharma AWS Device Farm 不支持 Galen。支持的框架列表记录在Developer Guide 中。您可以切换到其中一个框架吗?如果您想继续解决问题,我们将需要您的应用和测试来诊断根本原因。请通过 AWS Support 打开一个案例,提供一个指向您的 Run 以及应用程序和测试的链接,我们可以从那里获取它。
    • 您好 Rohan,感谢您的回复。我正在使用 Appium Java TestNG。但在我的课堂上,我使用的是 Galen 脚本。此外,我正在使用我的应用程序 URL 在 chrome 浏览器中运行测试。当我运行测试时,我总是遇到以下异常: java.lang.UnsatisfiedLinkError: /usr/lib/jvm/jdk1.8.0_65/jre/lib/amd64/libawt_xawt.so: libXtst.so.6: cannot open shared object file : 无此文件或目录。请帮我解决这个问题
    猜你喜欢
    • 2020-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-22
    • 2019-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多