{"id":25776337,"url":"https://github.com/unloggedio/unlogged-sdk","last_synced_at":"2025-02-27T06:06:07.719Z","repository":{"id":170250831,"uuid":"646380322","full_name":"unloggedio/unlogged-sdk","owner":"unloggedio","description":"Unlogged SDK for recording JAVA code execution","archived":false,"fork":false,"pushed_at":"2024-08-27T07:04:55.000Z","size":6340,"stargazers_count":163,"open_issues_count":22,"forks_count":16,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-08-27T14:20:39.918Z","etag":null,"topics":["assertions","automated-testing","debugging-tool","java","junit","junit5","mocking","mockito","regression-testing","test-automation"],"latest_commit_sha":null,"homepage":"https://unlogged.io","language":"Java","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/unloggedio.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2023-05-28T07:54:37.000Z","updated_at":"2024-08-27T07:04:17.000Z","dependencies_parsed_at":"2023-09-22T19:13:46.952Z","dependency_job_id":"7c4363e5-6a33-48fa-86c3-c106bb6f305c","html_url":"https://github.com/unloggedio/unlogged-sdk","commit_stats":null,"previous_names":["unloggedio/unlogged-sdk"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unloggedio%2Funlogged-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unloggedio%2Funlogged-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unloggedio%2Funlogged-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unloggedio%2Funlogged-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/unloggedio","download_url":"https://codeload.github.com/unloggedio/unlogged-sdk/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240987434,"owners_count":19889333,"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":["assertions","automated-testing","debugging-tool","java","junit","junit5","mocking","mockito","regression-testing","test-automation"],"created_at":"2025-02-27T06:01:21.726Z","updated_at":"2025-02-27T06:06:07.701Z","avatar_url":"https://github.com/unloggedio.png","language":"Java","readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.unlogged.io/\"\u003e\n    \u003cimg src=\"static/background.svg\" height=\"96\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  Record. Replay. Test. \n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003csup\u003e\n  \u003ca href=\"https://unloggedio.github.io/documentation/\"\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/a\u003e ·\n  \u003ca href=\"https://www.unlogged.io/bug-bounty-program\"\u003e\u003cstrong\u003eBug Bounty\u003c/strong\u003e\u003c/a\u003e ·\n  \u003ca href=\"https://mvnrepository.com/artifact/video.bug/unlogged-sdk/\"\u003e\u003cstrong\u003eMaven\u003c/strong\u003e\u003c/a\u003e ·\n  \u003ca href=\"https://plugins.jetbrains.com/plugin/18529-unlogged\"\u003e\u003cstrong\u003eIntelliJ Plugin\u003c/strong\u003e\u003c/a\u003e\n  \u003c/sup\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://mvnrepository.com/artifact/video.bug/unlogged-sdk\"\u003e\u003cimg src=\"https://img.shields.io/maven-central/v/video.bug/unlogged-sdk?style=for-the-badge\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://plugins.jetbrains.com/plugin/18529-unlogged\"\u003e\u003cimg src=\"https://img.shields.io/jetbrains/plugin/v/18529-unlogged?style=for-the-badge\" /\u003e\u003c/a\u003e\n\n\n  \n\u003c/p\u003e\n\u003cbr/\u003e\n\n\n# Unlogged Java SDK\n\nUnlogged Java SDK enabled recording of code execution in a binary format. \n\nReplay these records using the [Unlogged IntelliJ Plugin](https://plugins.jetbrains.com/plugin/18529-unlogged) and generate junit test cases.\n\nThe recording is highly detailed and can be used to reconstruct the code execution from scratch.\nThe [binary format descriptions](https://github.com/unloggedio/common/tree/master/src/main/kaitai) are available in Kaitai format here\n\n- 🎬 Execute Java methods in your process right from your IDE\n- 🖥️ Replay one or all recorded executions and see the differences in response in real time\n- 🎯 Setup assertions on individual keys in response objects \n- 🎭 Mock downstream calls as easily as setting up a breakpoint\n- 🩺 Identify bottlenecks in your code with perf numbers right above the method declaration\n- 🦠 Create JUnit test cases from recorded executions\n\n### Additional Screenshots\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003e🎬 Direct Invoke\u003c/b\u003e\u003c/summary\u003e\n  \u003cimg alt=\"Direct Invoke Java methods\" src=\"./static/direct-invoke.png\"\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003e🖥️ Replay\u003c/b\u003e\u003c/summary\u003e\n  \u003cimg alt=\"Replay history of code execution\" src=\"./static/replay.png\"\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003e🎭 Mocking\u003c/b\u003e\u003c/summary\u003e\n  \u003cimg alt=\"Mock downstream calls\" src=\"./static/mocking.png\"\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003e🎯 Assertions\u003c/b\u003e\u003c/summary\u003e\n  \u003cimg alt=\"Assertions in regression tests\" src=\"./static/assertions.png\"\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003e🦠 JUnit Test case\u003c/b\u003e\u003c/summary\u003e\n  \u003cimg alt=\"Generate junit test cases\" src=\"./static/junit-test-case.png\"\u003e\n\u003c/details\u003e\n\n\n## Usage\n\n1. Include dependency\n\n### Maven\n```xml\n\u003cdependencies\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003evideo.bug\u003c/groupId\u003e\n        \u003cartifactId\u003eunlogged-java-sdk\u003c/artifactId\u003e\n        \u003cversion\u003e0.2.16\u003c/version\u003e\n    \u003c/dependency\u003e\n\u003c/dependencies\u003e\n```\n\n### Gradle\n\n```groovy\ndependencies\n{\n    implementation 'video.bug:unlogged-sdk:0.2.16'\n    annotationProcessor 'video.bug:unlogged-sdk:0.2.16'\n}\n```\n\n2. Add `@Unlogged` annotation to your application entry point\n```java\npublic class Main {\n    @Unlogged\n    public static void main(String[] args) {\n        // \n    }\n}\n```\n\n## Disabling unlogged-sdk\n\nIt is highly recommended that you disable the unlogged-sdk when deploying for usage. unlogged-sdk is only targetted \nfor local usage only.\n\nAdding the unlogged-sdk adds probes to your code which emits events in a binary format. Adding the `@Unlogged` \nenabled to actual execution of those probes.\n\n### To disable at compile time\n\n```bash\nmvn package -Dunlogged.disable\n```\n\nor \n\n```bash\n./gradlew build -Dunlogged.disable\n```\n\n### To disable at runtime (if not disabled at compile time)\n\n```java\n@Unlogged(enable = false)\n```\n\nYou can find the latest release version here: https://mvnrepository.com/artifact/video.bug/unlogged-sdk\n\n\n## Contributing\n\nWe welcome all contributions! There's many ways to contribute to the project,\nincluding but not limited to:\n\n- Opening a PR\n- [Submitting feature requests or bugs](https://github.com/unloggedio/unlogged-sdk/issues/new)\n- Improving our product or contribution documentation\n- Voting on [open issues](https://github.com/unloggedio/unlogged-sdk/issues) or\n  contributing use cases to a feature request\n","funding_links":[],"categories":["测试"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funloggedio%2Funlogged-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funloggedio%2Funlogged-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funloggedio%2Funlogged-sdk/lists"}