代码之家  ›  专栏  ›  技术社区  ›  Mani Vannan

Appium-在重新启动App-LaunchApp或StartActivity时,哪一种效果最好

  •  1
  • Mani Vannan  · 技术社区  · 6 年前

    我使用Appium在C#中测试Android设备。

    每次运行测试用例时,我都需要转到主屏幕,然后开始使用用例。这可以通过两种方式实现:LaunchApp和StartActivity功能。

    据我所知, LaunchApp再次启动应用程序,即停止运行应用程序并从头开始启动应用程序。然而,我最终将进入创业活动。这将释放内存空间,所以应用程序不会出现压力或内存不足的问题。 StartActivity不会终止应用程序,但会切换到特定的活动。这将与真实案例测试相同。

    我的上述说法是真的吗?或者两者之间的确切区别是什么?

    1 回复  |  直到 6 年前
        1
  •  2
  •   dmle    6 年前

    总的来说,你是对的,但在这里添加更多的上下文是值得的。

    工作原理:

    launchApp() 默认情况下 是否执行以下操作:

    • 检查应用程序是否已安装
    • 表演 快速复位 (包括应用停止、缓存清理等)
    • 启动应用程序时使用 启动活动
    • 检查package+活动以匹配您在功能中设置的活动( appWaitPackage , appWaitActivity )

    startActivity 是否执行以下操作:

    • 通过adb shell运行命令以启动 特定活动
    • 检查package+活动以匹配设置为参数的活动

    现实生活中的例子 ,例如,具有 LoginActivity -> NavigationActivity -> WhateverActivity 流量:

    1. 您已登录到该应用程序

    (a) launchApp() 将清理应用程序并 移动 返回 LoginActivity

    b) startActivity(NavigationActivity) 就要发射了 NavigationActivity ,所以你不必登录应用。

    1. 你没有登录到该应用

    (a) launchApp() 将与第一季度相同

    b) startActivity(导航活动)将在以下情况下失败: Incorrect package and activity 因为应用程序流不允许这样做。

    我在用 在每次考试之前 start point ,这有助于通过避免多次重新安装和重新登录应用程序来加速测试套件。