All Projects → gb112211 → Adb For Test

gb112211 / Adb For Test

通过adb命令实现简单的点击、滑动、长按等效果,可通过比例定位元素、通过元素定位(需要Android版本高于4.0),用于Android Test,拥有monkeyrunner的绝大部分功能

Programming Languages

python
139335 projects - #7 most used programming language
java
68154 projects - #9 most used programming language

Labels

Projects that are alternatives of or similar to Adb For Test

Androidcontrol
超强群控,可以实时查看和控制安卓手机的安卓远程控制软件,致力于完成一个高端的安卓群控软件 可以群控,录制运行脚本等等功能......
Stars: ✭ 1,576 (+795.45%)
Mutual labels:  adb
Wadb
A simple switch for adb (Android Debug Bridge) over network.
Stars: ✭ 143 (-18.75%)
Mutual labels:  adb
Linux Second Screen
Scripts to repurpose old android device as second monitor on linux
Stars: ✭ 160 (-9.09%)
Mutual labels:  adb
Droidcast
An experimental demo for capturing and displaying screenshot of an Android device without ROOT permission.
Stars: ✭ 116 (-34.09%)
Mutual labels:  adb
Rogcat
A `adb logcat` wrapper
Stars: ✭ 137 (-22.16%)
Mutual labels:  adb
Android Otp Extractor
Extracts OTP tokens from rooted Android devices
Stars: ✭ 147 (-16.48%)
Mutual labels:  adb
Millionhero
速度快、准确易用-支持各平台的答题助手-图形界面-多权重答案推荐-自动百度高亮答案
Stars: ✭ 106 (-39.77%)
Mutual labels:  adb
Sadb
(safe adb) More convenient to operate adb for multiple connected devices
Stars: ✭ 165 (-6.25%)
Mutual labels:  adb
Python Firetv
Stars: ✭ 142 (-19.32%)
Mutual labels:  adb
Scrcpy Gui
👻 A simple & beautiful GUI application for scrcpy. QQ群:734330215
Stars: ✭ 2,402 (+1264.77%)
Mutual labels:  adb
Phonesploit
A tool for remote ADB exploitation in Python3 for all Machines.
Stars: ✭ 122 (-30.68%)
Mutual labels:  adb
Apk Utilities
🛠 Tools and scripts to manipulate Android APKs
Stars: ✭ 134 (-23.86%)
Mutual labels:  adb
Adb shell
A Python implementation of ADB with shell and FileSync functionality.
Stars: ✭ 148 (-15.91%)
Mutual labels:  adb
Auto add wechat friends py
微信添加好友 批量发送添加请求 脚本 python
Stars: ✭ 112 (-36.36%)
Mutual labels:  adb
Dingdingautoplaycard
钉钉自动上下班打卡辅助,基于Python,adb,实现,打卡后自动发送邮件提醒。flask搭建web页面自动生成配置
Stars: ✭ 162 (-7.95%)
Mutual labels:  adb
Uber Adb Tools
A tool that enables advanced features through adb installing and uninstalling apps like wildcards and multi device support. Useful if you want to clean your test device from all company apks or install a lot of apks in one go. Written in Java so it should run on your platform.
Stars: ✭ 106 (-39.77%)
Mutual labels:  adb
Adblib
Java ADB library
Stars: ✭ 145 (-17.61%)
Mutual labels:  adb
Fgo Py
全自动FGO脚本.启动脚本,上床睡觉,养肝护发,满加成圣诞了解一下?绝赞持续更新中
Stars: ✭ 167 (-5.11%)
Mutual labels:  adb
Mobile Toolkit
📱 Shell scripts for Android and iOS device management
Stars: ✭ 161 (-8.52%)
Mutual labels:  adb
Adbsploit
A python based tool for exploiting and managing Android devices via ADB
Stars: ✭ 147 (-16.48%)
Mutual labels:  adb

Adb-For-Test

通过 adb 命令实现简单的点击、滑动、长按等效果,可通过比例定位元素、通过元素定位(需要 Android 版本高于 4.0),用于Android Test,拥有 monkeyrunner 的绝大部分功能

2018.05.17

python 版本获取分辨率方法添加对 4.3 及以上机型通过wm size命令获取

2015.12.24

java 版本增加 pinchZoom 方法,对屏幕进行缩放

2015.04.28

  • 重构 python 版本中的 adbUitils 模块,合并 AppInfoAction 类至 ADB

    初始化方法:

    adb = ADB() 或 adb = ADB("device_id")

  • 重构的目的是增加 python 版本对多设备的支持,通过传入 device_id,解决有多台设备连接 USB 时无法执行脚本的问题

  • Element 类中增加通过属性 content-desc 定位元素的方法

Robotium

  • 如果想用于Robotium处理跨进程,需要修改部分代码,请参考Adb-For-Robotium

为何写这么个东西?

  • 目前所做的工作是对 rom 的测试,所以基本上所有的测试环境都集中在 Android4.2、4.3、4.4平台,平台比较固定
  • Android 测试中最为熟悉的就是 adb 命令,很多功能都可通过adb命令去实现,因此几乎可以使用任何的编程语言去编写脚本调用 adb 命令,去实现对设备的操作
  • 将日常工作中封装的一些由 adb 命令完成的功能整合在一起,方便于使用
  • 作为自己学习 java、python 的一种实践

优点

  • 分别采用两种语言(java、python)实现,需要的环境都极其的简单,不需要 root
  • 基本上都以 adb 命令完成功能,可从代码中剥离部分代码形成日常用的脚本(参考AndroidTestScripts项目)
  • 由于是通过 adb 命令去发送事件,所以可跨应用进行测试,可用来扩展其他 Android 测试框架
  • 通过设备分辨率与坐标转换,可以方便的以屏幕比例作为参数来操作设备
  • 调用了 uiautomator 命令,Android4.0 以上,可通过界面元素进行定位,可获取界面内单个元素区域的坐标范围,以此截取图片(区别于截取整个屏幕)
  • 可采用截图对比全图、部分区域图片、获取当前界面某个元素、获取当前界面的 Activity 等各种属性,对测试结果进行判断

缺点

  • 部分功能需要较高的 Android 版本,低版本的未去验证,所以局限性很大,纯当练手
  • 初学 java、python,代码写得比较烂
  • 很多地方未做异常处理
  • 暂时未写单元测试,所以使用时需要读者阅读具体的源码
  • 有疑问有吐槽请联系:Email: [email protected] QQ:274925460

需要的环境

  • 环境变量:需配置 ANDROID_HOME
  • python:python2.7,如果用到截图对比功能,需要安装 PIL 库,PIL 无法安装时可用Pillow
  • java: jdk1.6 以上,不需要其他任何第三方 jar 包, jar 不可用时,可能是 jdk 版本问题,请自行编译

如何使用

  • python:使用 setup.py install 安装,未去强制判断要求安装 PIL,使用 ImageUtils 时则需要安装
  • java:导入 Adb-For-Test.jar 即可

简单例子

  • 在 TestDemo 目录下分别有 python、java 的例子,使用的 apk 是 ApiDemos.apk

  • 这里使用 python 写一个截取桌面应用图标的例子:

    #coding=utf-8
    
    import os
    
    from adbUtils.utils.adbUtils import ADB
    from adbUtils.utils.imageUtils import ImageUtils
    from adbUtils.utils.element import Element
    
    #单个设备可不传入device_id
    adb = ADB(“device_id”)
    element = Element("device_id")
    
    #获取图片区域
    icon = element.getElementBoundsByClass("android.widget.TextView")[0]
    image = ImageUtils()
    #截取图片
    image.screenShot().subImage(icon).writeToFile(os.getcwd(), "image")
    
    #加载需要对比的目标图片
    #load = image.loadImage(os.getcwd() + "\\image.png")
    #print image.screenShot().subImage(icon).sameAs(load)
    
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].