appium可以说是做app最火的一个自动化框架,它的主要优势是支持android和ios,另外脚本语言也是支持java和Python
一、安装部署jdk环境,设置好JAVA_HOME变量
二、android-sdk下载安装
先去官网 下载最新d的sdk安装程序,点击SDK Manager.exe 下载最新的包,可通过工具-设置,添加下载代理。
设置ANDROID_HOME,对应变量值为:D:\install\android-sdk-tool(sdk安装路径),path添加两个变量,分别对应sdk目录下的tools和platform-tools, path里面添加D:\install\android-sdk-tool\tools和D:\install\andsdk-tool\platform-tools
cmd中输入adb,看是否出现正确信息,否则安装不成功
三、连接手机
cmd中输入adb devices 如果正常显示手机信息,说明连接成功
四、Appium的安装与部署
参考https://cuiqingcai.com/5407.html
首先,需要安装Appium。Appium负责驱动移动端来完成一系列操作,对于iOS设备来说,它使用苹果的UIAutomation来实现驱动;对于Android来说,它使用UIAutomator和Selendroid来实现驱动。
同时Appium也相当于一个服务器,我们可以向它发送一些操作指令,它会根据不同的指令对移动设备进行驱动,以完成不同的动作。
安装Appium有两种方式,一种是直接下载安装包Appium Desktop来安装,另一种是通过Node.js来安装,下面我们介绍一下这两种安装方式。
Appium Desktop
Appium Desktop支持全平台的安装,我们直接从GitHub的Releases里面安装即可,链接为https://github.com/appium/appium-desktop/releases
Windows平台可以下载exe安装包appium-desktop-Setup-1.1.0.exe,Mac平台可以下载dmg安装包如appium-desktop-1.1.0.dmg,Linux平台可以选择下载源码,但是更推荐用Node.js安装方式。
安装完成后运行,看到如图示。
Node.js
首先需要安装Node.js,具体的安装方式可以参见http://www.runoob.com/nodejs/nodejs-install-setup.html,安装完成之后就可以使用npm
命令了。
接下来,使用npm
命令全局安装Appium即可:
npm install –g appium
此时等待命令执行完成即可,这样就成功安装了Appium。
五、Android开发环境配置
如果我们要使用Android设备做App抓取的话,还需要下载和配置Android SDK,这里推荐直接安装Android Studio,其下载地址为https://developer.android.com/studio/index.html?hl=zh-cn。下载后直接安装即可。
然后,我们还需要下载Android SDK。直接打开首选项里面的Android SDK设置页面,勾选要安装的SDK版本,点击OK按钮即可下载和安装勾选的SDK版本
六、appium获取appPackage和appActivity
参考https://blog.csdn.net/mtbaby/article/details/78676477
appPackage和appActivity 进行appium自动化测试非常重要的两个参数,我们所测试的APP不同,这两个参数肯定也是不一样的。那如何快速的获取这APP的这两个参数呢
方法一(最简单有效的方法)
通过cmd命令,前提是先打开手机中你要获取包名的APP
1. adb shell
2. dumpsys activity | grep mFocusedActivity
方法二(第二简单方法)
如果你安装了Appium,进入设置页,选择APK 路径,下面就会显示包名和Activity名称
方法三:
apk文件解压,查看AndroidManifest.xml文件,在里面搜索:manifest 对应的就是appPackage,
搜索:activity对应的就是appActivity,
方法四:
这种方法也比较简单,主要针对你没有.apk包的情况,比如Android原生自带的APP(计算器、通讯录、短信…),可以通过adb 命令。
1,打开APP。
2,执行> adb logcat>D:/log.txt
3, 胡乱的对APP做一些操作。
4, Ctrl+c 结束adb命令。
5, 打开log.txt文件,搜索:Displayed
六、appium的使用
打开appium,
platformName:Android,固定写法
deviceName:设备名称,就是刚才的adb devices -l中mode后面就是
appPackage:app包名
appActivity:app活动名,通过使用adb logcat | grep -i activitymanager ,然后再点击app,就能捕获到启动的app的如上信息了
automationName:固定写法Appium
platformVersion:这个是手机的Android的版本
autoAcceptAlerts: true , 默认选择接受弹窗的条款,有些app启动的时候,会有一些权限的弹窗,例如如下
noReset:true, 每次appium对app进行操作的时候,为了不保存修改的数据和app设置的内容而不影响下次使用,需要设置为true
有个简单的方法便可以获得appPackage和appActivity
start sessions后
七、python对接Appium
安装 pip install Appium-Python-Client
以下是模拟进入vivo app的界面
from appium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By PLATFORM='Android' deviceName='HUAWEI_P7_L09' app_package='com.tencent.mm' app_activity='.ui.LauncherUI' driver_server='http://127.0.0.1:4723/wd/hub' class Moments(): def __init__(self): self.desired_caps={ 'platformName':PLATFORM, 'deviceName':deviceName, 'appPackage':app_package, 'appActivity':app_activity} self.driver=webdriver.Remote(driver_server,self.desired_caps) self.wait=WebDriverWait(self.driver,300) def login(self): print('进入登录界面——————') login=self.wait.until(EC.presence_of_element_located((By.ID,'com.bbk.appstore:id/wlan_choose_page_btn
'))) login.click() def main(self): self.login() M=Moments() M.main()
参考:https://zhuanlan.zhihu.com/p/41311503