APP自动化测试问题解决(1)-获取appPackage和appActivity

本文介绍了如何使用adb工具获取Android应用的appPackage和appActivity,包括连接手机、验证连接、通过日志分析以及adb shell命令的方法。在进行APP自动化测试时,这些信息是必要的配置项。通过adb logcat重定向和adb shell的dumpsys activity命令,可以在不使用Appium Inspector的情况下找到所需信息。

在appium的Appium Inspector中需要配置appPackage和appActivity ,在python脚本连接APP时需要配置Capabilities是也需要配置appPackage和appActivity

apppackage是APP 的包名,而appActivity是我们进入app后进入的启动页面,有不少方法可以获取他们,我们采用其中比较简单的两个方法。一个是采用adb抓取log,另外一个是直接用adb的shell命令。

1、前提条件

在获取appPackage和appActivity前有几个前提条件必须满足

1、appium desktop和Appium Inspector已经成功安装

2、Android SDK也已经成功安装,并请adb命令运行正常

然后才是物理条件

1.1连接手机

首先我们得用USB线连接手机和电脑,而且手机要打开开发者模式

打开开发模式
首先打开开发者模式,在手机点击设置->关于手机->版本信息

连续点击版本号5次,就可以打开开发者模式

USB连接手机和电脑
USB线一般要用原装USB充电线才行,买的有的线只支持,用USB线连接电脑和手机,插上线的时候手机USB用于选择 传输文件/Androin Auto

这样手机连上了

1.2验证手机连接情况

在命令行输入

adb devices

然后可以看到链接的设备信息,则证明手机连接成功

 2 利用日志找到appPackage和appActivity 

  • 首先在命令行输入如
### 如何获取 AndroidappPackage appActivity 参数 在 Android 自动化测试或应用启动配置中,`appPackage` `appActivity` 是两个非常重要的参数。以下是获取这些参数的详细方法: #### 1. 使用 `adb shell dumpsys window` 命令 通过以下命令可以获取当前页面的 `appPackage` `appActivity`: ```bash adb shell dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp' ``` 该命令会返回类似以下的结果: ``` mCurrentFocus=Window{abc123 com.example.app/com.example.app.MainActivity} ``` 其中,`com.example.app` 是 `appPackage`,而 `com.example.app.MainActivity` 是 `appActivity`[^2]。 #### 2. 使用 `adb shell dumpsys activity` 命令 对于模拟器或真机,可以通过以下命令分别获取正在运行的 `appPackage` `appActivity`: - 模拟器: ```bash adb shell dumpsys activity | grep "mFocusedActivity" ``` - 真机: ```bash adb shell dumpsys activity | grep "mResumedActivity" ``` 输出结果类似于: ``` mFocusedActivity: ActivityRecord{... com.example.app/.MainActivity} ``` 这里的 `com.example.app` 是 `appPackage`,`.MainActivity` 是 `appActivity`[^2]。 #### 3. 使用 `adb shell dumpsys activity top` 命令 如果需要更详细的输出,可以使用以下命令: ```bash adb shell dumpsys activity top | grep ACTIVITY ``` 此命令会列出当前处于顶部的所有活动及其相关信息,便于进一步分析。 #### 4. 使用 Appium Inspector 工具 在 Appium 中,`Appium Inspector` 是一个可视化的工具,可以直接查看配置 `appPackage` `appActivity`。启动 Inspector 后,在 Capabilities 配置中填写正确的包名活动名称即可[^1]。 #### 5. 手动查找 APK 文件信息 如果无法直接运行应用,可以通过反编译 APK 文件来查找 `AndroidManifest.xml` 文件中的 `<application>` `<activity>` 标签。例如: ```xml <application android:label="ExampleApp" android:package="com.example.app"> <activity android:name=".MainActivity" android:label="Main Activity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application> ``` 在此示例中,`com.example.app` 是 `appPackage`,而 `.MainActivity` 是 `appActivity`[^3]。 #### 示例代码:Python 脚本配置 Desired Capabilities 以下是一个 Python 脚本示例,展示如何将获取到的 `appPackage` `appActivity` 配置到 Desired Capabilities 中: ```python from appium import webdriver desired_caps = { "platformName": "Android", "deviceName": "emulator-5554", "appPackage": "com.example.app", # 替换为实际的 appPackage "appActivity": ".MainActivity" # 替换为实际的 appActivity } driver = webdriver.Remote("http://localhost:4723/wd/hub", desired_caps) ``` ### 注意事项 - 如果目标应用未启动,上述 `adb` 命令可能无法返回有效结果,建议先手动启动应用再执行命令。 - 对于某些复杂的应用,可能存在多个 `Activity`,需要根据具体需求选择正确的入口 `Activity`[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

六天测试工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值