gpt4 book ai didi

maven - 如何设置 Appium UI 测试 maven 项目与 Gitlab CI 一起测试 Android App?

转载 作者:行者123 更新时间:2023-12-04 21:06:32 25 4
gpt4 key购买 nike

我现在是一名实习生,刚接触自动化测试。我的目标是帮助我的公司为客户端设置 CI。

现在我有一个 maven 项目,其中包含几个使用 Appium java-client lib 的测试,在 Eclipse IDE 下,它可以在本地运行 UI 测试。我下一步的目标是将我的测试与 gitlab 存储库(已经存在,由 android 开发人员创建) Hook ,但我被困在这里。有人可以帮我吗?
请尽量具体:

  • 我应该如何设置 .gitlab.yaml?
  • 我们可以在 yaml 中使用脚本来下载 Appium 和 maven 吗?
  • 或者我们可以只下载 Appium,但将所有 Appium java-client jars 导入到 main 中的 libs 中?
  • 如果以上任何一个是真的,怎么办?如果两者都不是,我应该怎么做和如何
    做?
  • 我应该把我的测试放在那个 repo 的 gitlab 中吗?或者我不必
    将我的测试放在现有的 repo 中。相反,我可以有另一个
    并告诉 yaml 到哪里去?又如何?
  • 如果您能帮助我完成工作流程,将会很有帮助。
    比如,当我开发人员 checkin 代码时,gitlab 读取 yaml,然后
    构建,然后在 where(Q3) 中找到我的测试服,然后执行等

  • 提前谢谢了!

    最佳答案

    由于终于有人也对这个问题感兴趣,让我分享我对此的解决方案。

    所以,如果你在看这个问题,我假设你已经有了你的测试套件,你可以在你的机器上本地测试它,将你的应用程序安装在模拟器或真实设备中。现在您需要阅读有关 gitlab 管道和 gitlab CI 的更多信息:

  • 管道:https://docs.gitlab.com/ee/ci/pipelines.html
  • gitlab CI:https://docs.gitlab.com/ee/ci/quick_start/

  • 您应该已经注意到,Appium 的优势之一是您无需更改正在测试的应用程序的任何内容,您正在测试与即将投入生产的应用程序完全相同的应用程序。要了解有关 Apppium 的更多信息:
  • http://appium.io/docs/en/about-appium/intro/

  • 现在,要运行自动化测试,您需要测试套件、应用程序和 Appium 服务器。我们需要做的是在 .gitlab-ci.yml 中添加另一个阶段,告诉它
  • 使用新编译的 App,编译您的测试套件
  • 在模拟器/真机中安装 App
  • 编译您的测试套件并运行它。

  • 为了让事情更容易理解,我们从问题 4 开始,工作流程:

    所以当代码被 checkin 到 gitlab 时,gitlab runner 运行你的 .gitlab-ci.yml 中每个阶段的作业,当它运行到你的阶段时,它会进行自动化测试,并注意它正在你的服务器,因此这意味着您需要在服务器上安装 Appium,并在尝试运行自动化测试套件时启动并运行它。现在的问题是,您的服务器有能力这样做吗?如果你想在你的服务器上做自动化测试,你需要在上面安装Appium,可能是模拟器(可能需要你的服务器配备GPU)等等,这些都是维护服务器的问题。另一种方法是使用第三方服务,这就是我所做的。事实证明我们的(当我在那家公司时)服务器无法运行自动化 UI 测试,所以我们求助于 AWS-ADF(Amazon Device Farm),您可以选择许多其他服务提供商,请参阅引用链接:

    https://adtmag.com/blogs/dev-watch/2017/05/device-clouds.aspx

    所以我的功能测试阶段基本上有一个python脚本,它会抓取新编译的应用程序,自动化测试套件,将它们上传到AWS ADF,然后安排运行,运行完成时产生结果。

    所以,回答问题 1:
  • 我们需要在 .gitlab.yaml 中为我们的功能测试再创建一个阶段,就我而言,我在编译 Android 应用程序的阶段之后有一个阶段功能测试_项目阶段。然后你在你的阶段编写必要的 cmd 脚本,或者如果它太长,你的脚本在另一个文件中(把它放在你的仓库中)然后执行它。就我而言,我将我的脚本放在 python_ci.py 中,然后在我的舞台上使用“python python_ci.py”执行它。(这里你需要一个具有这些要求的 docker,请参见下文)
  • 您不下载 Appium,而是在您的设备上安装 Appium,或者如果您使用云服务,该服务应该为您安装 Appium。
  • 我所做的是使用 maven 构建并在本地打包测试套件,然后将其推送到 gitlab 存储库,现在我相信更好的方法是在 .gitlab.yml 中的功能测试阶段编译和打包它。现在回到问题 1 的第一点,如何获取 maven,我的理解是它是服务器的依赖项,例如 python,因此它们都可以通过告诉 gitlab 使用具有 python 的 docker 执行您的脚本来获得,并且Maven 依赖。

  • 问题 3 的答案:
  • 将它放在同一个 repo 中,但不在 Android 项目中(即它们将在同一目录下)。
  • 如何告诉 yml 到达测试套件?请记住它们在同一台服务器中,因此您可以使用 yml 脚本中的相对路径来告诉 yml 从何处获取您的测试套件。

  • 希望这可以帮助!

    关于maven - 如何设置 Appium UI 测试 maven 项目与 Gitlab CI 一起测试 Android App?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44580314/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com