All Versions
15
Latest Version
Avg Release Cycle
50 days
Latest Release
1329 days ago

Changelog History
Page 2

  • v1.0.0 Changes

    April 30, 2019

    After the previous two RC versions, we are so excited to finally release Hoverfly v1.0.0. We really appreciate all the contributions and feedback from the community!

    Partial JSON matching

    โœ… A big thanks to @dilitvinov, a new matcher (jsonPartial) is available to let you partially match a JSON document. You can find out more here here.

    Simulate and capture HTTP response trailers

    Some APIs use HTTP response trailers, and we have implemented a solution to capture them as normal headers:

    "response" : {
        "headers" : {
               "Trailer": ["X-Streaming-Error"],
               "X-Streaming-Error" : ["Connection Closed"]
         }
    }
    

    ๐Ÿš€ Kubernetes deployment using Helm

    Hoverfly Helm chart has been accepted into the official Helm incubator repository.

    ๐Ÿš€ You can simply run the following command to deploy Hoverfly into your Kubernetes cluster:

    helm install incubator/hoverfly
    

    โœ… You can find more details in the doc.

    ๐Ÿณ Alpine based Docker image

    ๐Ÿ— Thanks to @rusenask, the Hoverfly v1.0.0 Docker image will be much slimmer as it based on Alpine, and the Dockerfile uses multi-stage build.

    ๐Ÿ› Bug fixes

    • ๐Ÿ›  Thanks to @DanielJonesEB, we have fixed issues with using Go Modules and Hoverfly.
    • ๐Ÿš€ Goproxy dependency version is rolled back as it has a dramatic impact on HTTPS MITM performance since the release of v1.0.0-rc.1.
    • ๐Ÿ›  Fix security issues in Hoverfly UI.
  • v1.0.0-rc.2 Changes

    February 15, 2019

    ๐ŸŽ Performance improvement

    ๐Ÿš€ This release improves performance. These improvements will save both CPU time and reduce latency, in some cases by a significant margin. Thanks to the Hoverfly community for their assistance in identifying and fixing these issues.

    • ๐Ÿ‘€ Hoverfly used to parse templates on every response whereas it now caches the parsed templates. Expect to see a significant improvement if your load tests contain large templated responses.
    • The response body is now only read to check the content length when absolutely necessary.
    • ๐Ÿ›  We have also introduced a fixed size LRU cache for request/response caching. Hoverfly no longer encodes and decodes the cached value saving a lot of CPU time.
    • ๐Ÿ”ง The request/response cache is now fixed to 1000 entries by default which should remove the possibility of the cache exceeding the available memory. Its value can be configured with the following flag:

      $ hoverfly -cache-size 100

    ๐Ÿ› Bug fix

    ๐Ÿ›  Fixed an issue which prevented hoverctl controlling a remote hoverfly running in a Docker container: #801

  • v1.0.0-rc.1 Changes

    January 18, 2019

    ๐Ÿš€ Happy Friday! We are thrilled to announce an RC release of v1.0.0!

    ๐Ÿš€ The v5 simulation schema introduced since v0.17.0 is stable and easy to extend for more powerful request matchers. It lays a good foundation for us to implement matcher chaining to solve XML/JSON matching issues without introducing breaking changes. That's when we start considering a Hoverfly v1 release.

    Thank you for all your contributions, we are hoping to work with you again on more exciting features in the coming months, and make Hoverfly shines!

    โž• Adding delay based on Log-normal Distribution

    ๐ŸŒฒ Thanks to @podtserkovskiy's contribution, you can now enable random delay in a simulation based on log-normal distribution. Here is an example:

    "globalActions": {
             "delaysLogNormal": [
                {
                   "urlPattern": ".",
                   "httpMethod": "",
                   "min": 100,
                   "max": 10000,
                   "mean": 5000,
                   "median": 500
                }
             ]
          }
    

    where mean and median values could be calculated from your actual server response times, and Hoverfly generate random latencies that are lognormally distributed based on these parameters.

    ๐ŸŒฒ Controlling log level

    ๐Ÿš€ Default log level of Hoverfly is info, but if you prefer less noise or a bit concern about the performance overheads of info logging, you can control the log level with this release:

    $ hoverfly -log-level warn 
    

    ๐Ÿ”Š Which logs warning level or above (error, fatal and panic)

    ๐Ÿ› Bug fixes

    ๐Ÿš€ Some long-standing bugs have been addressed in this release, such as bugs that affect multi-value query capture, config.yaml loading and plain HTTP tunnelling.

    #704
    #752
    #786
    #792

  • v0.17.7 Changes

    October 25, 2018

    ๐Ÿ›  This is a pure bugfix release to address the following issues:

    Hoverfly crashed under heavy load in webserver mode

    โšก๏ธ While we helped the community with load testing issues using hoverfly, we fixed a few bugs causing hoverfly to crash under load. This includes transistive bugs from an old version of logrus, concurrent read/write access to map, and usage counter failed to update in webserver mode(#776)

    Query parameters were duplicated in the journal

    This bug can be confusing when you need to debug an unmatched request. As reported by hoverfly-java users SpectoLabs/hoverfly-java#187, the query parameters are duplicated in the closest-match debug message.

  • v0.17.6 Changes

    October 09, 2018

    ๐Ÿ‘ Two-way SSL authentication support

    ๐Ÿ‘ A huge thanks to @xiang-zhu's PR, Hoverfly finally has support for two-way SSL authentication. This new feature lets you capture or spy an HTTPS server that requires this authentication method. You can provide certificate key, client certificate and CA certificate with the following flags when starting hoverfly:

    --client-authentication-client-key
    --client-authentication-client-cert
    --client-authentication-ca-cert
    

    You must also provide a host pattern using --client-authentication-destination flag to tell Hoverfly which request hosts should be called using this authentication method.

    ๐Ÿ› Bug fix to capturing concurrent requests with state

    Thanks again to @john4744 for fixing a concurrency issue when doing stateful capture. Hoverfly should now generate the correct state values when capturing concurrent requests.