-
Notifications
You must be signed in to change notification settings - Fork 4.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[EPIC] E2E testing tool #15152
Comments
@alexandr-shegeda |
@DoNotPanicUA all looks good, the only suggestion is to move |
This step means filling test data using config files. The tool will generate data on the fly. |
Tagging @bleonard, @sherifnada and @davinchia for review |
I like the approach. Please file Github issues for the first stage and include @davinchia and me as reviewers when creating PRs. |
Some suggestions:
|
+1 , using the CLI will reduce the maintenance burden in the case of Airbyte API evolutions: the CLI is responsible for adapting to Airbyte API changes. |
I've inspected the possibility of using Octavia CLI as part of the solution. I don't see a good integration between the E2E testing tool and Octavia CLI. |
Tell us about the problem you're trying to solve
Our main goal is to implement an E2E testing tool that should test Airbyte connections via CI. This testing tool will test different connector versions close to the user experience. Such E2E testing will help us to detect possible integration issues before a version release.
Potential issues:
Note! This solution is inspired by the previously designed similar tool. #8243
Describe the solution you’d like
Stage 1. POC - Done ✔️
The initial stage provides us with fundamental functionality.
In addition, it's enough to start integration with potential benchmark frameworks.
Main flow diagram
Scenario example
Stage 2. Credential customization - Done ✔️
This stage allows specifying the Airbyte instance, source, and destination credentials.
Update version
scenario actionStage 3. Run configuration - Done ✔️
source_with_connector_settings
create_custom_connector
get_source_version
get_destination_version
Stage 4. Docker & CI - Done ✔️
result class
into fileresult class
in the GA and put it into the commetExample
List all scenarios
command :Example
Help
command :Example
Run sync
command :Example
Fail sync run
command :Checkpoint - Reached 🎉
We have a fully operational E2E test tool that can interact with an existing Airbity instance and running sources or destinations.
The CI commands and predefined configs allow us to run integration tests for specific source-destination combinations.
In this state, we can already cover such cases:
Stage 6. Benchmark - In progress 🏗️
Stage 5. Autonomous run - Done ✔️
Stage 5.1. Implement destination containers
...
Stage 7. Test data generation on the fly
Stage 8. Result comparison
To detect possible issues in the new version, we should compare the results of the current version and the new version's results. If we don't expect any changes in the result, the structure and data should be equal.
Note! Some changes lead to different results (like fixes). In this case, we will accept a flag like
diff_is_expected
.Checkpoint
Here we have an automated testing tool that can be scheduled on CI tasks or run on demand with different configurations and data sets.
The main advantage of the tool is true E2E. Such testing guarantee that we validate the whole system before a version release.
The text was updated successfully, but these errors were encountered: