一、Appium的工作原理:
(1) 客户端代码与appiummserver建立连接session,并传递caps配置信息
(2)Appiumserver检查配置信息是否符合要求
(3)利用adb工具检查当前连接的移动设备
(4)安装appium-setting与uiautomator2到被测手机(首次运行脚本时会安装到对应手机上去)
(5)手机启动appium-settings作为监听服务,用于appium-server进行通信
(6)uiautomator2启动被测app(代码指定了底层驱动为UI2,也可手动修改为UI1)
二、操作步骤:(安卓手机为例)
(1)先在电脑安装appium
(2)下载并配置好androidsdk环境 (下面说到的adb命令与此相关)
大致画了一张图:
图片流程讲解:
写好python脚本-->启动appium--->使用adb 命令连接上手机---->运行脚本--->第一次运行脚本的时候(针对手机来说)会在手机上安装两个app,就是上图的appium-setting(可在桌面上查看)、还有一个uiautomator(搜索的时候可查看)---->然后这两个app就会驱动对应的手机app执行脚本代码
三、驱动配置参数讲解:
from appium import webdriver
#准备自动化配置信息 myCaps={ 'platformName': 'Android', #移动设备平台 Android/IOS 'plathformVersion': '9', #自己手机的版本号,写整数即可 'deviceName': 'demo', #设备名称,自己起 'appPackage': 'cn.xuexi.android', #要测试的app信息,如何知道值下面讲解 'appActivity': 'com.alibaba.android.rimet.biz.SplashActivity', 'noReset': True, #自动化后不重置app 'newCommandTimeout': 1000, #设置session的超时时间、单位为秒 'automationName': 'UiAutomator2', # 底层驱动 ,如果启动不成功可以改成UiAutomator1 'unicodeKeyboard':True, #修改手机的输入法 Ui2不需要设置 'resetKeyboard':True #自动化结束之后将输入法还原(有可能会还原失败) }
#启动
driver= webdriver.Remote('http://127.0.0.1:4723/wd/hub',myCaps)
以上参数appPackage以及appActivity键对应的值获取方式:先在手机上代开待测试的app---->打开电脑cmd终端--->输入命令:adb shell dumpsys activity recents | findstr intent={
对应的值如下: