少年乘勇气,百战过乌孙。这篇文章主要讲述在Mac OSX 上配置Appium+Android自动化测试环境相关的知识,希望能为你提供帮助。
前提准备开始正文之前,你需要准备好一些基本条件:
- 安装好Mac OSX 操作系统的设备
- 能够访问中国局域网以外资源的方法(没有也行,但很痛苦)
- 已经安装好 homebrew
- 已经安装好 python3.x
- 已经安装好 java Runtime Environment
- Android Studio - 完整的开发以及测试工具,需要梯子
- Android SDK - 足够完成自动化测试,通过homebrew安装
brew
install
android-sdk
【在Mac OSX 上配置Appium+Android自动化测试环境】在国内使用brew可以事先配置好国内源,速度会快很多。
如果有梯子建议选择Android Studio,安装方法很简单,官网下载后一路Next,启动后会让你把SDK等等一系列依赖都装好,一步到位。
实际安卓Android Studio比较好,一步到位,可以到sdk等都安装好,安卓studio安装过程后启动时会出现proxy错误,这里点击取消,然后安装完,打开后,在sdk manager中设置代理
Android SDK 在线更新镜像服务器资源:
大连东软信息学院镜像服务器地址:
- http://mirrors.neusoft.edu.cn 端口:80
北京化工大学镜像服务器地址:
- IPv4: http://ubuntu.buct.edu.cn/ 端口:80
- IPv4: http://ubuntu.buct.cn/ 端口:80
- IPv6: http://ubuntu.buct6.edu.cn/ 端口:80
上海GDG镜像服务器地址:
- http://sdk.gdgshanghai.com 端口:8000
亲测第一个好用
准备Android 模拟器或者使用真机如果SDK已经安装完毕,应该可以使用adb命令来检查可用的模拟器或者已经连接到电脑上的实体手机。
adb devices
如果不知道adb工具在哪,可以先在命令行里通过find搜索。
find /Users -name adb# 搜索用户目录
find / -name adb# 搜索全盘
找到之后可以把 adb 目录加入PATH,方便后续使用。
安装AppiumAppium 可以通过多种方式安装。
方式一:使用 NodeJS 安装
首先通过brew安装nodejs:
brew install
node
配置国内源,在个人目录下新建一个.npmrc文件,写入:
registry=https://registry.npm.taobao.org/
开始安装Appium:
npm install -g appium
npm install -g appium-doctor
Appium-doctor 可以帮你诊断测试环境,建议安装。
方式二:下载Appium桌面版安装
官方的Appium桌面安装包可以从github下载,需要梯子。
- https://github.com/appium/app...
安装 Appium-Client本文只讨论Python实现的Appium测试,所以你只需要允许以下命令:
pip install Appium-Python-Client
如果你已经安装了appium-doctor,那么你只要运行appium-doctor命令就可以知道你还需要设置哪些环境变量,
[email protected] ~> appium-doctor info AppiumDoctor Appium Doctor v.1.4.3 info AppiumDoctor ### Diagnostic starting ### info AppiumDoctor? The Node.js binary was found at: /usr/local/bin/node info AppiumDoctor? Node version is 7.10.0 info AppiumDoctor? Xcode is installed at: /Applications/Xcode.app/Contents/Developer WARN AppiumDoctor? Xcode Command Line Tools are NOT installed! info AppiumDoctor? DevToolsSecurity is enabled. info AppiumDoctor? The Authorization DB is set up properly. WARN AppiumDoctor? Carthage was NOT found! info AppiumDoctor? HOME is set to: /Users/tobyqin info AppiumDoctor? ANDROID_HOME is set to: /Users/tobyqin/Library/Android/sdk/ info AppiumDoctor? JAVA_HOME is set to: /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home info AppiumDoctor? adb exists at: /Users/tobyqin/Library/Android/sdk/platform-tools/adb info AppiumDoctor? android exists at: /Users/tobyqin/Library/Android/sdk/tools/android info AppiumDoctor? emulator exists at: /Users/tobyqin/Library/Android/sdk/tools/emulator info AppiumDoctor? Bin directory of $JAVA_HOME is set info AppiumDoctor ### Diagnostic completed, 2 fixes needed. ### info AppiumDoctor info AppiumDoctor ### Manual Fixes Needed ### info AppiumDoctor The configuration cannot be automatically fixed, please do the following first: WARN AppiumDoctor - Please install Carthage. Visit https://github.com/Carthage/Carthage#installing-carthage for more information. info AppiumDoctor ### info AppiumDoctor info AppiumDoctor Bye! Run appium-doctor again when all manual fixes have been applied!
其实你不一定需要把通过所有检查项,如果只是为了完成Android的Appium测试,只要确保ANDROID_HOME 和 JAVA_HOME 正确配置,另外SDK Tools 和Platform Tools都加入PATH就基本完成了。可以参考我个人目录下的.bash_profile设置:
export ANDROID_HOME=~/Library/Android/sdk/ export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Homeexport PATH=~/bin:$PATH:/usr/local/bin:$ANDROID_HOME/platform-tools/:$JAVA_HOME/bin
开始编写自动化测试
from appium import webdriverdesired_caps = {} desired_caps[‘platformName‘] = ‘Android‘ desired_caps[‘platformVersion‘] = ‘7.1.1‘ desired_caps[‘deviceName‘] = ‘Android Emulator‘ desired_caps[‘appPackage‘] = ‘com.android.dialer‘ desired_caps[‘appActivity‘] = ‘DialtactsActivity‘driver = webdriver.Remote(‘http://localhost:4723/wd/hub‘, desired_caps) driver.find_element_by_id(‘com.android.dialer:id/search_box_collapsed‘).click() search_box = driver.find_element_by_id(‘com.android.dialer:id/search_view‘) search_box.click() search_box.send_keys(‘hello toby‘)
推荐阅读
- appium 测试模拟器时输入adb devices显示 unauthorized
- appium Parameters were incorrect
- 关于在 App Store 中将 APP 下的公司名称改成英文或者中文的相关流程
- Android异步任务AsyncTask
- android sdk manager更新地址
- Unity(Android版)和Android原生APP简单实现版本更新
- SpringBoot Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFact
- 解决找不到mapper.xml文件的问题
- Android 异步加载神器Loader全解析