一、appium的特点
1、Appium主流的移动自动化工具,因为封装了XCUITest(IOS的自动化框架)和UIAutomator(安卓的自动化框架) ,所以支持android和ios的自动化
2、appium支持Web应用(Web app),支持原生应用(Native App)以及支持混合应用(Hybrid App)
3、appium支持多种语言:python,java,ruby等
4、总结借用一张图:
二、环境搭建
1. jdk(省略)
2.Android-sdk:http://www.androiddevtools.cn/,直接下载adt/Android studio完美集成,配置环境变量(省)
3.Python:
4.Node.js:
安装node.js时,选取5.0以上的版本,这样在安装appium的,npm会自动下载appium所需要的依赖包。版本过低会所以出现各种问题。
5.appium:
官网 : http://appium.io/
A、npm安装
npm install -g appium
B、安装
安装包安装:下载安装Appium-desktop(http://appium.io/ )客户端,双击dmg安装
或者:
> npm install -g appium #
get
appium
> npm install wd #
get
appium client
> appium & # start appium
> node your-appium-test.js
验证安装
使用appium-doctor校验Appium的依赖环境是否正确配置,使用下面命令安装appium-doctor
npm install -g appium-doctor
检测命令:appium-doctor --ios校验ios环境,使用appium-doctor --android校验安卓环境
6.Appium-python-Client:pip install Appium-Python-Client
7.pycharm
三、测试:
1、连接手机成功
2、启动服务器:命令行:appium & /或者直接启动appium桌面版
3、python测试代码
from appium import webdriver
import time
desired_caps = {
'platformName': 'Android',
'deviceName': '91QECPF5US7G',
'platformVersion': '5.1',
#将要测试app的安装包放到自己电脑上执行安装或启动,
如果不是从安装开始,则不是必填项,可以由下面红色的两句直接启动
'app':'C:\\Users\\shuchengxiang\\Desktop\\shoujibaidu_25580288.apk',
'appPackage': 'com.baidu.searchbox', #红色部分如何获取下面讲解
'appActivity': 'MainActivity',
'unicodeKeyboard': True, #此两行是为了解决字符输入不正确的问题
'resetKeyboard': True #运行完成后重置软键盘的状态
}
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
driver.find_element_by_id("com.baidu.searchbox:id/baidu_searchbox").click()
driver.find_element_by_id("com.baidu.searchbox:id/SearchTextInput").clear()
driver.find_element_by_id("com.baidu.searchbox:id/SearchTextInput").send_keys('appium测试')
driver.find_element_by_id("float_search_or_cancel").click()
driver.find_element_by_id("floating_action_button").click()
driver.quit()
获取appPackage和appActivity:
1、在之前配置的android SDK文件中找到这个程序,并双击打开
在连好手机的情况下点击这个按钮,界面上就会显示出当前手机的页面(如果是锁屏状态则显示黑屏)
界面加载出来之后,加入我们想定位百度一下的文本框,那么吧光标移动到上面点击一下即可,下图框出的部分为我们需要的信息:
通过这个信息我们知道,对于这个包,上方desired_caps字典中appPackage的值应填写为 com.baidu.search
而代码中的定位部分的id为com.baidu.searchbox:id/baidu_searchbox,或填写baidu_searchbox
例:driver.find_element_by_id("com.baidu.searchbox:id/baidu_searchbox").click()
2、appActivity的获取:
先让百度在手机中运行起来,然后在cmd中输入:adb shell dumpsys activity activities (获取当前所有的活动),搜索结果如下:
上方将所有进程显示出来,活动进程很多比较难找,这里知道package名称,可以在结果中进行查找,得到appActivity的值为MainActivity
关于这里的定位还有其他方法,详情参看大神的博客:http://blog.csdn.net/shyu1989/article/details/51730214
来源:oschina
链接:https://my.oschina.net/u/4325212/blog/3907913