Giter Site home page Giter Site logo

android-uiautomator-server's Introduction

Purpose

Build Status

UIAutomator is a great tool to perform Android UI testing, but to do it, you have to write java code, compile it, install the jar, and run. It's a complex steps for all testers...

This project is to build a light weight jsonrpc server in Android device, so that we can just write PC side script to write UIAutomator tests.

Build

  • Run command:
$ ./gradlew build
$ ./gradlew packageDebugAndroidTest
  • Run the jsonrcp server on Android device
$ ./gradlew cC
$ adb forward tcp:9008 tcp:9008 # tcp forward

The buildin input method

Fast input method

Encode the text into UTF-8 and then Base64

For example:

"Hello 你好" -> (UTF-8 && Base64) = SGVsbG8g5L2g5aW9

Send to FastInputIME with broadcast

# Append text to input field
adb shell am broadcast -a ADB_INPUT_TEXT --es text SGVsbG8g5L2g5aW9
# Clear text
adb shell am broadcast -a ADB_CLEAR_TEXT
# Clear text before append text
adb shell am broadcast -a ADB_SET_TEXT --es text SGVsbG8g5L2g5aW9
# Send keycode, eg: ENTER
adb shell am broadcast -a ADB_INPUT_KEYCODE --ei code 66
# Send Editor code
adb shell am broadcast -a ADB_EDITOR_CODE --ei code 2 # IME_ACTION_GO

Change GPS mock location

You can change mock location from terminal using adb in order to test GPS on real devices.

adb [-s <specific device>] shell am broadcast -a send.mock [-e lat <latitude>] [-e lon <longitude>]
        [-e alt <altitude>] [-e accurate <accurate>]

For example:

adb  shell am broadcast -a send.mock -e lat 15.3 -e lon 99

How to use

from uiautomator import device as d

d.screen.on()
d(text="Settings").click()
d(scrollable=True).scroll.vert.forward()

Refer to python wrapper library uiautomator.

How to generate changelog

conventional-changelog

npm install -g conventional-changelog-cli
conventional-changelog -p grunt -i CHANGELOG.md -s -r 0

Notes

If you have any idea, please email [email protected] or submit tickets.

Dependencies

Added features

  • support unicode input

Resources

Thanks to

android-uiautomator-server's People

Contributors

codeskyblue avatar diaojunxian avatar kenansheng avatar mingyuan-xia avatar nathankun avatar pengchenglin avatar xiaocong avatar xiscoxu avatar yaming116 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.