{"id":22509472,"url":"https://github.com/kernel0x/colibri","last_synced_at":"2026-04-01T21:06:17.227Z","repository":{"id":258721805,"uuid":"199272056","full_name":"kernel0x/colibri","owner":"kernel0x","description":"🙈 Library for autotesting UI in android apps","archived":false,"fork":false,"pushed_at":"2019-08-13T11:16:22.000Z","size":4367,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-09T09:21:43.698Z","etag":null,"topics":["android","android-library","autotesting","espresso","tests","uiautomator"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kernel0x.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-07-28T10:16:27.000Z","updated_at":"2023-11-14T01:03:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"c8e3170a-e156-42c7-a2de-1a2c1e1e9d49","html_url":"https://github.com/kernel0x/colibri","commit_stats":null,"previous_names":["kernel0x/colibri"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/kernel0x/colibri","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kernel0x%2Fcolibri","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kernel0x%2Fcolibri/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kernel0x%2Fcolibri/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kernel0x%2Fcolibri/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kernel0x","download_url":"https://codeload.github.com/kernel0x/colibri/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kernel0x%2Fcolibri/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31044973,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-27T09:35:52.079Z","status":"ssl_error","status_checked_at":"2026-03-27T09:35:20.916Z","response_time":164,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","android-library","autotesting","espresso","tests","uiautomator"],"created_at":"2024-12-07T01:29:12.216Z","updated_at":"2026-04-01T21:06:17.216Z","avatar_url":"https://github.com/kernel0x.png","language":"Kotlin","readme":"# Colibri\nColibri is an android library for autotesting UI.\n\nUses UiAutomator and Espresso.\n\n![Colibri](assets/colibri.gif)\n\n## Gradle Dependency\n\nAdd it in your root build.gradle at the end of repositories:\n\n````java\nallprojects {\n\trepositories {\n\t\t...\n\t\tmaven { url \"https://jitpack.io\"}\n\t}\n}\n````\n\nAdd the dependency:\n\n````java\ndependencies {\n\tandroidTestImplementation 'com.github.kernel0x:colibri:1.0.0'\n}\n````\n\n## How to use\n\nIn androidTest create a class inheritable from ColibriTest or in already created class initialize class Colibri.\n\n````java\nclass SampleColibriTest : ColibriTest() {\n    override fun getCondition(): Condition {\n        return Condition.Builder()\n                .randomInputText(arrayOf(\"borscht\", \"vodka\", \"bear\"))\n                .pause(Duration(500, TimeUnit.MILLISECONDS))\n                .build()\n    }\n\n    override fun getStrategy(): Strategy {\n        return Monkey()\n    }\n\n    @Test\n    fun colibriTest() {\n        launch()\n    }\n}\n````\nOR\n\n````java\nclass SampleColibriTest {\n\n    @get:Rule\n    var permissionRule = GrantPermissionRule.grant(android.Manifest.permission.WRITE_EXTERNAL_STORAGE, android.Manifest.permission.READ_EXTERNAL_STORAGE)\n\n    @Test\n    fun colibriTest() {\n        Colibri.condition(Condition.Builder()\n                .randomInputText(arrayOf(\"borscht\", \"vodka\", \"bear\"))\n                .pause(Duration(500, TimeUnit.MILLISECONDS)).build())\n                .strategy(Monkey())\n                .launch()\n    }\n}\n````\n\nEverything is simple. Now you can run the test!\n\n## How to works\n\nColibri runs throughout the app, analyzing UI elements on each screen.\n\nYou can set different testing strategies and conditions.   All conditions are available in Condition.Builder()\n\nYou can create custom behavior that will be executed at each step (for example for authorization). Example:\n````java\n.addCustomBehavior(CustomBehavior {\n                    if (getCurrentActivity().localClassName.equals(LoginActivity::class.java.canonicalName)) {\n                        try {\n                            onView(withId(R.id.text_username)).perform(setTextInEditText(\"mylogin\"))\n                            onView(withId(R.id.text_password)).perform(setTextInEditText(\"qwerty\"))\n                            onView(withId(R.id.button_login)).perform(click())\n                            Thread.sleep(Duration.FIVE_SECONDS.valueAsMs)\n                        } catch (e: Exception) {}\n                    }\n                })\n````\n\n## Features\n\n* condition configuration\n* different behavioral strategies\n* customization of behavior\n* logging and screenshots\n\n## Try it\n\nCheck out the [sample project](/sample) to try it yourself! :wink:\n\n## Releases\n\nCheckout the [Releases](https://github.com/kernel0x/colibri/releases) tab for all release info.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkernel0x%2Fcolibri","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkernel0x%2Fcolibri","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkernel0x%2Fcolibri/lists"}