Skip to content

Adding API as a test category - #17

Open
alexis-moreno-0 wants to merge 5 commits into
brentkastner:mainfrom
alexis-moreno-0:feature/add-api-test-generation-logic
Open

Adding API as a test category#17
alexis-moreno-0 wants to merge 5 commits into
brentkastner:mainfrom
alexis-moreno-0:feature/add-api-test-generation-logic

Conversation

@alexis-moreno-0

@alexis-moreno-0 alexis-moreno-0 commented Feb 24, 2026

Copy link
Copy Markdown

Description

Adding API as a test category logic, and also adding the possibility to filter by category.

Changes

Adding API as a test category
Adding category filter

Checklist

  • I have read the Contributing Guide
  • Tests pass locally (python -m pytest)
  • I have added/updated tests for my changes (if applicable)
  • I have updated documentation (if applicable)
  • This does not introduce breaking changes

@alexis-moreno-0
alexis-moreno-0 marked this pull request as ready for review February 25, 2026 15:19
@brentkastner

Copy link
Copy Markdown
Owner

Can you explain how this works in practice? Does it crawl API endpoints in some way or does it need that array populated? Can you give some background on where this type of testing would be valuable as the APIs are reflected by page content and page functionality?

@alexis-moreno-0

Copy link
Copy Markdown
Author

Can you explain how this works in practice? Does it crawl API endpoints in some way or does it need that array populated? Can you give some background on where this type of testing would be valuable as the APIs are reflected by page content and page functionality?

Usually we add API tests to automation frameworks because they fail faster than UI tests. We use them as a baseline for runs, if the whole API suite fails, there is a backend or network issue rather than a UI problem. In this framework specifically, API tests are also generated slightly faster than UI tests.

Since there's no Swagger file or external docs to generate tests from, the network traffic captured during crawling (_attach_network_listener) is used instead. The endpoints are filtered by the backend_url set in config (in the planner.py) and sent to the LLM to generate tests against. We also have a fallback if the AI didn't generate a test for a captured endpoint, a basic status check gets generated.

@brentkastner

Copy link
Copy Markdown
Owner

Good explanation I will review today

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants