Appium - 在重新启动App - LaunchApp或StartActivity时最好

时间:2018-06-01 07:40:57

标签: c# appium appium-android

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

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

据我所知, LaunchApp再次启动应用程序,即杀死正在运行的应用程序并从头开始启动应用程序。但是我最终会参与启动活动。这将释放内存空间,因此应用程序不会遇到压力或内存不足问题。 StartActivity不会杀死应用程序,但会切换到特定活动。这与真实案例测试相同。

我的上述陈述是真的吗?或两者之间的确切差异是什么?

1 个答案:

答案 0 :(得分:2)

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

工作原理:

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

  • 检查是否安装了应用
  • 执行快速重置(包括应用停止,缓存清理等)
  • 使用启动活动
  • 启动应用
  • 检查包+活动以匹配您在功能中设置的内容(appWaitPackageappWaitActivity

startActivity执行以下操作:

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

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

  1. 您已登录该应用
  2. a)launchApp()将清理应用并移动 返回LoginActivity

    b)startActivity(NavigationActivity)只会启动NavigationActivity,因此您无需登录该应用。

    1. 您尚未登录该应用
    2. a)launchApp()将与Q1相同

      b)startActivity(NavigationActivity)将失败并显示Incorrect package and activity,因为应用流程不允许它。

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

相关问题