zoukankan      html  css  js  c++  java
  • Appium移动自动化测试(五)之应用操作

    实验简介

      对于APP测试来讲, 除了进行功能测试以外, 安装和卸载其实也是一个很重要的测试项.

      试想, 如果用脚本来实现了, 可以事先判断该应用是否已安装, 根据判断结果来执行安装和卸载的动作, 循环它个1000遍, 顺便还可以把安装卸载的稳定性测试也一并做了, 想想还是蛮美好的呢!

    实验目的

      1. 使用Python + Appium实现apk的安装

      2. 使用Python + Appium实现apk的卸载

      3. 使用Python + Appium实现apk的关闭或启动等其它操作

    实验流程

      1. 安装应用

        安装应用到设备中去。需要apk包的路径。上代码. 

    from appium import webdriver
    
    desired_caps = {}
    desired_caps['platformName'] = 'Android'    #设备系统
    desired_caps['platformVersion'] = '23'      #设备系统版本
    desired_caps['deviceName'] = 'Android Emulator'     #设备名称
    # 测试apk包的路径
    apk_path = r'E:PythonAPPTestContactManager.apk'
    desired_caps['app'] = apk_path
    
    driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
    #   安装apk
    driver.install_app(apk_path)
    
    #   判断该apk是否安装, 结果为True/False
    is_installed = driver.is_app_installed('com.example.android.contactmanager')
    if is_installed:
        print('安装成功.')
    else:
        print('安装失败.')
    
    driver.quit()

        由于apk还没有安装成功, 该apk的activity信息还没有, 所以一定不要加上, 否则会报错的.

      2. 卸载应用

        从设备中删除一个应用。上代码.

    from appium import webdriver
    
    desired_caps = {}
    desired_caps['platformName'] = 'Android'    #设备系统
    desired_caps['platformVersion'] = '23'      #设备系统版本
    desired_caps['deviceName'] = 'Android Emulator'     #设备名称
    desired_caps['appPackage'] = 'com.example.android.contactmanager'
    desired_caps['appActivity'] = '.ContactManager'
    
    driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
    
    #   判断该apk是否安装, 结果为True/False
    is_installed = driver.is_app_installed('com.example.android.contactmanager')
    print(is_installed)
    driver.remove_app('com.example.android.contactmanager')
    is_installed = driver.is_app_installed('com.example.android.contactmanager')
    print(is_installed)
    driver.quit()

      3. 关闭应用

        关闭打开的应用,默认关闭当前打开的应用,所以不需要入参。这个方法并非真正的关闭应用,相当于按home键将应用置于后台,可以通过launchApp()再次启动。

    driver.closeApp()

      4. 启动应用

        你一定很迷惑,不是在初始化的配置信息已经指定了应用,脚本运行的时候就需要启动应用,为什么还要有这个方法去启动应用呢?当应用置于后台之后, 再次唤醒罢了.

        重新启动应用也是一个测试点,该方法需要配合closeApp()使用的。

    driver.closeApp();
    driver.launchApp();

      5. 检查应用是否安装

        检查应用是否已经安装。需要传参应用包的名字。返回结果为Ture或False。在安装卸载的代码中我们已经使用过该方法.

    driver.is_app_installed('com.example.android.contactmanager')

      6. 将应用置于后台

        将当前活跃的应用程序发送到后台。这个方法需要入参,需要指定应用置于后台的时长。

    driver.runAppInBackground(2);

      7. 应用重置

        重置当前被测程序到出始化状态。该方法不需要入参。

        其实就是先closeApp然后在launchAPP

    driver.resetApp();

        

  • 相关阅读:
    Zabbix 3.2.1 安装 Graphtree3.0.4 或 Graphtree3.2.x
    jquery-1
    AngularJS (1)
    css-2 (Text Font)
    css
    Java经验
    js经验
    mysql经验
    MySQL 函数
    jquery 效果
  • 原文地址:https://www.cnblogs.com/xiaowangzi1110/p/8880952.html
Copyright © 2011-2022 走看看