C# Appium-在重新启动App-LaunchApp或StartActivity的情况下,哪一个是最好的

C# Appium-在重新启动App-LaunchApp或StartActivity的情况下,哪一个是最好的,c#,appium,appium-android,C#,Appium,Appium Android,我使用Appium在C#中测试Android设备 每次运行测试用例时,我都需要转到主屏幕,然后开始使用用例。这可以通过两种方式实现,使用:LaunchApp和StartActivity功能 据我所知, LaunchApp再次启动应用程序,即停止运行应用程序并从头开始启动应用程序。然而,我最终将进入创业活动。这将释放内存空间,所以应用程序不会出现压力或内存不足的问题。 StartActivity不会终止应用程序,但会切换到特定的活动。这将与实际案例测试相同 我的上述说法是真的吗?或者两者之间的确切

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

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

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


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

一般来说,您是对的,但值得在此添加更多上下文

工作原理:

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

  • 检查应用程序是否已安装
  • 执行快速重置(包括应用程序停止、缓存清理等)
  • 使用启动活动启动应用程序
  • 检查package+活动以匹配您在功能中设置的活动(
    appWaitPackage
    appWaitActivity
startActivity
执行以下操作:

  • 通过adb外壳运行命令以启动指定的活动
  • 检查package+活动以匹配设置为参数的活动
现实生活中的示例,例如具有
LoginActivity->NavigationActivity->whateverativity
流的应用程序:

  • 您已登录到应用程序
  • a)
    launchApp()
    将清理应用程序并移动返回
    LoginActivity

    b)
    startActivity(NavigationActivity)
    将只启动
    NavigationActivity
    ,因此您无需登录应用程序

  • 您没有登录到应用程序
  • a)
    launchApp()
    将与第1季度相同

    b) startActivity(NavigationActivity)将因
    不正确的包和活动而失败,因为应用程序流不允许它


    我在每次测试前都使用
    startActivity
    来到达
    起点
    ,这有助于通过避免多次重新安装和重新登录应用程序来加速测试套件。

    一般来说,你做得对,但值得在这里添加更多上下文

    工作原理:

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

    • 检查应用程序是否已安装
    • 执行快速重置(包括应用程序停止、缓存清理等)
    • 使用启动活动启动应用程序
    • 检查package+活动以匹配您在功能中设置的活动(
      appWaitPackage
      appWaitActivity
    startActivity
    执行以下操作:

    • 通过adb外壳运行命令以启动指定的活动
    • 检查package+活动以匹配设置为参数的活动
    现实生活中的示例,例如具有
    LoginActivity->NavigationActivity->whateverativity
    流的应用程序:

  • 您已登录到应用程序
  • a)
    launchApp()
    将清理应用程序并移动返回
    LoginActivity

    b)
    startActivity(NavigationActivity)
    将只启动
    NavigationActivity
    ,因此您无需登录应用程序

  • 您没有登录到应用程序
  • a)
    launchApp()
    将与第1季度相同

    b) startActivity(NavigationActivity)将因
    不正确的包和活动而失败,因为应用程序流不允许它

    我在每次测试前使用
    startActivity
    来到达
    起点
    ,这有助于通过避免多次重新安装和重新登录应用程序来加速测试套件