Appium是C/S模式的应用,Server端运行时会有端口暴露,默认是4723,Client端一般需要是python编写代码来操作,操作时调用Server端的接口服务。
npm install appium -g # -g代表全局安装
如果安装失败,执行以下命令后继续安装
npm cache clean --force
安装完成后在cmd中运行一下appium看看:
C:\Users\Tilyp>appium
[Appium] Welcome to Appium v1.18.1
[Appium] Appium REST http interface listener started on 0.0.0.0:4723
安装成功
我这里是通过Android Stuido来安装Android sdk,网址如下:https://developer.android.google.cn/studio/
安装完之后长这样(我还试了一下 Android开发,嗯哼哼!!!)
点击菜单栏里的File->Settings,具体流程如下:
进来之后点 Android SDK:
把我勾选的你个都安装一下
安装需要等待一段时间,全部安装完这些,我们的Appium Server的安装算是完成了,但是还需要配置环境变量,主要就是Android SDK 和Android SDK Tools,
Android SDK的目录在 C:\Users\{用户名}\AppData\Local\Android\Sdk目录下:
Android SDK Tools 目录包含在Android SDK中,分别在platform-tools目录和tools目录中,我们要用的adb命令就在platform-tools目录中,app界面解析工具uiautomatorviewer就在tools中
打开环境变量,将这两个路径加到Path中,
接着配置ANDROID_HOME,新建环境变量,配置如图:
配置ANDROID_SDK_HOME,新建环境变量,配置如图:
打开终端cmd运行一下adb命令试试,如果可以运行则证明配置成功,如果不行,那就检查一下。
我们这里用Python来做测试程序的开发语言,安装客户端命令如下:
python -m pip intall appium-python-client
如果太慢,可以利用豆瓣,清华等源来加速
python -m pip install -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/simple appium-python-client
使用Appium 打开QQ
配置手机,我用的华为,华为要开启开发者模式,打开设置->关于手机->版本号,找到版本号,连续点它七下就开启了,
设置USB调试 打开设置->系统和更新->开发人员选项->USB 调试 (打开它),
将手机通过USB连接电脑,USB连接模式设置为“传文件”
打开cmd,输入adb devices 开看是否连接上
C:\Users\Tiltp>adb devices
List of devices attached
TILYP18A10008327 device
上图表示已连上,启动Appium,初次会让手机安装两个APP,正常安装就可以了,遇到不信任时选择信任,
我们开始撸代码:
"""
@Author: Tilyp
@Date: 2020/8/22
@Describe:
"""
from appium import webdriver
import time
import os
# server 启动参数
desired_caps = {}
# 设备信息
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '10'
desired_caps['deviceName'] = 'TILYP18A10008327'
# app信息
desired_caps['appPackage'] = 'com.tencent.mobileqq'
desired_caps['appActivity'] = '.activity.SplashActivity'
# 声明驱动对象
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
platformName是系统名称:Android和IOS(要大写)
platformVersion是系统版本号,可以在关于手机里找到
deviceName是手机设备名称, 可以通过adb devices找到
appPackage 和 appActivity 是APK应用的包名和launcherActivity, 查找方式如下:
adb logcat| find "START"
我这里以QQ为例,运行上述命令,然后在手机上打开QQ,观察上述命令的输出,
找 ActivityTaskManager类型的日志输出,cmp的字符串中就是我们要找的数据,“/”前边的就是appPackage,“/” 后边的就是appActivity,我们上图中已经找好了,所以直接运行,你会发现,手机QQ竟然可以启动了,真乃其事耶!