python自动化测试adb+instruments

本文介绍了一系列针对Android和iOS平台的应用调试方法,包括如何获取应用的PID、UID、流量信息、CPU占用率、内存使用情况、电池消耗等。此外还提供了日志抓取、文件替换、性能测试等方面的实用命令。

Android:

1.获取正在执行app的pid

adb -s device_id shell ps | grep package_name

2.获取app的uid

adb -s device_id shell dumpsys package package_name | grep userId=

3.获取app的流量

adb -s device_id shell cat /proc/uid_stat/uid/tcp_rcv(tcp_snd)

4.当前正在运行的app的activity

adb -s device_id shell dumpsys windows windows | grep -E "mCurrentFocus|mFocusedApp"

5.cpu占有率

adb -s device_id  shell cat /proc/stat | grep "cpu"

6.内存大小

adb -s device_id shell dumpsys meminfo package_name | grep TOTAL 

7.耗电量

adb shell dumpsys batterystats  com.Package.name | more

8.抓取log

adb logcat -c && adb logcat -v time -s "tag" >D:\1.log

windows下:

adb logcat -c && adb shell logcat -v time | find  "tts" >D:\1.txt  

9.向sdcard push文件

>adb push D:/Users/Administrator/Desktop/ttestRes.txt /sdcard/



IOS:

1.手机中替换文件

ios-deploy -l 设备id --bundle_id 包名 -o 文件  -2 目标路径


2.

指定run.js脚本测试

$ instruments -w ${UDID} -t ${template}${APP} -e UIA ${} > .input.log

2. 解析ActivityMonitor模板的trace文件,生成对应的json格式数据

$ instruments_parser -p process_name -i result.trace

其中一个json块数据格式参照如下:


3.解析trace文件

{amparser} -f {trace_file} -o {data_path} -p {process_name}



指令:

1.可代替正则,查找字的行数

grep "^Words:" {result_file} | wc -l
2.查询Error=的个数,并打印出来
tail -n 2 %s| grep "Error = " | awk \'{print $8}\'
3.过滤无结果的数据
'perl {eval_bin}/word_align_notnull.pl {ref_file} {format_file} > {result_file}'\
          .format(eval_bin=eval_bin, ref_file=ref_file, format_file=format_file, result_file=notnull_result_file)
4.抓取log
idevicesyslog | grep tag
5.查看iOS设备ID


idevice_id -l

6.终止设备抓取log

ps -ef|grep idevicesyslog |grep -v grep|cut -c 6-12 | xargs kill -9

7.

<think>我们正在讨论平板设备自动化测试的方法和工具。用户希望了解在平板设备上进行自动化测试的方法或工具。由于这是一个技术性较强的问题,我将从以下几个方面进行解答: 1. 自动化测试的基本概念和重要性 2. 平板设备自动化测试的常用工具 3. 实施自动化测试的步骤和注意事项 首先,自动化测试是指使用专门的软件工具来控制测试的执行,并比较实际结果与预期结果。在平板设备上,由于存在多种操作系统(主要是Android和iOS)以及各种尺寸和型号,自动化测试尤为重要。 ### 常用工具介绍 #### 1. Appium Appium是一个开源的自动化测试工具,支持跨平台(Android和iOS)的移动应用测试。它允许使用相同的API编写测试脚本,可以在多个平台上运行。Appium使用WebDriver协议,因此支持多种编程语言(如Java、Python、C#等)。 **特点**: - 支持原生应用、混合应用和移动网页应用 - 不需要在测试设备上安装额外的应用(Android 4.2+) - 可以访问设备的完整API #### 2. Espresso (Android) Espresso是Google官方提供的Android应用UI测试框架。它提供了简单易用的API,可以编写简洁可靠的UI测试。 **特点**: - 快速、可靠 - 与Android Studio深度集成 - 支持同步测试执行(自动等待UI线程和异步任务) #### 3. XCTest (iOS) XCTest是苹果官方提供的iOS应用测试框架,集成在Xcode中。它支持单元测试、性能测试和UI测试。 **特点**: - 与Xcode无缝集成 - 支持录制UI测试 - 可以测试应用性能 #### 4. Calabash Calabash是一个开源的跨平台移动应用自动化测试框架。它支持Android和iOS,使用Cucumber语法(自然语言描述测试用例)。 **特点**: - 支持自然语言编写测试用例 - 跨平台 - 需要嵌入库到应用中 #### 5. Robot Framework Robot Framework是一个通用的自动化测试框架,支持移动应用测试(通过Appium库)。它使用关键字驱动的测试方法,易于学习和使用。 **特点**: - 关键字驱动,易于阅读和编写 - 支持扩展库 - 生成详细的测试报告 ### 实施步骤 1. **环境搭建**:安装必要的工具(如Appium、Android SDK、Xcode等)和配置设备(开启开发者模式、USB调试等)。 2. **编写测试脚本**:根据选择的工具和编程语言编写测试用例。 3. **执行测试**:在真实设备或模拟器上运行测试。 4. **分析结果**:查看测试报告,分析失败原因并修复。 ### 注意事项 - **设备碎片化问题**:平板设备有多种尺寸和分辨率,测试应覆盖多种设备。 - **网络环境**:考虑不同网络环境(Wi-Fi、4G/5G)下的应用表现。 - **自动化测试的局限性**:并非所有测试都适合自动化,如用户体验测试仍需要人工进行。 ### 总结 平板设备自动化测试可以通过多种工具实现,选择哪种工具取决于项目需求(如平台、应用类型、团队技能等)。Appium因其跨平台能力和灵活性被广泛使用,而Espresso和XCTest则在各自平台上提供更深入的集成和优化。 §§相关问题§§ 1. 如何选择适合自己项目的自动化测试工具? 2. Appium和Espresso在测试Android应用时各有什么优缺点? 3. 如何解决平板设备碎片化带来的测试覆盖问题? 4. 自动化测试中如何处理应用权限弹窗?</think>### 平板设备自动化测试方法与工具指南 在平板设备上进行自动化测试的核心方法是通过**脚本控制设备交互**,模拟用户操作(点击、滑动、输入等),并验证应用行为。以下是主流方案: #### 一、跨平台工具(支持Android/iOS) 1. **Appium**(开源首选) - 支持Android/iOS平板,无需修改应用代码 - 通过WebDriver协议控制设备,支持多语言(Python/Java/JavaScript) - 示例脚本(Python): ```python from appium import webdriver caps = { "platformName": "Android", "deviceName": "Galaxy Tab S8", "app": "/path/to/app.apk" } driver = webdriver.Remote("http://localhost:4723/wd/hub", caps) driver.find_element_by_id("login_btn").click() # 模拟点击登录按钮 ``` 2. **Robot Framework + AppiumLibrary** - 关键字驱动测试,适合非技术人员参与 - 生成可视化测试报告: ``` *** Test Cases *** 验证登录功能 Open Application http://localhost:4723 platformName=Android deviceName=Tab_S8 Click Element id=login_btn Input Text id=username_field test@example.com Element Should Be Visible id=welcome_page ``` #### 二、平台专用工具 1. **Android平板** - **Espresso**(Google官方框架) - 直接集成到Android Studio,执行速度快 - 适合白盒测试(需访问应用源码) - **UI Automator** - 可跨应用操作(如测试应用间跳转) - 支持所有Android 4.3+平板 2. **iPad平板** - **XCTest/XCUITest**(苹果官方方案) - 在Xcode中录制操作生成测试脚本 - 深度集成iOS系统,支持Face ID等硬件测试 - **EarlGrey**(Meta开源框架) - 提供同步机制避免脚本延迟失败 - 示例:`[EarlGrey selectElementWithMatcher:grey_accessibilityID("submit_btn")]` #### 三、云测试平台(免本地设备) 1. **AWS Device Farm** - 提供2500+真实平板设备远程测试 - 按分钟计费,支持Appium脚本上传 2. **BrowserStack** - 即时访问新款iPad Pro/Galaxy Tab等设备 - 与Jenkins/GitLab CI集成实现自动化流水线 #### 四、关键实施步骤 1. **环境搭建** - Android:启用开发者选项 > USB调试 - iOS:安装WebDriverAgent到测试设备[^1] 2. **元素定位策略** - 优先使用`accessibilityId`(跨平台兼容) - 备选XPath或图像识别(OpenCV集成) 3. **执行模式选择** ```mermaid graph LR A[测试需求] --> B{需真机测试?} B -->|是| C[使用USB/无线ADB连接] B -->|否| D[启动模拟器/虚拟机] C --> E[Appium控制物理设备] D --> F[Android Studio模拟器/Xcode Simulator] ``` #### 五、最佳实践建议 1. **碎片化处理**:针对不同平板分辨率(如11” vs 12.9” iPad Pro),使用动态布局定位代替固定坐标[^2] 2. **横竖屏切换**:添加屏幕旋转测试用例: ```java // Appium Java示例 driver.rotate(ScreenOrientation.LANDSCAPE); Assert.assertTrue(driver.findElement(By.id("fullscreen_video")).isDisplayed()); ``` 3. **性能监控**:在脚本中集成内存/CPU检测(Android Profiler或Instruments for iOS) > 提示:对于折叠屏平板(如Galaxy Z Fold),需额外测试屏幕展开/折叠时的界面自适应能力[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值