1.原理
自动化脚本——发送指令——appiumsrever——转发指令——AndroidSDK环境—操作手机终端——被测手机终端(模拟机/真机)
2.环境准备
- 安装Java,配置环境变量
- 安装Androidsdk,配置环境变量
- 安装appium server
- 安装夜神模拟器
- 安装appium-python-client
1.下载Java环境(Java8)
配置环境变量
点击“确认”,一直点击确认,关闭所有系统设置窗口
win+r 打开窗口,输入Java -version 查看环境是否配置成功
需要配置两个Java环境的,可以使用下面的方法
由于电脑上Jenkins 需要Java11 的环境 ,而AndroidSDK需要Java8 ,所以我配置了两个环境
通过%JAVA_HOME%内的参数改变环境变量
2.下载AndroidSDK,并配置环境变量
下载地址:https://www.androiddevtools.cn
下载版本
下载完成后解压到没有中文的目录下
运行
运行后如下图,选择下方✔的工具,进行安装,安装过程比较缓慢
配置adb环境变量
新建系统变量--ANDROID_HOME
path添加系统变量
一直点击“确认”,直到关闭高级设置,验证配置是否成功
win+r 输入--adb,出现下方信息,证明安装成功
3.安装appium server
4. 安装夜神模拟器
夜神安卓模拟器-安卓模拟器电脑版下载_安卓手游模拟器_手机模拟器_官网
下载后需要打开开发者选项
连续5次点击版本号
出现“开发者选项”这样就是开启了
通过adb连接模拟器验证 adb connect 127.0.0.1:62001
查看连接的设备 adb devices
查看连接的设备信息 adb devices -l
获取包名--1--adb shell dumpsys window | findstr mCurrentFocus
模拟器打开app-命令框输入指令,只能查到包名,不能获取启动页信息
com.kugou.android 就是包名
获取包名和启动页2-- adb logcat ActivityManager:I | find "cmp"
/前面是包名,后面是启动页
5.python中安装appium,(调用客户端库和 Appium Server 进行通信)
通过指令---pip install appium-python-client
环境配置完成后,就可以写脚本测试
3.测试--打开酷狗音乐
编写以下代码,然后运行
from appium import webdriver
import time
# 连接移动设备所必须的参数
desired_caps = {}
# 当前要测试的设备的名称
desired_caps["deviceName"] = "127.0.0.1:62001"
# 系统
desired_caps["platformName"] = "Android"
# 系统的版本
desired_caps["platformVersion"] = "7.1.2"
# 要启动app的名称(包名)
desired_caps["appPackage"] = "com.kugou.android"
# 要启动的app的哪个界面
desired_caps["appActivity"] = ".app.splash.SplashActivity bnds"
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub",desired_capabilities=desired_caps)
time.sleep(10)
print(driver.page_source)
# 关闭app
driver.close_app()
# 释放资源
driver.quit()
dirveri中地址为固定的,4723是appium首页的端口号
运行python ,然后能打开酷狗就证明是成功了!
可喜可贺,运行成功啦!!
appium日志分析
- 自动化脚本发送HTTP请求,请求参数:终端请求参数
- 创建会话
- 确认终端设备是否连接,并确认安卓版本,确认设置参数与终端参数是否一致
- appium会推送一个包“appiumBootstrap.jar”,模拟器上 api包 :appium server指令进行接受,操控手机端
- 相应的http请求
- 下一http请求
注意!!
之前运行过程中一直报错
尝试杀掉占用的端口号,没用,最后是通过文件替换解决的
经查找后通过 把将SDK中的adb.exe文件复制到夜神安装目录中,然后要将夜神中的nox_adb.exe文件内容也换成SDK中adb文件的内容,然后就运行成功了
应该是版本号不一致造成的,如果大家在运行中出现这种的报错,可以先替换sdk
总之, 大功告成,接下来就可以开启app自动化学习之路了!!
第一次写,记录练习的步骤,若有错误之处,还请小伙伴们指正哟,谢谢!
参考博主:Python+Appium从安装到第一个小练习(保姆级别教程)_桂圆干龙眼的博客-CSDN博客