An open API service indexing awesome lists of open source software.

https://github.com/unloggedio/unlogged-sdk

Unlogged SDK for recording JAVA code execution
https://github.com/unloggedio/unlogged-sdk

assertions automated-testing debugging-tool java junit junit5 mocking mockito regression-testing test-automation

Last synced: about 2 months ago
JSON representation

Unlogged SDK for recording JAVA code execution

Awesome Lists containing this project

README

        






Record. Replay. Test.


Documentation ·
Bug Bounty ·
Maven ·
IntelliJ Plugin







# Unlogged Java SDK

Unlogged Java SDK enabled recording of code execution in a binary format.

Replay these records using the [Unlogged IntelliJ Plugin](https://plugins.jetbrains.com/plugin/18529-unlogged) and generate junit test cases.

The recording is highly detailed and can be used to reconstruct the code execution from scratch.
The [binary format descriptions](https://github.com/unloggedio/common/tree/master/src/main/kaitai) are available in Kaitai format here

- 🎬 Execute Java methods in your process right from your IDE
- 🖥️ Replay one or all recorded executions and see the differences in response in real time
- 🎯 Setup assertions on individual keys in response objects
- 🎭 Mock downstream calls as easily as setting up a breakpoint
- 🩺 Identify bottlenecks in your code with perf numbers right above the method declaration
- 🦠 Create JUnit test cases from recorded executions

### Additional Screenshots

🎬 Direct Invoke
Direct Invoke Java methods

🖥️ Replay
Replay history of code execution

🎭 Mocking
Mock downstream calls

🎯 Assertions
Assertions in regression tests

🦠 JUnit Test case
Generate junit test cases

## Usage

1. Include dependency

### Maven
```xml


video.bug
unlogged-java-sdk
0.2.16

```

### Gradle

```groovy
dependencies
{
implementation 'video.bug:unlogged-sdk:0.2.16'
annotationProcessor 'video.bug:unlogged-sdk:0.2.16'
}
```

2. Add `@Unlogged` annotation to your application entry point
```java
public class Main {
@Unlogged
public static void main(String[] args) {
//
}
}
```

## Disabling unlogged-sdk

It is highly recommended that you disable the unlogged-sdk when deploying for usage. unlogged-sdk is only targetted
for local usage only.

Adding the unlogged-sdk adds probes to your code which emits events in a binary format. Adding the `@Unlogged`
enabled to actual execution of those probes.

### To disable at compile time

```bash
mvn package -Dunlogged.disable
```

or

```bash
./gradlew build -Dunlogged.disable
```

### To disable at runtime (if not disabled at compile time)

```java
@Unlogged(enable = false)
```

You can find the latest release version here: https://mvnrepository.com/artifact/video.bug/unlogged-sdk

## Contributing

We welcome all contributions! There's many ways to contribute to the project,
including but not limited to:

- Opening a PR
- [Submitting feature requests or bugs](https://github.com/unloggedio/unlogged-sdk/issues/new)
- Improving our product or contribution documentation
- Voting on [open issues](https://github.com/unloggedio/unlogged-sdk/issues) or
contributing use cases to a feature request