一.准备条件:
实现逻辑:Test Script ——>Appnium server——>UI Automator(adb,etc,苹果XCTest)——>Device
1.安装appium python client包 pip install Appium-Python-Client(Appnium库依赖selenium库,因此会自动安装selenium)
2.安装appnium server(基于js开发的)——Appnium Desktop
3.安装Android SDK(Appnium Server 依赖Android SDK)——Android Studio(Android应用的开发环境) 注 意:设置adb所在路径为环境变量,设置SDK目录为系统环境变量,名称为ANDROID_HOME
4.安装JDK,以备查看界面元素所需,设置SDK目录为系统环境变量,名称为JAVA_HOME
5.连接真实设备,进入开发者模式,打开usb调试
6.在cmd下输入adb devices -l 确认设备已连接
7.准备测试app应用,运行appnium server,启动被测的app运行环境(测试app以开发者头条为例)
二.代码:
from appium import webdriver
import time,traceback
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '8'
desired_caps['deviceName'] = 'test'
desired_caps['app'] = "D:\Program Files\\toutiao.apk"
#在cmd下到Android sdk build-tools\30.0.0目录下查看:
#aapt.exe dump badging "D:\Program Files\toutiao.apk" | findstr package
#aapt.exe dump badging "D:\Program Files\toutiao.apk" | findstr activity
desired_caps['appPackage'] = 'io.manong.developerdaily'
desired_caps['appActivity'] = 'io.toutiao.android.ui.activity.LaunchActivity'
desired_caps['unicodeKeyboard'] = True
desired_caps['noReset'] = True
desired_caps['newCommandTimeout'] = 6000
#启动Remote RPC(Remote Procedure Call Protocol)
driver = webdriver.Remote('http://localhost:4723/wd/hub',desired_caps)
try:
driver.implicitly_wait(10)
driver.find_element_by_id('io.manong.developerdaily:id/tab_bar_plus').click()
time.sleep(1)
driver.find_element_by_id('io.manong.developerdaily:id/btn_email').click()
time.sleep(1)
#定位用户名,密码输入登录信息
user = driver.find_element_by_id('io.manong.developerdaily:id/edt_user')
user.send_keys('用户名')
pwd = driver.find_element_by_id('io.manong.developerdaily:id/edt_password')
pwd.send_keys('密码')
time.sleep(2)
#定位登录,执行登录操作
button = driver.find_element_by_id('io.manong.developerdaily:id/btn_login')
button.click()
except:
print(traceback.format_exc())
input('**** Press to quit ****')