Git Product home page Git Product logo

hermes's People

Contributors

jgomezselles avatar pepeludev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

hermes's Issues

Improve testing for files under src/script

It has been noticed that the files under src/script folder are not really tested in a functional way, (just to get the coverage, which is a bit dangerous), so new tasks will be added.

Add License

I want to have a note in the Readme for the 3pp licenses. It might not be necessary, but just in case. (Gtest and boost).

Make docker images lighter

Hermes base and build can have some stuff, but maybe it has so much,
We could have hermes_prod with just the app, and hermes_test for component testing or something like that, from a basic alpine(?) image.

Parallel scripts

Running several clients with their own script/traffic and execution configuration (or shared) could be benefitial.

Multiple client endpoints

Is your feature request related to a problem? Please describe.
Not actually a problem, but a limitation which could provide a better testing environment.

Describe the solution you'd like
Extend the schema and the hermes logic to accept multiple clients (a section to define the server and port within a json list) instead of the current unique one.
So, you could define a traffic profile to, for example, launch an specific Request definition through an specific client endpoint (a new field should be added in the schema here to specify on which endpoint is desired to be sent), and then mix with other requests with different destinations.
The solution permits mixed-protocols testing relaying on REST API for those which are not http2 traffic servers.

Additional context
Imagine that your system under test is composed by the main process to test and then some server components mocking the data base or whatever facility provided to simulate the SUT context. Now imagine that those mocks have an smart REST API which could be used to inspect the traffic reveiced. From hermes you could also use that REST API as part of traffic validation delegating on those external agents. In this way you could make complex test flows including whatever kind of agent (servers, even clients, for different protocols, not only http2) just having a REST API for them which is based in http2 (or even http/1 with a nginx reverse proxy in fornt of them).
This feature could be backward compatible with a default definition (not a one-item-list but just accepting current schema definition or a list with 2 (or even 1) or more items).

Validate responses

Hermes is only validating response codes. Include body validation as well.

Fix UT

Test connection_test.incorrect_initialization_wrong_host is failing. Fix it in this task.

Add application testing

Hermes CI/CD checks shall have a way of testing the application itself. It might be done through helm chart installation and full k8s deployment.

In order for this to work, a server will be introduced, listening to requests. This is not only a way to ease the tests, but also a functionality which could give hermes a lot of power.

Multiple connections

Analyze and decide whether to use/configure multiple connections with a maximum number of streams to be negociated.

Execute hermes via h2 requests

Having a server listening for requests which will be able to START an execution will help tests and will add a whole new functionality. In this issue, some very basic PUT will be added.

Add istio podAnnotations to hermes helmchart

Right now, sidecar injection is done with a flag in the values.yaml file, and expanded in the deployment template.
Instead of that, podAnnotations shall be used as in hermes-example

Fix clang-format issues

The code was supposed to be already formatted. Running clang format, formats the code, so something is going on there.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.