Unlogged - Open Source tool for mocking, testing & optimising | Product Hunt

Mock, Monitor, Replay, and Test with Ease

Boost your Java development with one-click mocks, automated unit test generation, and real-time performance tracking—all open source!

Record and Replay
Custom Assertions
Mocking with recorded data

How does it compare 🤔 ?

Also, unlike others - our open-source solution thrives offline, ensuring your code remains securely on your premises 🔒.

Avoid the exponential cost in bug fixing!

Replay pre-recorded traffic as you code and know what you are breaking, instantly.

The Game-Changing Benefits for Java Developers

Save time, deploy confidently, and ensure code stability with Unlogged's automated snapshot testing for Java developers.

Save Time

Unlogged automatically captures the input and return values, and alerts you of possible breaking changes, instantly. This means faster time to market and faster bug fixes.

Record and Replay

You can now record method inputs and return values on a remote machine, which can then be easily replayed locally for testing purposes. This streamlined process saves developers time and effort.

Code and Deploy Confidently

As developers, we wished to know what we are going to break in production as we code. With Unlogged, you know what you are breaking, right when you code. You can now deploy your changes more confidently.

Call Java Methods Directly

It’s frustrating to debug deep down in your code with Swagger or Postman. You can now call any Java methods directly, and start debugging where it matters.

Mocking on Demand

It's impossible to keep all microservices running all the time. We let you mock API, DB calls, downstream services & file operations with the recorded data. What's more: you can even define mocks as you code without any recording.

Combined Unit and Integration Testing

Unlogged provides the convenience of both Unit and Integration tests combined in a single tool. You can finally move on from the unit vs integration tests debate, since Unlogged offers both in one.

unlogged logo cutout
How does it work?
We hot reload your code changes and re-run only the changed function with a set of pre-recorded inputs. We then compare the return values of these functions and tell you if something changed.
We have been using Unlogged for the past few months and it has been a value add given that we are a startup and we don't really have enough bandwidth to spend on writing unit tests and thinking about code coverage. It helps us generate unit tests within minutes and is easy once you get used to it! It took us sometime to use it when the product was in early stage but the Unlogged team has been very proactive in resolving the blockers!
Yatharth Lakhera
Senior Software Engineer, Ayuhealth
We are the early adopters of Unlogged to automatically generate the unit test cases for our Java code. We were pleasantly surprised to see the results of what this plugin provided us that normally used to take manual efforts of ~2-3 hours by our developers. The team at Unlogged was very much supportive to help our developers train and start using the tool effectively. We would continue to use the tool for all of our remaining codebases. Can't wait to try out the next set of features.
Pranav Khambayatkar
VP & Head of Engineering
Is your dev team tired of similar issues?
Mocking is hard icon
Long feedback loops
Developers wait for the end to end tests to run and know what they are breaking.
2x work icon
Maintaining Unit Tests
Unit Tests, although very useful, have a fickle life span. They need to be maintained and re-written even for small code changes to keep up with the code coverage policy.
feature icon
Mocking does little help
Unit tests mock a lot of dependencies, and external calls. In reality, a lot of issues are found in integration tests. Atomic Run executes changed code in integrated fashion.
end to end icon
Tracing and Logging
Figuring what went wrong on production, and re-creating scenarios that led to a bug, could be time taking and frustrating.
legacy code icon
Unending Regressions
Despite investing a lot of time and resources in QA, something breaks in production. More testing seems to delay feature release timelines.
unending regression bug icon
Meeting Coverage Goals
Writing unit tests takes time. Some of the teams we work with spent 50% of their time writing unit tests. For every new feature, meeting the policy of 90% plus code takes a lot of time from development work.
faq icon

FAQs

Join our discord channel for any other questions.

How does Unlogged work?
dropdown icon

Unlogged uses bytecode instrumentation to intercept method calls and log their input arguments and return values. These logs are then stored in a structured format for later replay. Check our blog to learn more about it.

What are the benefits of using Unlogged?
Dropdown icon

Unlogged provides a powerful mechanism for regression testing, allowing developers to quickly verify the correctness of their changes by replaying recorded scenarios. It helps catch potential bugs right when you code.

Which programming languages does Unlogged support?

Currently, Unlogged supports Java backend projects. However, we are working on supporting Kotlin, Scala, Python, JavaScript, and GoLang in the future.

Can I use Unlogged in my production environment?

Unlogged is primarily intended for use in development and testing environments. It is not recommended to use it in production, as it introduces overhead due to the logging and recording.

How do I integrate Unlogged into my Java project?

To use Unlogged, you'll need to include the Unlogged dependency in your project and follow the provided setup instructions. Check the documentation to learn about this.

Can I customize what methods to log?

Currently, just adding the annotation @Unlogged records every method inside your Java code. In future, Unlogged will allow you to specify which methods you want to log and which ones to exclude. This level of customization will help manage the size of the logs and avoid logging sensitive data.

Are there any performance implications of using Unlogged?

While Unlogged can introduce some overhead due to the additional logging and recording, it is generally designed to have a minimal impact on performance. However, it's essential to use it judiciously and not in production environments.

Does Unlogged support asynchronous and multi-threaded code?

Yes, Unlogged can handle asynchronous and multi-threaded code. It maintains the context and thread-specific logs to ensure accurate recording and replay.

Can Unlogged handle changes in method signatures?

Currently, changes in the method signature need a re-recording. We are working on handling these changes gracefully.

Is Unlogged an open-source project?

Yes, Unlogged is an open-source project with its code repository and community support.

Where can I get help or report issues with Unlogged?

For any inquiries, issues, or community discussions, you can visit our GitHub repository.

Here's how you can get friendship privileges👇🏻

Coffee's on us 😄

Be a part of our Open Source Community!
unlogged logo cutoutunlogged logo cutout