搭建appium自动化测试环境
注意:请使用不用的手机测试,appium会把微信app重新安装,记录都会清除
一、安装Java JDK
JDK下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html
安装好后添加系统环境变量
二、安装Node.js
Node.js下载地址:https://nodejs.org/en/download/current/
cmd终端输入第一个命令 node -v,输出下面的信息
三、安装Appium server
https://github.com/appium/appium-desktop/releases (这个是官网的地址,按下图下载最新的安装即可)
打开appium
四、安装Android SDK
下载地址: https://www.androiddevtools.cn/
二选一,一个zip是免安装解压版
我选择默认的sdk build-tools,Android SDK Platform-tools安装
配置环境变量
1.新建系统变量
ANDROID_HOME=D:\Android\android-sdk
2.添加系统变量
把platform-tools及tools添加到系统环境变量,变量值(路径)之间使用分号隔开,两个变量值分别为:%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;或者直接添加绝对路径
使用adb命令
五、安装Appium Client
打开CMD执行命令 npm install -g appium-doctor 安装appium-doctor
cmd执行 appium-doctor命令,查看环境是否安装成功
到此成功!
六、连接安卓手机
将安卓用数据线与电脑链接。需要打卡开发者模式。
打开USB调试,待电脑自动完成驱动安装后,输入adb devices即可查看到你的测试机ID就是连上了。
输入adb devices -l (不是数字1,是小写 L )
成功后,打开appium
platformName:平台名称
deviceName:设备名称,就是刚才的adb devices -l中mode后面就是
appPackage:app包名
appActivity:app活动名
有个简单的方法便可以获得appPackage和appActivity:https://blog.csdn.net/mtbaby/article/details/78676477
{"platformName":"Android",
"deviceName":"MI_6",
"appPackage":"com.tencent.mm",
"appActivity":"com.tencent.mm.ui.LauncherUI"}
start sessions后
运行后出错了
需要打开usb安装
Android-sdk的版本安装错了,需要安装Android9.0的
七、python连接appium
#安装 pip install appium-python-client
from appium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By PLATFORM = 'Android' deviceName = 'MI_6' app_package = 'com.tencent.mm' app_activity = 'com.tencent.mm.ui.LauncherUI' driver_server = 'http://127.0.0.1:4723/wd/hub' class Moments(): def __init__(self): self.desired_caps = { 'platformName': PLATFORM, 'deviceName': deviceName, 'appPackage': app_package, 'appActivity': app_activity } self.driver = webdriver.Remote(driver_server, self.desired_caps) self.wait = WebDriverWait(self.driver, 300) def login(self): print('点击登陆按钮——————') login = self.wait.until(EC.presence_of_element_located((By.ID, 'com.tencent.mm:id/d75'))) login.click() def main(self): self.login() M = Moments() M.main()