实验简介

  对于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'] = '' #设备系统版本
desired_caps['deviceName'] = 'Android Emulator' #设备名称
# 测试apk包的路径
apk_path = r'E:\Python\APPTest\ContactManager.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'] = '' #设备系统版本
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();

    

最新文章

  1. yum阿里云镜像源
  2. python读取excel并制表输出
  3. JS回车键处理
  4. Android官方提供的支持不同屏幕大小的全部方法
  5. Entity Framework(一) 映射
  6. <译>Selenium Python Bindings 6 - WebDriver API
  7. 并查集(Java实现)
  8. C++的IO处理中的头文件以及类理解(2)<sstream>头文件
  9. Appium环境搭建(一)
  10. HTML 第十三章总结
  11. WPF简单数据绑定
  12. Ubuntu 配置双网卡的问题
  13. 【Android Studio】为Android Studio设置HTTP代理
  14. Atom-同步设置
  15. IOS 沙盒与清除缓存
  16. 各浏览器禁用某网站JS脚本的方法 【转】
  17. vue 组件 模板input双向数据数据
  18. Python 随机数函数
  19. dwr框架使用总结——简单示例
  20. chrome 49 版本bug: flex父元素设置flex:1 , 子元素用height:100%无法充满父元素

热门文章

  1. windows消息的循环机制
  2. 7.Nginx_Keepalived高可用配置
  3. 数据结构---->数组
  4. IntelliJ IDEA和Eclipse快捷键对比总结
  5. (六) Java数据库
  6. 洛谷P3264 [JLOI2015]管道连接 (斯坦纳树)
  7. Wuss Weapp 微信小程序 UI 组件库
  8. 【jqGrid】翻页获取选中的值
  9. Java-五种线程池,四种拒绝策略,三种阻塞队列(转)
  10. 02 Vue介绍与安装,指令系统 v-*、音乐播放器