Gojira
Gojira is a record and replay based regression testing tool.
Features
- Record and Replay framework for single request-response scope executions, that goes beyond just recording http request and response data, by additionally enabling recording of any call, external to the jvm, and storing them against a single test-id.
- Start your JVM in 5 modes: PROFILE(for recording), TEST(when replaying), NONE and SERIALIZE(test de-serialization of recorded data), DYNAMIC(for request level mode setting).
- javax.servlet based Filter for capturing HTTP request(uri, headers, method, body, queryparams) and response(status code, headers, body) data.
- Request sampling capabilities based on URI signature and time-based sampling.
- Annotation based method interception support with Guice to capture method data - arguments before and after method execution, and return or exception data.
- Custom serialization handlers, compare handlers and hash handlers per method argument and return or exception data.
- Intermediate storage during recording in a BigQueue before flushing to data-store.
- Interfaces to plug-in data-store for storing recorded data.
- Test executors for running tests in replay mode.
- Very low overhead during NONE and PROFILE mode. TODO: Add metrics.
- Adding new mode called TRANSFORM which will provide hooks to client to modify existing profiled data to adhere to contract changes
Changelog
Getting Started
Users
Contribution, Bugs and Feedback
For bugs, questions and discussions, please use Github Issues.
For contributions, please check Contributions
License
Copyright 2020 Flipkart Internet, pvt ltd.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.