appium 从名称来看是一个工具,但是它的工作过程会涉及到多款不同的工具组合,所以为了方便学习和理解。我们在此处将其分为三个部分:客户端 + 服务端 + 设备端,其中客户端我们可以理解为是我们编写脚本代码的地方,在我们课程就可以直白认为是 pycharm 。服务端就是我们就是负责接收客户端脚本的中间服务,设备端就是APP的载体,最终去运行具体的脚本代码,从而让APP去执行对应的动作
appium 是一款遵循webdriver 协议的CS架构,客户端只要能发送 Http 协议就可以将具体的数据传送到 服务端,此时服务端就会开启一个 4723端口来管理这个服务,当 appium 接收到客户端发送过来的数据之后会自动的进行解析。然后依据不同的设备系统平台往手机里注入 bootstarp.jar 或者 bootstarp.js 从而让手机APP可以去执行 客户端 发送过来的脚本命令。不论是哪种系统平台,客户端脚本执行完成之后就会将结果返回给 appium 服务端,然后服务端会将结果再返回给客户端
在线安装:
执行 pip install appium-python-client
python 第三方库下载地址:PyPI · The Python Package Index
安装和验证操作:
本地安装:
在对应的 python 第三方库集合里下载对应版本的 appium-python-client
执行 pip install 本地解压包所在路径
使用 appium 的核心目的就是让客户端的脚本可以在手机设备上去运行,所以我们首先需要做的事情就是建立客户端与服务端之间的连接。此时我们可以先通过appium UI 界面工具来连接客户端
启动雷神模拟器
使用 adb 连接模拟器设备
启动 appium 桌面版服务
在 appium 桌面版中进行具体的参数设置
https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md?【desired capability github 仓库地址】
我们当前课程讲解的是 python 自动化测试,所以我们需要新建 python 项目来存放我们的脚本代码,需要处理的是我们之前安装过一个 appium-python-client 的webdriver 库,这个库文件被我们使用 pip install 的方式安装在了自已本地的python 解析器当中。因此在新建 python 项目的时候我们需要将对应的python 解析器指向本地的python.exe ,不然pycharm 会自动生成一个虚拟的解析器依赖,但是这个虚拟的依赖里是没有我安装的 webdriver 库
打开 pycharm
新建具体的python 项目,然后设置对应的配置
# -*- coding=utf-8 -*-
# 导入python需要的 webdriver 库
from appium import webdriver
# 定义一个空字典来存放具体的配置参数
desired_caps = dict()
# 书写具体的参数
desired_caps["platformName"] = "android" # 当前的系统平台名称
desired_caps["platformVersion"] = "5.1.1" # 当前连接设备的 android 版本
desired_caps["deviceName"] = "emulator-5554" # 当前已连接设备的名称
desired_caps["appPackage"] = "com.android.settings" # 被测试 APP 的包名
desired_caps["appActivity"] = ".Settings" # 被测试 APP 的启动名
# 获取对应的连接
driver = webdriver.Remote( "http://localhost:4723/wd/hub",desired_caps )
执行结果