day1初识appium
appium做移动端app自动化的工作原理大概是这样的:
我们写的case脚本,通过appium的webdriver来跟appium server交互,appium server 又通过sdk与device automation(UiAutomator1 or UiAutomator2)来跟 手机上的app来交互的。
移动端自动化架构可以分为四部分:
1.客户端,(安装appium客户端:pip install Appium-Python-Client)
2.服务端, appium server,运行脚本前要先启动appium server(安装Appium-windows-1.13.0.exe)
3.测试平台sdk,即androidsdk,主要是androidsdk\platform-tools\adb.exe命令(解压压缩包放到某一路径下,取设置环境变量ANDROID_HOME,然后在path路径追加platform-tools路径,在此之前需要安装jdk1.8,并且设置JAVA_HOME环境变量)
4.手机端自动化驱动程序(手机自带的)
怎么判断appium的环境搭建好了呢?
1.首先判断手机连接是否成功
adb devices -l
如果设备能够显示出来,则说明,手机连接成功
2.如何查看app的相关信息:
在手机端打开app的前提下,在windows端使用adb shell查找app相关信息
adb shell dumpsys activity recents | findstr intent={ * daemon started successfully intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.hpbr.bosszhipin/.module.launcher.WelcomeActivity}
3.创建webdriver:
from appium import webdriver
caps = {
'platformName': 'Android',
'plathformVersion': '10',
'deviceName': 'huaweimoblie',
# 手机上打开app之后,在电脑端输入下面命令找到app相关参数
# adb shell dumpsys activity recents | findstr intent={
'appPackage': 'com.hpbr.bosszhipin',
'appActivity': '.module.launcher.WelcomeActivity',
# 确保自动化之后不重置app
'noReset': True,
# 设置session的超时时间,单位秒,默认60s
'newCommandTimeout': 6000,
#unicodeKeyboard这个选项如果不设置,sendkeys不成功
'unicodeKeyboard': True,
# 设置底层驱动, 刚开始设置的是UiAutomator2,初次运行报错,后来改成UiAutomator1了就可以了
'automationName': 'UiAutomator1'
}
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', caps)
4. 启动appium server后运行脚本,如果返回的http状态码是200,并且脚本没有报任何错误,说明,环境搭建没有问题
接下来就该写具体的case了。
appium的元素定位跟selenium很像但又略微有些区别。后面再细说。
pip install Appium-Python-Client

浙公网安备 33010602011771号