{"id":13509453,"url":"https://github.com/alibaba/macaca","last_synced_at":"2025-05-15T04:07:56.766Z","repository":{"id":37405682,"uuid":"53995946","full_name":"alibaba/macaca","owner":"alibaba","description":" Automation solution for multi-platform. 多端自动化解决方案","archived":false,"fork":false,"pushed_at":"2022-09-18T13:23:18.000Z","size":85,"stargazers_count":3182,"open_issues_count":64,"forks_count":419,"subscribers_count":191,"default_branch":"master","last_synced_at":"2025-04-14T05:56:29.139Z","etag":null,"topics":["android","automation","hybrid-apps","ios","macaca","testing","uitest"],"latest_commit_sha":null,"homepage":"https://macacajs.github.io","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alibaba.png","metadata":{"files":{"readme":"README.en.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}},"created_at":"2016-03-16T02:52:39.000Z","updated_at":"2025-04-14T01:54:39.000Z","dependencies_parsed_at":"2022-07-13T15:59:20.850Z","dependency_job_id":null,"html_url":"https://github.com/alibaba/macaca","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alibaba%2Fmacaca","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alibaba%2Fmacaca/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alibaba%2Fmacaca/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alibaba%2Fmacaca/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alibaba","download_url":"https://codeload.github.com/alibaba/macaca/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254270646,"owners_count":22042859,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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","automation","hybrid-apps","ios","macaca","testing","uitest"],"created_at":"2024-08-01T02:01:07.995Z","updated_at":"2025-05-15T04:07:51.741Z","avatar_url":"https://github.com/alibaba.png","language":null,"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"//macacajs.github.io\"\u003e\n    \u003cimg\n      alt=\"Macaca\"\n      src=\"https://macacajs.github.io/macaca-ecosystem/macaca-logo/svg/monkey.svg\"\n      width=\"200\"\n    /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n# Macaca\n\n[中文版](README.md)\n\nMacaca is an open-source automation solution for multi-platform.\n\n---\n\n## Macaca Core\n\nAt its core, Macaca is an end-to-end test automation framework consisting of clients, servers and drivers.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://macacajs.github.io/assets/88fe9010gy1g1k8o53d0ej20wb0ggwgu.jpg\" width=\"740px\"\u003e\n\u003c/p\u003e\n\n### Client\n\nMacaca doesn't limit what languages you will use to write your tests. You can choose to write your tests in Node.js, Java or Python, using respective clients:\n* Node.js client - [macaca-wd](https://github.com/macacajs/macaca-wd)\n* Java client - [wd.java](https://github.com/macacajs/wd.java)\n* Python client - [wd.py](https://github.com/macacajs/wd.py)\n\n### Server\n\nMacaca's core is a REST API web server. It connects with clients, listens for requesting, and executes request commands on a mobile device, and a desktop browser, responses with results conforming HTTP response protocol.\n\nThe beauty of a client/server architecture is that REST API and [W3C WebDriver Wire Protocol](https://www.w3.org/TR/webdriver/) opens the opportunities that test codes can be written any common languages, as long as it has a http client API. On the other hand, the server can be on a different machine, or in cloud.\n\n### Driver\n\nMacaca is \"cross-platform\". It means you can use the same API to write test scripts, and same test scripts to test your apps running on devices such as iOS, Android or desktops. To achieve this, we have drivers for different platforms:\n\n* Macaca's [iOS WebDriver](https://github.com/macacajs/XCTestWD) is written in Swift and built in-house.\n* Macaca's [Android WebDriver](https://github.com/macacajs/UIAutomatorWD) is built in-house, and supports Android UIAutomator 2.0.\n\nMacaca supports major browsers such as Chrome, Firefox, Safari. It also supports electron environment.\n\n## Native, Mobile, Hybrid\n\n0. Native means apps written with iOS or android SDKs.\n0. Mobile web means apps written in HTML, CSS and JavaScript and displayed via a mobile device browser such as Safari, Chrome or Webview in iOS and android.\n0. Hybrid is apps created by webview in native app.\n0. Web means apps written in HTML, CSS and JavaScript.\n\n## Macaca Community Ecosystem\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://macacajs.github.io/assets/88fe9010gy1g1u1s0bzwsj20rz0kwtdx.jpg\" width=\"740px\"\u003e\n\u003c/p\u003e\n\n### Macaca DataHub\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://macacajs.github.io/macaca-datahub/\"\u003e\n    \u003cimg\n      alt=\"Macaca DataHub\"\n      src=\"https://macacajs.github.io/macaca-datahub/logo/logo-color.svg\"\n      width=\"128\"\n    /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nMacaca DataHub is a continuous data provider for development, testing, staging and production.\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://macacajs.github.io/macaca-datahub/assets/1556087321021-f5514eb2-62f6-484b-ad58-24433c7f8906.png\" width=\"740px\"\u003e\n\u003c/p\u003e\n\n* [Website](https://macacajs.github.io/macaca-datahub/)\n* [GitHub](https://github.com/macacajs/macaca-datahub)\n\n### Reliable\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://macacajs.github.io/reliable/\"\u003e\n    \u003cimg\n      alt=\"Macaca Reliable\"\n      src=\"https://macacajs.github.io/reliable/logo/reliable.svg\"\n      width=\"128\"\n    /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nReliable is a testing management suite with continuous delivery support.\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://macacajs.github.io/reliable/assets/6d308bd9ly1fz3wii2wqsj21bh0u0qij.jpg\" width=\"740px\"\u003e\n\u003c/p\u003e\n\n* [Website](https://macacajs.github.io/reliable/)\n* [GitHub](https://github.com/macacajs/reliable)\n\n### NoSmoke\n\nNoSmoke is a cross platform UI crawler which generate and execute UI test cases.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://macacajs.github.io/NoSmoke/assets/macaca-architecture-2.0.png\" width=\"740px\"\u003e\n\u003c/p\u003e\n\n* [Website](https://macacajs.github.io/NoSmoke/)\n* [GitHub](https://github.com/macacajs/NoSmoke)\n\n### App Inspector\n\nApp-inspector is a mobile UI viewer in browser. View the UI in a tree view, and generate XPath automatically.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://macacajs.github.io/app-inspector/assets/7dfcf2f7gw1f77ev6csw5g20s50iwe81.gif\" width=\"740px\"\u003e\n\u003c/p\u003e\n\n* [Website](https://macacajs.github.io/app-inspector/)\n* [GitHub](https://github.com/macacajs/app-inspector)\n\n### Macaca UITest\n\nMacaca UITest runs mocha in a browser environment.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://macacajs.github.io/uitest/assets/6d308bd9gw1f6wsic5dmxj20rl0qqtbi.jpg\" width=\"740px\"\u003e\n\u003c/p\u003e\n\n* [Website](https://macacajs.github.io/uitest/)\n* [GitHub](https://github.com/macacajs/uitest)\n\n### Macaca Reporter\n\nMacaca Reporter is a reporter used for mocha and other frameworks.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://macacajs.github.io/macaca-reporter/assets/6d308bd9gy1fivuatxep5j21kw13dgs6.jpg\" width=\"740px\"\u003e\n\u003c/p\u003e\n\n* [Website](https://macacajs.github.io/macaca-reporter/)\n* [GitHub](https://github.com/macacajs/macaca-reporter)\n\n### Torchjs\n\nTorchjs is an excellent unit testing framework for browser environment.\n\n[gif demo](https://macacajs.github.io/torchjs/assets/6d308bd9gy1fiw8er0a5eg20zc0k0he0.gif)\n\n* [Website](https://macacajs.github.io/macaca-reporter/)\n* [GitHub](https://github.com/macacajs/macaca-reporter)\n\n### UI Recorder\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://uirecorder.com/\"\u003e\n    \u003cimg\n      alt=\"UI Recorder\"\n      src=\"https://raw.github.com/alibaba/uirecorder/master/logo.png\"\n      width=\"400\"\n    /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nUI Recorder is a zero cost UI test case recorder like Selenium IDE.\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.github.com/alibaba/uirecorder/master/screenshot/shot1.png\" width=\"740px\"\u003e\n\u003c/p\u003e\n\n* [Website](https://uirecorder.com/)\n* [GitHub](https://github.com/alibaba/uirecorder)\n\n## Source Code\n\nSource code is maintained in different repos within [macacajs](https://github.com/macacajs).\n\nIt is recommended to get started from the [official site](https://macacajs.github.io), since there are many repos in macacajs.\n\n## Help and Support\n\n- [Official Site](//macacajs.github.io)\n- [Samples](//github.com/macaca-sample)\n- [Roadmap](//macacajs.github.io/guide/roadmap.html)\n- [Awesome](//github.com/macacajs/awesome-macaca)\n- [Community Support](//macacajs.github.io/guide/support.html)\n\n## License\n\nThe MIT License (MIT)\n","funding_links":[],"categories":["Testing","Others","Repository","inbox"],"sub_categories":["Testing"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falibaba%2Fmacaca","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falibaba%2Fmacaca","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falibaba%2Fmacaca/lists"}