Skip to content
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

Convert metrics/collect task into a load-test-with-fortio task with support for POST APIs #940

Closed
2 tasks
sriumcp opened this issue Aug 5, 2021 · 2 comments
Labels
area/tasks Iter8 tasks kind/enhancement New feature or request

Comments

@sriumcp
Copy link
Member

sriumcp commented Aug 5, 2021

Is your feature request related to a problem? Please describe the problem.
Fortio has numerous options for testing both GET and POST APIs. Currently, they are not available as part of metrics/collect task. In particular, testing POST APIs is not possible today with builtin metrics.

Describe the feature/solution you'd like

  1. Rename versions to versionInfo in metrics/collect task.
  2. Rename metrics/collect to load-test-with-fortio
  3. Use Iter8 defined constants {{ PayloadFile }} and {{ FortioOutputFile }}
  4. Support resolution of destinations with timeouts. Sometimes, this is checking readiness of routes (as opposed to readiness of kubernetes resources; they are different).
  5. Enable the use of any fortio load testing command. For example:
- task: load-testing-with-fortio
  with:
    resolve:
      destinations: ["hello.default", "hello-candidate.default"] # do not start if you cannot resolve these paths
      timeoutSeconds: 20
    versionInfo:
    - script: | # test a POST API. A fortio file named `output.json` is expected as a side-effect of the script
        curl https://payload.com -o {{ PayloadFile }}
        fortio load -json {{ FortioOutputFile }} -grpc -ping -grpc-ping-delay 0.25s -payload-file {{ PayloadFile }} -c 2 -s 4 hello.default
    - script: | # re-use payload.json from earlier script
        fortio load -json  {{ FortioOutputFile }} -grpc -ping -grpc-ping-delay 0.25s -payload-file {{ PayloadFile }} -c 2 -s 4 hello.default

Will this feature/solution bring new benefits for Iter8 users? What are they?
Better load testing, including ability to test POST APIs.

Will this feature/solution bring new benefits for Iter8 developers? What are they?
Leverage Fortio documentation. Leverage Fortio features for testing POST APIs.

Does this issue require a design doc/discussion? If there is a link to the design document/discussions, please provide it below.
Yes. See above.

How will this feature be tested?

  • Existing tests should pass.

How will this feature be documented?

  • Change to metrics/collect task documentation.
@sriumcp sriumcp added kind/enhancement New feature or request area/tasks Iter8 tasks labels Aug 5, 2021
@sriumcp sriumcp changed the title Rename versions in metrics/collect task to versionInfo Convert metrics/collect task into a load-test-using-fortio task Aug 8, 2021
@sriumcp sriumcp added the v2beta1 label Aug 8, 2021
@sriumcp sriumcp changed the title Convert metrics/collect task into a load-test-using-fortio task Convert metrics/collect task into a load-test-using-fortio task with support for POST APIs Aug 8, 2021
@sriumcp sriumcp changed the title Convert metrics/collect task into a load-test-using-fortio task with support for POST APIs Convert metrics/collect task into a load-test-with-fortio task with support for POST APIs Aug 9, 2021
@sriumcp
Copy link
Member Author

sriumcp commented Aug 9, 2021

Note: Please see #942

@sriumcp
Copy link
Member Author

sriumcp commented Aug 9, 2021

Related to #947

@sriumcp sriumcp removed the v2beta1 label Dec 16, 2021
@sriumcp sriumcp closed this as completed Dec 16, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/tasks Iter8 tasks kind/enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant