appium+python+安卓模拟器环境搭建和启动app实例
本文主要介绍在windows环境下搭建app自动化测试环境,具体步骤如下:
1.下载安卓sdk,网上很多资源

2.下载并安装安卓模拟器,官网上有

删除bin文件下的adb.exe和nox_adb.exe,再拷贝android sdk/platform-tools/bin.exe至模拟器安装文件夹bin下,分别命名adb.exe和nox_adb.exe,等于是替换这2个文件。
按住shift+鼠标右键,选择“在此处打开新窗口”,在控制台窗口中输入adb devices,出现以下结果,说明环境安装成功了。
有的文章写到需要先执行nox_adb.exe connect 127.0.0.1:62001,感觉不需要,也很矛盾,因为在adb devices之前还不知道设备名称,如果模拟器重启,需要执行nox_adb.exe connect 127.0.0.1:62001

3.安装需要测试的apk,拖动apk文件至模拟器中即可。

4.查看安装包信息,aapt dump badging e:\巡检安装包\v1.3.5.apk

5.配置appium桌面服务器
选择安装包,填写设备名称,点击启动按钮。

6.编写启动脚本
import time
from appium import webdriver capabilities = {}
# Android平台测试
capabilities['platformName'] = 'Android'
# 手机版本
capabilities['platformVersion'] = '5.1.1'
# 设备名称
capabilities['deviceName'] = '127.0.0.1:62001'
# app包名
capabilities['appPackage'] = 'com.hrg.ric.plus'
# app主入口activity
capabilities['appActivity'] = 'com.hrg.ric.activity.LoginActivity'
capabilities['unicodeKeyboard'] = 'True'
capabilities['resetKeyboard'] = 'True'
# 连接测试机所在服务器
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', capabilities) try:
# 通过andriod sdk自带工具uiautomatorviewer获取id
driver.find_element_by_id('com.hrg.ric.plus:id/et_email_phone').clear()
driver.find_element_by_id('com.hrg.ric.plus:id/et_email_phone').send_keys('136xxxxxxxx')
driver.find_element_by_id('com.hrg.ric.plus:id/et_password').clear()
driver.find_element_by_id('com.hrg.ric.plus:id/et_password').send_keys('')
driver.find_element_by_id('com.hrg.ric.plus:id/btn_login1').click()
except Exception as e:
print("no such element")
print(e) time.sleep(2)
#断开连接
driver.quit()
红色部分是需要根据具体情况进行替换的。
其中可以用android sdk自带的autonatorviewer工具(tools文件夹下)寻找各个控件的id。
点击第二个小按钮,会出现安卓模拟器界面,然就交替操作模拟器和此按钮来同步界面。


执行脚本

至此,已完成环境搭建和最简单的例子,后面主要工作就是编写代码。
appium+python+安卓模拟器环境搭建和启动app实例的更多相关文章
- Appium Python 一:环境搭建
安装Android SDK以及模拟器 由于Appium依赖于Android SDK,所以需要先安装SDK. 这里由于需要在Android模拟器上跑测试用例,所以同时需要安装Android 模拟器. 1 ...
- Appium+Python自动化 1 环境搭建(适用windows系统-Android移动端自动化)
一.安装并配置 java jdk ①下载 java jdk后 安装,安装完成后,配置环境变量 打开计算机->系统属性->高级系统设置->环境变量->新建(系统变量),如图所示: ...
- monkeyrunner之安卓开发环境搭建(二)
在上一篇文章-安卓开发环境搭建中,我们创建并启动了eclipse自带的安卓模拟器,该模拟器不仅启动慢,而且在使用过程中的反应速度也是出奇的差,经常出现卡机现象.为了解决这种现象,因此,我们又寻找到了更 ...
- appium移动端自动化测试环境搭建windows-appium-android
第一步:安装jdk 安装jdk(1.7版本以上) 安装完成设置jdk环境变量(百度查询) cmd命令下键入 java -version命令检查jdk是否安装成功且设置环境变量成功,如下图所示: 第二步 ...
- python+Eclipse+pydev环境搭建
python+Eclipse+pydev环境搭建 本文重点介绍使用Eclipse+pydev插件来写Python代码, 以及在Mac上配置Eclipse+Pydev 和Windows配置Ecli ...
- Python+Selenium+webdriver环境搭建(windows)以及相关资源下载链接
今天记录一下测试小菜鸟alter在测试入门的一点关于python+Selenium+webdriver环境搭建的经历以及资源分享.欢迎交流学习,批评指正. 一.Python的下载与安装 1.pytho ...
- Python之Django环境搭建(MAC+pycharm+Django++postgreSQL)
Python之Django环境搭建(MAC+pycharm+Django++postgreSQL) 转载请注明地址:http://www.cnblogs.com/funnyzpc/p/7828614. ...
- Python开发:环境搭建(python3、PyCharm)
Python开发:环境搭建(python3.PyCharm) python3版本安装 PyCharm使用(完全图解(最新经典))
- ubuntu12.04下安卓编译环境搭建总结
前言: 因为工作需要,经常要编译安卓下的动态库,公司有已经搭建好环境的服务器,但是第一自己想自己搭建一下了解一个整个过程,另外,公司的服务器也经常出现问 题,导致编译不了,所以就想自己搭建环 ...
随机推荐
- 原生js实现简单的下拉刷新功能
前言: 我们在浏览移动端web页面的时候,经常会用到下拉刷新. 现在我们用原生的js实现这个非常简单的下拉刷新功能. (温馨提示:本文比较基础,功能也很简单.写的不好的地方,希望大神提点一二.) 一. ...
- 阅读之Java多线程
Java多线程 用多线程只有一个目的,就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现. 多线程:指的是这个程序(一个进程)运行时产生了不止一个线程 并行与并发: 并行:多个cpu ...
- ELK——集中式日志系统
https://www.ibm.com/developerworks/cn/opensource/os-cn-elk/index.html 基本流程是 Shipper 负责从各种数据源里采集数据,然后 ...
- java8中规范的四大函数式接口
java8中规范的四大函数式接口: 1.Consumer<T> :消费型接口 void accept(T t); 2.Supplier<T> :供给型接口 ...
- Jmeter(三) 从上传图片来入门Jmeter
用Jmeter上传用户头像到人人网 先用抓包工具Fiddler把上传操作的报文抓取下来 开启Jmeter,在测试计划中创建一个线程组,取名为“图片上传” 再在线程组中创建一个HTTP请求 在请求报文中 ...
- Linux下不同组件运行命令
Spark优化配置 添加外包路径 1.1 vim $SPARK_HOME/conf/spark-defaults.conf spark.executor.extraClassPath file:/// ...
- AOI 设计
http://blog.csdn.net/zhanghefu/article/details/25833535 云风的Blog 并进行整理而写. AOI(Area Of Interest),中文就是感 ...
- kotlin实现流读取
在Java对流的读取是下面的那样,当前不要忘记流的关闭close. // java 代码void someFunc(InputStream in, OutputStream out) throws I ...
- 2018-2019-2 网络对抗技术 20165232 Exp 9 Web安全基础
2018-2019-2 网络对抗技术 20165232 Exp 9 Web安全基础 实验任务 本实践的目标理解常用网络攻击技术的基本原理,做不少于7个题目,共3.5分.包括(SQL,XSS,CSRF) ...
- ES6 变量的结构赋值用途(实用技巧)
1.交换变量的值 let x=1; let y=2; [x,y]=[y,x];//x=2,y=1 2.从函数返回多个值 函数只能返回一个值,如果要返回多个值,只能将它们放在数组或者对象里返回,有了解构 ...