Mobly Release History

Mobly Release 1.7.4: Better debug logs

Added framework DEBUG level log generated by Mobly:

  • Log test configuration at the beginning.
  • Log boundaries of each execution stage.
  • Log snippet client calls.

New

  • Support suffixing test class name in a suite.
  • API to unload a single snippet from AndroidDevice.

Fixes

  • Fixes in BaseTestClass.
  • Fixes for running on Windows.

Full list of changes.

1.7.3: Windows support fixes

New

  • self.current_test_info now exists for setup_class stage.
  • adb calls through AdbProxy can now propagate stderr.
  • Instrumentation runner now outputs timestamp for each test.

Fixes

  • Fix several bugs for running on Windows.

Full list of changes.

1.7.2: Custom Info in Test Summary

New

  • Support adding additional blocks in test summary file.
  • SnippetEvent is now loggable.

Fixes

  • Fix several bugs in error reporting.
  • Fix log persist crashing Mobly on certain devices.

Full list of changes.

1.7.1: Bug Fixes

New

  • Allow setting up logger before test class execution. Useful for suites.

Fixes

  • Fix recording of teardown_class failures in new output format.
  • Properly handle calling asserts.abort_all in on_fail.
  • Minor fixes for Windows support.

Full list of changes.

1.7: Expectation APIs and Instrumentation Test Runner

New

  • APIs for specifying expectation in test for delayed test termination. mobly.expects
  • A runner class for easily running regular Instrumentation tests with Mobly. Tutorial.
  • API to get runtime test info during the test.
  • Support specifying file location and timeout in take_bug_report.
  • Support changing device serial during test. Needed for remote devices.
  • Allow adding custom controller info for AndroidDevice.

Breaking Changes

  • Monsoon config format change: Old: 'Monsoon': [123, 456] New: 'Monsoon': [{'serial': 123}, {'serial': 456'}]

Deprecated

  • Old output files.

Full list of changes.

1.6.1: New Output

New

  • New output file scheme, with better clarity and streamable summary file.
  • Improved result reporting: more consistent, more debug info, no hiding errors.
  • adb commands now support timeout param. E.g. adb.wait_for_device(timeout=10)

Breaking Changes

  • Signature change of procedure functions like on_fail.
    • Old: on_fail(test_name, begin_time)
    • New: on_fail(record)

Deprecated

  • Old generated test code path
  • Support for old snippet protocol (v0)

Full list of fixes here.

1.5: New Snippet Startup Protocol

  • Improved compatibility between v1 snippets and older devices/emulators
  • Support temporarily disconnecting (without rebooting) Android devices from USB in a test, useful for power measurement.
  • Fixes critical bugs from 1.4.1

1.4.1 [DO NOT USE]: New Snippet Startup Protocol

Warning: This release has multiple issues; please use 1.5.

New

  • Support the new launch and connection mechanism in Snippet Lib 1.2.

Fixes

  • a bug in generate_tests that prevents it to be called when wrapped in other functions.
  • a bug that exposed Mobly internal controller registry to tests.

Deprecate

  • Old snippet launch protocol (V0)

1.4: Generated Test Revamp

New

  • Brand new generated test. See BaseTestClass.generate_tests Please switch to new one since we're deprecating the old one.
  • Support creating test suites where each class has a different config.
  • Support usb id as device identifier.
  • The token that marks begin and end of the test in logs has changed from [Test Case] to [Test].
  • Launch MBS without package name with snippet_shell.py --mbs
  • adb binary location can now be modified by test code.

Fixes

  • Clear adb logcat cache before starting collection.
  • Use default adb logcat buffer. if you need additional logcat buffers, set -b <buffer name> with adb_logcat_param in the config for AndroidDevice.
  • Time out sooner when snippet server stops responding.

Deprecate

  • Old generated tests (run_generated_tests)

1.3: Test Suite; Windows Support and Cli Shell Changes

  • Support running on Windows.
  • Add support for creating test suites.
  • Support UIAutomator in snippet.
  • Fixes to adb commands to avoid double-quoting and fix cross-platform issues.
    • adb commands are now run without local shell. For commands with more than one argument, pass in a list of arguments instead of a string. Eg adb.logcat("-c -v") becomes adb.logcat(["-c", "-v"]).
    • utils.start_standing_process() run without local shell by default
    • utils.exe_cmd() removed. Use subprocess.check_output() instead.

1.2.1: New Config Format and Async Rpc Support

  • Fixes critical bugs in 1.2

1.2 [DO NOT USE]: New Config Format and Async Rpc Support

Warning: This release has multiple issues; please use 1.2.1.

  • New config format with clear compartmentalization of different types of configs.
  • Utilize yaml format instead of json for new config.
  • Added support for Mobly Snippet Lib's Asynchronous Rpc calls.
  • Added support for handling async events from async Rpc calls.
  • Various improvements and bug fixes.

1.1.2: SL4A Default No More

  • Stop making sl4a a default requirement.
  • Require explicitly starting sl4a with AndroidDevice.load_sl4a.
  • Fix in android_device and snippet_client
  • Fix various other minor issues.

1.1.1: AndroidDevice Controller Improvements

  • Bug fixes and improvements in AndroidDevice controller.

1.1: Snippet support

  • Add a client for making Rpc calls to apps built with [Mobly Snippet Library] (https://github.com/google/mobly-snippet-lib).
  • Add a controller lib for attenuators.
  • Add customizable log prefix tag in AndroidDevice for better device-level logging.

1.0: Initial release