APP测试(appium+Python基础操作)一
阅读原文时间:2023年07月09日阅读:1
  1. demo

    from appium import webdriver
    from time import sleep
    
    # server 启用参数
    desired_caps = {}
    
    # 设备信息
    desired_caps['platformName'] = 'Android'  # 设备名称
    desired_caps['platformVersion'] = '7.1.2'  # 设备版本
    desired_caps['deviceName'] = '127.0.0.1:62001'  # 设备号
    
    # app信息
    desired_caps['appPackage'] = 'com.android.settings'  # 应用包名
    desired_caps['appActivity'] = '.Settings'  # 启动的activity
    
    desired_caps["automationName"] = 'UiAutomator1'  # 解决新版appium报错
    
    driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
    sleep(3)
    # 关闭app driver对象不会关闭
    driver.close_app()
    
    sleep(3)
    # 关闭驱动对象
    driver.quit()
    
    
    platformName 平台的名称:iOS, Android, or FirefoxOS
    platformVersion 设备系统版本号
    deviceName 设备号 IOS:instruments -s devices,Android: adb devices
    app 安装文件路径:/abs/path/to/my.apk or http://myapp.com/app
    appActivity 启动的Activity
    appPackage 启动的包
    unicodeKeyboard      unicode设置(允许中文输入)
    resetKeyboard        键盘设置(允许中文输入)
  2. 安装apk到手机中

    import os
    
    from appium import webdriver
    from time import sleep
    
    # server 启用参数
    desired = {
        # 设备信息
        'platformName': 'Android',  # 设备名称
        'platformVersion': '7.1.2',  # 设备版本
        'deviceName': '127.0.0.1:62001',  # 设备号
        # app信息
        'appPackage': 'com.android.settings',  # 应用包名
        'appActivity': '.Settings',  # 启动的activity
        # 解决新版appium报错
        'automationName': 'UiAutomator1'
    }
    
    driver = webdriver.Remote('http://localhost:4723/wd/hub', desired)
    sleep(3)
    # 下载apk
    driver.install_app(os.getcwd() + os.sep + "jisuanqi.apk")
    sleep(3)
    # 关闭app driver对象不会关闭
    driver.close_app()
    
    sleep(3)
    # 关闭驱动对象
    driver.quit()
    • 说明:

      driver.install_app(app_path)

      参数:app_path:APK文件所在路径

    1. 从手机中卸载apk

      import os

      from appium import webdriver
      from time import sleep

      server 启用参数

      desired = {
      # 设备信息
      'platformName': 'Android', # 设备名称
      'platformVersion': '7.1.2', # 设备版本
      'deviceName': '127.0.0.1:62001', # 设备号
      # app信息
      'appPackage': 'com.youba.calculate', # 应用包名
      'appActivity': '.MainActivity', # 启动的activity
      # 解决新版appium报错
      'automationName': 'UiAutomator1'
      }

      driver = webdriver.Remote('http://localhost:4723/wd/hub', desired)
      sleep(3)

      卸载apk

      driver.remove_app("com.youba.calculate")
      sleep(3)

      关闭app driver对象不会关闭

      driver.close_app()

      关闭驱动对象

      driver.quit()

    • 说明:

      driver.remove_app(app_id)

      参数:app_id:需要卸载的app包名

    1. 判断APP是否有安装

      import os

      from appium import webdriver
      from time import sleep

      server 启用参数

      desired = {
      # 设备信息
      'platformName': 'Android', # 设备名称
      'platformVersion': '7.1.2', # 设备版本
      'deviceName': '127.0.0.1:62001', # 设备号
      # app信息
      'appPackage': 'com.android.settings', # 应用包名
      'appActivity': '.Settings', # 启动的activity
      # 解决新版appium报错
      'automationName': 'UiAutomator1'
      }

      driver = webdriver.Remote('http://localhost:4723/wd/hub', desired)
      sleep(3)
      result = driver.is_app_installed("com.youba.calculate")
      print(result)

      判断是否有com.youba.calculate该apk,有就删除 True,没有就下载 False

      if result:
      driver.remove_app("com.youba.calculate")
      else:
      driver.install_app(os.getcwd() + os.sep + "jisuanqi.apk")
      sleep(3)

      关闭app driver对象不会关闭

      driver.close_app()

      关闭驱动对象

      driver.quit()

    • 说明:

      driver.is_app_installed(bundle_id)

      参数:bundle_id: 可以传入app包名,返回结果为True(已安装) / False(未安装)