{"id":31647850,"url":"https://github.com/alexhaxe/haxeium","last_synced_at":"2025-10-07T06:46:19.372Z","repository":{"id":50705371,"uuid":"519632795","full_name":"AlexHaxe/haxeium","owner":"AlexHaxe","description":"an automated UI testing framework","archived":false,"fork":false,"pushed_at":"2024-03-11T21:59:00.000Z","size":164,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-13T08:56:34.334Z","etag":null,"topics":["haxe","haxeui","testing","ui-test","ui-test-automation"],"latest_commit_sha":null,"homepage":"","language":"Haxe","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/AlexHaxe.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","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}},"created_at":"2022-07-30T22:30:36.000Z","updated_at":"2023-08-29T14:19:21.000Z","dependencies_parsed_at":"2024-03-11T22:54:12.379Z","dependency_job_id":null,"html_url":"https://github.com/AlexHaxe/haxeium","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/AlexHaxe/haxeium","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexHaxe%2Fhaxeium","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexHaxe%2Fhaxeium/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexHaxe%2Fhaxeium/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexHaxe%2Fhaxeium/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlexHaxe","download_url":"https://codeload.github.com/AlexHaxe/haxeium/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexHaxe%2Fhaxeium/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278734434,"owners_count":26036404,"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","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["haxe","haxeui","testing","ui-test","ui-test-automation"],"created_at":"2025-10-07T06:46:11.414Z","updated_at":"2025-10-07T06:46:19.367Z","avatar_url":"https://github.com/AlexHaxe.png","language":"Haxe","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Haxium an automated UI testing framework\n\nframework consists of two parts:\n\n1. a driver that you have to include in your application (e.g. via `new HaxeUIDriver(\"ws://127.0.0.1:9999\")`).\n2. your testrunner application, where you use `AppDriver` to communicate with your application during testruns\n\nit currently supports C++ and HTML5 applications based on HaxeUI (all tests were done using OpenFL flavour of HaxeUI, technically it can work with other backends, but that remains to be seen). testrunner runs as a C++ application.\n\n## installation\n\n`lix download gh:AlexHaxe/haxeium`\n\n## getting started\n\nin your application you want to add `new HaxeUIDriver(\"ws://127.0.0.1:9999\");` somewhere at the start / during initialisation. you will also need to add haxium lib as a dependency to your project. `HaxeUIDriver` will try to connect to your testrunner application via websocket. once connected it will receive and execute commands that simulate inputs from a user.\n\nnext step is to create a testrunner app using utest and haxeium libraries. you will initialise `AppDriver` and instruct it to open the very websocket port your application is trying to connect to. you will also have to configure and pass an `AppRestarter` instance so it can launch your application whenever necessary.\n\nthen you start writing testcases the way you would when doing regular unittesting with utest. you can use some `ITest` compatible base classes to e.g. make your testcases auto restart your application between each testcase. they also provide a way to automatically take screenshots in case of test failures. so that you can see what state your application was in when a failure occured.\n\nfor your testcases there are commands that will send mouse or keyboard events and you can read and write any property of a HaxeUI component. there is also ways to find and address components. a `Wait` helper class provides a few blocking functions to wait e.g. for an element to become available. an `Actions` class allows to define a sequence of input actions, that you can apply multiple times.\n\n## running samples\n\n### building C++ app\n\nfor Linux builds\n\n```bash\ncd samples/haxeui/button\nlix download\nlime build linux # build app to test\nhaxe build.hxml # build testrunner\n\nbin/TestMain # launch testrunner - will automatically start and kill app multiple times during run\n```\n\nfor Windows builds\n\n```bash\ncd samples/haxeui/button # or samples/haxeui/login\nlix download\nlime build windows # build app to test\nhaxe buildWindows.hxml # build testrunner\n\nbin/TestMain.exe # launch testrunner - will automatically start and kill app multiple times during run\n```\n\n### building Html5 app\n\n```bash\ncd samples/haxeui/button # or samples/haxeui/login\nlix download\nlime test html5 # build app to test and launch app in web browser\n```\n\nin second window run\n\n```bash\ncd samples/haxeui/button # or samples/haxeui/login\nhaxe buildHtml5.hxml # build testrunner\n\nbin/TestMain # launch testrunner - will automatically reload app webpage multiple times during run\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexhaxe%2Fhaxeium","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexhaxe%2Fhaxeium","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexhaxe%2Fhaxeium/lists"}