【问题标题】:Appium - Clean app state at the first test and last test, but not between testsAppium - 在第一次测试和最后一次测试时清理应用程序状态,但不是在测试之间
【发布时间】:2015-06-14 04:17:23
【问题描述】:

背景:
我想使用 appium 在 android 和 ios 模拟器中测试我的应用程序。我在 Python 中运行测试,我想拥有它,以便测试的工作流程始终如下:

if first test to be ran:
  reset any previous data
  launch simulator and application
  do test
  close application and save state
else:
  launch application
  do test
  close application and save state

if last test:
  reset any saved data

我相信正确的方法是包含--no-reset 服务器标志,然后在测试之间使用driver.launch_app()driver.close_app(),但是我不确定如何在最后一次测试中重置任何保存的数据.

感谢您的帮助。

【问题讨论】:

  • 我找到了一种删除iOS数据的方法,可以在终端中运行以下行:xcrun simctl erase <insert UDID here>

标签: android python ios reset appium


【解决方案1】:

假设您有一个方法 start_driver 可以创建 Appium Driver 实例。

然后,传递下一个功能:fullResetfalse 值和 noResettrue 值。这样start_driver 方法将简单地重新启动应用程序而不重置任何内容。

重置应用程序:
1.卸载应用
- iOS:ideviceinstaller --udid #{udid} --uninstall #{package}
- Android:您可以清除应用数据adb -s #{udid} shell pm clear #{package_name}或卸载应用adb -s #{udid} uninstall #{package}
2.拨打start_driver

更新: 以上说明适用于真实设备。我没注意到你在说模拟器。

【讨论】:

    【解决方案2】:

    这是我最终使用的作品:

    清理 iOS 模拟器:

    xcrun simctl erase <udid here>
    

    注意,对于 iOS 模拟器,这必须在模拟器未打开时运行。

    清理安卓模拟器:

    adb shell pm clear <app package here>
    

    请注意,对于 android 模拟器,必须在模拟器打开且应用关闭时运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-14
      • 2022-09-28
      • 2021-03-19
      • 2020-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-20
      相关资源
      最近更新 更多