首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >appium教程_4.adb常用命令

appium教程_4.adb常用命令

作者头像
千往
发布2020-10-10 15:50:13
1.2K0
发布2020-10-10 15:50:13
举报

appium教程_4.adb常用命令

前言

pc端跟安卓设备的联系,可以通过adb命令来获取设备上信息和执行操作

Android 调试桥 (adb) 是一种功能多样的命令行工具,可让您与设备进行通信。adb 命令可用于执行各种设备操作(例如安装和调试应用),并提供对 Unix shell(可用来在设备上运行各种命令)的访问权限。它是一种客户端-服务器程序,包括以下三个组件:

  • 客户端:用于发送命令。客户端在开发计算机上运行。您可以通过发出 adb 命令从命令行终端调用客户端。
  • 守护程序 (adbd):用于在设备上运行命令。守护程序在每个设备上作为后台进程运行。
  • 服务器:用于管理客户端与守护程序之间的通信。服务器在开发机器上作为后台进程运行。

一些理论/原理的可以查看官方文档: https://developer.android.com/studio/command-line/adb?hl=zh-cn 我们可以通过adb工具来获取安卓设备信息和执行一些命令

常用命令

用python记性了简单的封装,简单看下

adb devices -- 查看已经连接到adb服务器的设备

获取当前应用包名和activity

adb_cmd = **'adb -s %s shell dumpsys window | grep mCurrentFocus' **% self.udid

获取设备语言

cmd = **'adb -s %s shell getprop persist.sys.locale' **% (self.udid)

判断是否安装了某个应用

adb_cmd = **'adb -s %s shell pm list packages | grep "%s"' **% (self.udid, app_id)

通过包名打开某个应用

adb_cmd = **'adb -s %s shell monkey -p %s -c android.intent.category.LAUNCHER 1' **% (self.udid, package_name)

关掉某个应用

adb_cmd = **'adb -s %s shell am force-stop %s' **% (self.udid, package_name)

通过坐标点击屏幕

adb_cmd = **'adb -s %s shell input tap %d %d ' **% (self.udid, x, y)

简单monkey测试

# 通过monkey工具随机模拟事件
    # 该方法是50%的点击事件,50%的拖动事件,总计50次事件,每次事件间隔500毫秒
    # 更多参数请参考:https://developer.android.com/studio/test/monkey
    def monkey_app(self, package_name):

        self.log.info("开始monkey测试")
        self.close_app(package_name)

        time.sleep(5)

        adb_cmd = 'adb -s %s shell monkey -p %s --throttle 500 --ignore-crashes --ignore-timeouts --pct-touch 50 --pct-motion 50 -v 50' % (
            self.udid, package_name)

        cmd_result = SubProcess(adb_cmd).execute_cmd_v2()
        time.sleep(5)
        self.log.info("结束monkey测试")

切换设备语言

之前自动化测试时通过点击设置--语言这些动作来达到切换语言的目的,有个比较稳定的切换方式,通过ADL 应用来切换,应用在Google play市场(https://play.google.com/store/apps/details?id=net.sanapeli.adbchangelanguage)可以下载,国内的话(ADB Change Language)自行百度下

# 1. 安装ADL apk
# 2. 设置权限 adb shell pm grant net.sanapeli.adbchangelanguage android.permission.CHANGE_CONFIGURATION
# 3. 执行命令切换语言 zh-CN,ja-JP,ko-KR,en-US

LANGUAGE_COUNTRY_MAP = {
    "CN": "zh-rCN",
    "JP": "ja-rJP",
    "KR": "ko-rKR",
    "US": "en-rUS",
    "RU": "ru-rRU",
    "HK": "zh-rHK",
    "UK": "en-rUK",
    "TW": "zh-rTW",
    "CA": "en-rCA",
    "ID": "id-rID"
}

    def change_language(self, language):
        """
        :param udid:
        :param language:
        :return:
        """
        cmd = 'adb -s %s shell am start -n net.sanapeli.adbchangelanguage/.AdbChangeLanguage -e language %s' % (
            self.udid, language)
        result = SubProcess(cmd).execute_cmd_v2()
        if result is not None:
            time.sleep(5)
            self.log.info("切换语言(%s)成功" % language)
        else:
            self.log.info("切换语言(%s)失败" % language)
            
    def change_language_by_country(self, country):
        """
        :param country:
        :return:
        """
        self.change_language(LANGUAGE_COUNTRY_MAP.get(country, 'en-rUS'))

这样切的速度快,而且稳定

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-09-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • appium教程_4.adb常用命令
  • 前言
  • 常用命令
  • 获取当前应用包名和activity
    • 获取设备语言
      • 判断是否安装了某个应用
        • 通过包名打开某个应用
          • 关掉某个应用
            • 通过坐标点击屏幕
              • 简单monkey测试
                • 切换设备语言
                相关产品与服务
                命令行工具
                腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档