# AppiumProject **Repository Path**: afraidbenq/AppiumProject ## Basic Information - **Project Name**: AppiumProject - **Description**: 手机UI自动化项目 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-09-30 - **Last Updated**: 2024-08-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AppiumProject ## 介绍 > 手机UI自动化项目技术积累 ## 如何使用 1. appium 环境搭建 > 详细步骤 https://blog.csdn.net/u013302168/article/details/122475805 2. 安装项目依赖 ``` # 安装所有依赖库 pip install -r requirements.txt # 导出第三方依赖包 pip freeze > requirements.txt ``` 3. 准备一台安卓手机或模拟器并配置app的desired_caps文件 ``` # 配置有线手机连接(红米4X为例) 设置-开发者模式-打开USB调试-插入SIM卡-允许USB安装应用-允许屏幕触控等等 adb devices 拿到 udid 后 配置config下该app的desired_caps文件platformVersion、udid、deviceName这3个参数 # Redmi Note 4X platformVersion: 6.0 udid: YS55VOYDS88SDQ9T deviceName: Redmi Note 4X ``` ``` # 配置无线手机连接(HUAWEI P20为例) 先有线连上手机 adb chromedriver -l 开启无线连接端口(默认5555) adb tcpip 5555 获取手机IP地址(手机和电脑要在同一个WiFi环境) adb shell ip -f inet addr show wlan0 或 直接手机WiFi查看 31: wlan0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 inet 10.1.101.229/23 brd 10.1.101.255 scope global wlan0 valid_lft forever preferred_lft forever 无线连接手机地址 adb connect 10.1.101.229 返回connected to 10.1.101.229:5555表示连接成功 adb devices 拿到 udid 后 配置config下该app的desired_caps文件platformVersion、udid、deviceName这3个参数 # HUAWEI P20 无线连接模式 platformVersion: 10.0.0 udid: CLB0218615004786 deviceName: 10.1.101.229:5555 ``` ``` # 配置模拟器(夜神模拟器为例) 设置-开发者模式-打开USB调试 adb connect 127.0.0.1:62001 adb devices 查看是否链接成功 配置config下该app的desired_caps文件platformVersion、udid、deviceName这3个参数 # 模拟器 platformVersion: 7.1.2 udid: 127.0.0.1:62001 deviceName: 127.0.0.1:62001 ``` ``` # 配置app的desired_caps.yaml文件 使用aapt命令获取apk包的appPackage和appActivity aapt dump badging C:\apk\life_v1.0.18_2020-10-31_18_preview6.apk appname: life_v1.0.18_2020-10-31_18_preview6.apk appPackage: com.fanda.chungoulife appActivity: com.ddz.component.welcome.WelcomeActivity ``` 4. 启动appium服务 ``` 复制script下的appium_server.bat文件到桌面运行 ``` 5. 编写view页面代码和运行main.py文件 ## ADB常用指令 ``` adb start-server 启动adb adb kill-server 关闭adb adb tcpip 5555 设置无线连接端口号 adb connect 192.168.1.5:5555 无线连接安卓设备 adb connect 127.0.0.1:62001 连接夜神模拟器默认端口为62001 adb devices 查看已连接的设备 adb install C:/User/Desktop/app-release.apk 安装app到安卓设备 adb logcat 抓日志,启动该命令后启动程序,可将抓取到的日志输出到pc adb shell am monitor 启动命令后,运行要获取包名的程序,就可以获取到程序包名 adb shell dumpsys meminfo 包名 查看对应的进程信息 adb shell dumpsys activity |find "Activity" 获取apk package 和 activity adb push test.flv /sdcard/test/good.flv 发送文件到手机目录 adb pull /sdcard/Android/data/apk/com.hexin.plat.android_4749.apk D:\AMD 从手机拷贝apk文件到电脑D盘AMD文件夹 aapt dump badging C:\Users\preview6.apk 获取apk package 和 activity ``` ## 常见问题 Q: adb connect 夜神模拟器后出现自动断开链接? appium日志报reconnect offline? A: 因为android-sdk上的adb和夜神模拟器上的adb版本不一致导致 解决方案:复制android-sdk上platform-tools的adb替换夜神模拟器安装目录上的adb.exe和nox_adb.exe,同时重命名adb.exe为adb_bf.exe, 重命名nox_adb.exe为nox_adb_bf.exe做备份用。 Q: 启动夜神模拟器后出现 adb devices 失效,关闭模拟器adb又正常了? A: 因为android-sdk上的adb和夜神模拟器上的adb版本不一致导致 解决方案:同上 Q: Appium连接报错Could not find ‘apksigner.jar‘? A: 这个应该是个BUG 解决方案:复制./build-tools/31.0.0/lib/apksigner.jar的apksigner.jar文件复制到platform-tools/下即可 Q: 代码启动后手机一直没有反应,appium初始化超时报错?日志一直显示 with no body? A: Appium uiautomator2 server 没起来 解决方案:使用adb uninstall io.appium.uiautomator2.server adb uninstall io.appium.uiautomator2.server.test 后重新启动appium来安装 参考: http://t.zoukankan.com/wagyuze-p-12880787.html Q: Appium启动失败,报Original error: Error getting device API level A:重启手机 Q: Appium解决每次启动时都安装setting和unlock app方法 A: https://www.cnblogs.com/chen-xia/articles/10632124.html