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'] = '' #设备系统版本
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();
Appium移动自动化测试(五)之应用操作的更多相关文章
- Appium移动自动化测试(三)--安装Android模拟器(转)
Appium移动自动化测试(三)--安装Android模拟器 2015-06-08 10:33 by 虫师, 30828 阅读, 9 评论, 收藏, 编辑 当Android SDK安装完成之后,并不意 ...
- Appium移动自动化测试(四)--one demo
继续更新. -------------------------------------------- 第四节 安装Appium Client Appium Client是对webdriver原生ap ...
- Appium移动自动化测试(四)--one demo(转)
Appium移动自动化测试(四)--one demo 2015-06-15 20:41 by 虫师, 40514 阅读, 34 评论, 收藏, 编辑 继续更新. ------------------- ...
- Appium移动自动化测试(二)--安装Android开发环境(转)
Appium移动自动化测试(二)--安装Android开发环境 2015-06-04 17:30 by 虫师, 35299 阅读, 23 评论, 收藏, 编辑 继续Appium环境的搭建. 第二节 ...
- Appium移动自动化测试(一)--安装Appium(转)
Appium移动自动化测试(一)--安装Appium 2015-05-30 17:48 by 虫师, 70668 阅读, 13 评论, 收藏, 编辑 Appium 自动化测试是很早之前就想学习和研究的 ...
- 手机自动化测试:搭建appium手机自动化测试开发环境
手机自动化测试:搭建appium手机自动化测试开发环境 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大 ...
- mac上搭建appium+IOS自动化测试环境(一)
阅读须知 由于OS X系统最近才开始接触,所以有些东西也不是很清楚,这里只提供方法不提供原理,能解释清楚的我也会尽量解释.可能也有一些地方说的不严谨或有错的,还望大家指点一二. 实验环境 操作系统: ...
- Python Appium 滑动、点击等操作
Python Appium 滑动.点击等操作 1.手机滑动-swipe # FileName : Tmall_App.py # Author : Adil # DateTime : 2018/3/25 ...
- appium+python自动化测试
appium+python自动化测试 标签(空格分隔): appium 获取APP的包名 1.aapt即Android Asset Packaging Tool,在SDK的build-tools目录下 ...
随机推荐
- centos7初始化bashshell脚本
centos7初始化bashshell脚本 #!/bin/bash if [[ "$(whoami)" != "root" ]]; then echo &quo ...
- 查看是否用GPU跑的TensorFlow程序
查看是否用GPU跑的TensorFlow程序 第一种方法,直接输出日志法(推荐) import tensorflow as tf sess = tf.Session(config=tf.ConfigP ...
- 【NOIP2012】同余方程
原题: 求关于xx的同余方程ax≡1(mod b)的最小正整数解. 裸题 当年被这题劝退,现在老子终于学会exgcd了哈哈哈哈哈哈哈哈 ax≡1(mod b) => ax=1+by => ...
- hbase单机搭建
一.下载 https://hbase.apache.org/downloads.html 2.1.3版本 解压,拷贝到文件夹 /hbase/hbase-2.1.3 设置HBASE_HOME环境变量,把 ...
- HelloWorld编写过程中注意事项
一.package关键字 * package表示当前代码所属的包(package),是一种组织结构.其他package通过包名调用这个包下内容* package是必须的,每个文件的package必须存 ...
- 关于Spring MVC写的不错的几篇博客
关于Spring MVC写的不错的几篇博客 https://my.oschina.net/kolbe/blog/509810 https://www.cnblogs.com/sunniest/p/45 ...
- (九)zabbix监控web应用
1)web应用监控介绍 使用zabbix自带的web场景可以监控url的状态码,响应时间,url的下载速度,非常的棒 思路:定义模板-->创建应用集--->定义web场景--->定义 ...
- Atcoder CODE FESTIVAL 2016 Final G - Zigzag MST[最小生成树]
题意:$n$个点,$q$次建边,每次建边选定$x,y$,权值$c$,然后接着$(y,x+1,c+1),(x+1,y+1,c+2),(y+1,x+2,c+3),(x+2,y+2,c+4)\dots$(画 ...
- vue组件开发练习--焦点图切换
1.前言 vue用了有一段时间了,开发的后台管理系统也趋于完善,现在时间比较算是有点空闲吧!这个空闲时间我在研究vue的另外的一些玩法,比如组件,插件等.今天,我就分享一个组件的练手项目--焦点图切换 ...
- fastclick无需对IOS11及以上做处理
// 解决click点击300毫秒延时问题 (IOS11及以上无需处理) import FastClick from 'fastclick' const device = navigator.user ...