# Introduction > Welcome to the KushoAI docs. - [Introduction](https://docs.kusho.ai/index.md): Introduction - [Test suites](https://docs.kusho.ai/2-test-suites/index.md): A test suite is a collection of tests that KushoAI has generated for your API. On a high level, this is how test generation on KushoAI works: - [Test suite details](https://docs.kusho.ai/3-test-suite-details/index.md): Once you're done creating a test suite for your API, clicking on a test suite row on the Test Suites page will take you to the Test Suite Details page. All the tests generated by KushoAI for your API are displayed on this page, along with various operations that you can perform on them. - [Running tests](https://docs.kusho.ai/4-running-tests/index.md): Once you've created a test suite for your API, you can run the generated tests to verify that your API is working as expected from the Test Suite Details page. - [Assertions](https://docs.kusho.ai/5-assertions/index.md): Assertions allow you to define the expected behaviour of a test. Using assertions, you can automate the validation of API responses every time a test runs and get a pass/fail status for the test. - [Editing Tests](https://docs.kusho.ai/6-editing-tests/index.md): This documentation covers how to edit tests in Kusho, whether you're working with individual tests or multiple tests simultaneously. - [AI Test Editor 🔒](https://docs.kusho.ai/edit-tests/index.md): Introducing our chat-based test editor assistant with real-time updates. Describe what you want to do with your tests using natural language and see the output instantly. - [Dashboard 🔒](https://docs.kusho.ai/6-dashboard/index.md): The Metrics Dashboard provides insights into testing activity and usage within KushoAI. It is divided into three sections: - [Environments and Variables](https://docs.kusho.ai/8-env-vars/index.md): Environments in KushoAI allow you to manage different sets of variables for your test suites. This helps you run your tests across different environments (like development, staging, or production) without modifying your test cases. - [Test Report](https://docs.kusho.ai/9-reports/index.md): The Test Report feature in Kusho provides a comprehensive view of API test execution results. The report presents test outcomes in a clear tabular format, making it easy to track and analyze test suite performance. - [Adding more tests 🔒](https://docs.kusho.ai/10-adding-more-tests/index.md): Note: The Adding more tests feature is available only on our Enterprise plan. Please reach out to us at enterprise@kusho.co to enable this for your team. - [Tagging for tests](https://docs.kusho.ai/11-tagging-tests/index.md): Test case tagging is a powerful feature that helps organize and categorize your test cases for better management and execution. This documentation covers everything you need to know about working with tags in the test case management system. - [Pre-run Script](https://docs.kusho.ai/12-pre-run-scripts/index.md): Pre-run scripts are powerful JavaScript code snippets that execute before running a test or a set of tests. They play a crucial role in establishing the necessary conditions for testing scenarios, allowing for dynamic behavior and pre-processing of test parameters and environments. - [Groups 🔒](https://docs.kusho.ai/13-groups/index.md): Note: The Groups feature is available only on our Enterprise plan. Please reach out to us at enterprise@kusho.co to enable this for your team. - [Workspaces](https://docs.kusho.ai/14-workspaces/index.md): A Workspace in KushoAI is your central environment where all API keys, environment configurations, and team collaborations are organized. It helps you control access for different team members—making it easier to keep everything structured in one place. - [Test generation status page](https://docs.kusho.ai/15-staus-page/index.md): The Test Generation Status page provides a centralized dashboard to monitor and manage the test generation process for your uploaded API collections, OpenAPI specifications, or cURL commands. - [Running Tests from Your CI/CD Pipeline 🔒](https://docs.kusho.ai/16-ci-cd/index.md): Note: The CI/CD feature is available only on our Enterprise plan. Please reach out to us at enterprise@kusho.co to enable this for your team. - [End-to-End (E2E) Testing 🔒](https://docs.kusho.ai/17-e2e/index.md): Note: The End-to-End(E2E) testing feature is available only on our Enterprise plan. Please reach out to us at enterprise@kusho.co to enable this for your team. - [Exports](https://docs.kusho.ai/18-exports/index.md): The export feature allows you to download test suite data in a format of your choice. This includes all the data that you see on the webapp for a test suite- test description, request payload, assertions, etc. - [KushoAI Proxy Server](https://docs.kusho.ai/18-proxy/index.md): The KushoAI Proxy Server is a local Node.js application that enables seamless API testing when browser-based restrictions prevent direct API calls. This - [UI Testing Guide - CLI](https://docs.kusho.ai/19-ui-testing/index.md): KushoAI CLI takes your recorded user flows and generates exhaustive test variations. Record your user flow once, and KushoAI creates multiple test cases with different inputs, edge cases, and scenarios to provide thorough test coverage. - [Support](https://docs.kusho.ai/support.md): If you need assistance, feel free to reach out through the following channels: - [Using file upload bodies](https://docs.kusho.ai/21-file-upload-bodies/index.md): NOTE: This is available only for select users. If you're interested in enabling this, please reach out to us at enterprise@kusho.ai or your RM. - [Running tests with data](https://docs.kusho.ai/22-run-tests-with-data/index.md): NOTE: This is available only for select users. If you're interested in enabling this, please reach out to us at support@kusho.ai or your RM. ## Test suites - [Manually enter API details](https://docs.kusho.ai/2-test-suites/api-details.md): If you’re building a backend application and don’t have it all documented yet, you can manually enter your API information. - [Import from OpenAPI specs](https://docs.kusho.ai/2-test-suites/openapi-spec.md): If you use Swagger and have an OpenAPI spec available for your APIs, you can use this spec to provide API information to KushoAI and get started. Using the - [Import from Postman Collections](https://docs.kusho.ai/2-test-suites/postman.md): If you have your APIs on Postman, you can use the Postman collection option to bring them to KushoAI. Importing a Postman collection allows you to import multiple APIs into KushoAI in one go. - [Import using the cURL command](https://docs.kusho.ai/2-test-suites/curl.md): If you are using cURL for testing, you can add your API information using cURL commands like this: - [Errors and Workarounds](https://docs.kusho.ai/2-test-suites/errors.md): You might face issues during the generation of a test suite due to a variety of reasons. Here are some of the most common errors, their explanation and how to resolve them. - [Security Testing](https://docs.kusho.ai/2-test-suites/security.md): Security Testing in KushoAI enables you to detect vulnerabilities and weaknesses in your APIs and applications proactively. By simulating real-world attack scenarios, KushoAI helps ensure that your system is resilient against common threats like SQL injection, XSS, and insecure authentication flows. - [Create Test Suite From Documentation](https://docs.kusho.ai/2-test-suites/import-doc.md): Use Create Test Suite From Documentation when your team already has product, business, or design documentation and you want KushoAI to create a new test suite from it. ## Running tests - [Running a single test](https://docs.kusho.ai/4-running-tests/running-single.md): This is the simplest way to run tests on KushoAI. Running like this is useful when you're fixing a specific issue and want to check if it's working as expected by running a particular test. - [Running all tests](https://docs.kusho.ai/4-running-tests/running-all.md): If you want to run all tests in a test suite in one go, you can use the "Run All" option. Running tests like this is helpful to verify if all functionality for an API is working as expected and getting a high-level report. - [Running a subset of tests](https://docs.kusho.ai/4-running-tests/running-subset.md): Sometimes you have a specific subset of tests in mind that you want to execute. For example, - [Run groups](https://docs.kusho.ai/4-running-tests/run-groups.md): Groups are a way to cluster test suites in a container and perform operations on them simultaneously. For example, you might want to run tests for all APIs of a particular service in one go. - [Run settings](https://docs.kusho.ai/4-running-tests/run-settings.md): Run settings allow you to control the speed and parallelization of your test execution. Using these settings, you can specify how fast/slow your tests run when you run all or a subset of tests. - [Errors and workarounds](https://docs.kusho.ai/4-running-tests/errors.md): These are some common issues that you might face while running tests and how to get past them: - [Running tests from your CI/CD pipeline](https://docs.kusho.ai/4-running-tests/running-from-ci-cd.md): Running tests from the browser is convenient during the development phase of an API. However, once the code is merged, you may also want to continue checking the API for regressions by running tests during CI/CD. ## Assertions - [Generating assertions using AI](https://docs.kusho.ai/5-assertions/generation-using-ai.md): Writing assertions from scratch can be a cumbersome task. Most of the time, you need assertions to check the general structure of the API response to get started. - [Adding/editing assertions](https://docs.kusho.ai/5-assertions/adding-custom-assertions.md): "Generate using AI" is good to get started with assertions, but at some point, you will need to add your own assertions as per the requirement. KushoAI assertions can be written in JS in the Chai.js expect syntax. - [XML Assertions](https://docs.kusho.ai/5-assertions/xml-assertions.md): This comprehensive guide explains how to write XML assertions for testing XML responses in Kusho using the new xmlAssert API. ## Editing Tests - [Single Test Case Editing](https://docs.kusho.ai/6-editing-tests/single-test.md): This guide provides detailed instructions for editing individual test cases in Kusho. - [Multiple Test Cases Editing](https://docs.kusho.ai/6-editing-tests/all-tests.md): Navigate to your test suite. - [Define test data](https://docs.kusho.ai/6-editing-tests/define-test-data.md): Test data is data that is specifically created or selected to test the functionality of an API. This data will be used during test execution to validate whether the API behaves as expected under various conditions. - [Update from spec](https://docs.kusho.ai/6-editing-tests/update-from-spec.md): Use Update from spec when your API contract has changed and you want KushoAI to update an existing test suite from an OpenAPI or Postman JSON spec. ## Environments and Variables - [Creating Environments](https://docs.kusho.ai/8-env-vars/creating-envs.md): This guide walks you through the process of creating and managing environments in KushoAI. - [Creating Variables](https://docs.kusho.ai/8-env-vars/creating-vars.md): Learn how to create and manage variables within your KushoAI environments. - [Using variables in API request](https://docs.kusho.ai/8-env-vars/using-vars-in-payload.md): Learn how to use variables in your test suite payloads effectively. ## Test Report - [Generating Test Reports](https://docs.kusho.ai/9-reports/generating-report.md): Navigate to Your Test Suite Locate the test suite you want to generate the report for. - [Report Structure](https://docs.kusho.ai/9-reports/report-structure.md): Example Report ## Adding more tests 🔒 - [Adding tests using API payload](https://docs.kusho.ai/10-adding-more-tests/using-payload.md): This guide walks you through the process of adding tests using the payload feature in KushoAI. - [Adding tests using natural language input](https://docs.kusho.ai/10-adding-more-tests/using-ai.md): (Also known as "Adding tests using AI" on the KushoAI dashboard) - [Add Product Context](https://docs.kusho.ai/10-adding-more-tests/add-product-context.md): Use Add Product Context inside an existing test suite to generate additional tests from your product or business documentation. ## Tagging for tests - [Add/remove test tags](https://docs.kusho.ai/11-tagging-tests/add-remove-tags.md): Learn how to add and remove tags to organize your test cases effectively. - [Search using tags and running](https://docs.kusho.ai/11-tagging-tests/search-run.md): Learn how to filter and execute test cases using tags in the test management system. ## Pre-run Script - [Available Functions](https://docs.kusho.ai/12-pre-run-scripts/available-functions.md): Kusho provides a set of powerful functions to use in your pre-run scripts. These functions are designed to help you manage variables, make API requests, and log debug information. - [Implementation Guide](https://docs.kusho.ai/12-pre-run-scripts/implementation.md): To implement a pre-run script in Kusho: - [Examples](https://docs.kusho.ai/12-pre-run-scripts/advanced.md): In this scenario, we'll implement a dynamic environment selection process based on a configuration variable. - [Best Practices](https://docs.kusho.ai/12-pre-run-scripts/best-practices.md): Modularize Your Code: Break down complex logic into smaller, reusable functions for better maintainability. - [Request Manipulation and Advanced Features](https://docs.kusho.ai/12-pre-run-scripts/request-manipulation.md): Advanced pre-run script features provide powerful capabilities for dynamic request manipulation, conditional script execution, and sophisticated test automation. - [Postman Script Support](https://docs.kusho.ai/12-pre-run-scripts/postman-support.md): Kusho supports commonly used Postman scripting patterns in pre-request and post-response scripts. This makes it easier to reuse scripts from Postman collections and to write scripts using familiar Postman APIs. - [Troubleshooting](https://docs.kusho.ai/12-pre-run-scripts/troubleshooting.md): If you encounter issues with your pre-run scripts, consider the following steps: ## Groups 🔒 - [Creating and Managing Groups](https://docs.kusho.ai/13-groups/creating-groups.md): Groups in Kusho help you organize related test suites together for better management and execution. Groups are especially useful when you have multiple test suites that test similar functionality or are part of the same API service. - [Add/remove test suites from groups](https://docs.kusho.ai/13-groups/add-remove-ts.md): Select multiple test suites using the checkboxes on the left on the test suite page. - [Run group](https://docs.kusho.ai/13-groups/run-group.md): Running groups enables you to execute multiple test suites together, maintaining organization and providing consolidated results. You can choose different environments and generate comprehensive reports for your test executions. ## Workspaces - [Managing API keys](https://docs.kusho.ai/14-workspaces/api-keys.md): API keys in KushoAI allow secure authentication when running tests from your CI/CD pipelines. They ensure your test suites execute automatically with every commit without manual setup. ## Running Tests from Your CI/CD Pipeline 🔒 - [How CI/CD Execution Works](https://docs.kusho.ai/16-ci-cd/general-instr.md): All CI/CD test execution in KushoAI is powered by Docker containers, providing consistent and reliable test execution across all supported platforms. The Docker test runner handles various execution modes and integrates seamlessly with your existing CI/CD workflows. ### Platform-Specific Setup - [Platform-Specific Setup](https://docs.kusho.ai/16-ci-cd/platform-specific-instr/index.md): KushoAI provides Docker-based CI/CD integration that works with all major platforms. Each platform has specific configuration requirements and best practices for Docker execution. - [Jenkins](https://docs.kusho.ai/16-ci-cd/platform-specific-instr/jenkins.md): Jenkins provides flexible Docker integration through plugins and pipeline scripts, making it suitable for self-hosted KushoAI testing workflows. - [GitHub Actions](https://docs.kusho.ai/16-ci-cd/platform-specific-instr/gh-actions.md): GitHub Actions provides native Docker support with Ubuntu runners, making it easy to integrate KushoAI testing into your workflows. - [GitLab CI/CD](https://docs.kusho.ai/16-ci-cd/platform-specific-instr/gitlab.md): GitLab CI/CD provides excellent Docker support with Docker-in-Docker (DinD) services, making it perfect for KushoAI test integration. - [Azure DevOps](https://docs.kusho.ai/16-ci-cd/platform-specific-instr/azure-devops.md): Azure DevOps provides excellent Docker integration with managed agents and Azure Container Instances, making it ideal for enterprise KushoAI testing workflows. - [AWS CodeBuild](https://docs.kusho.ai/16-ci-cd/platform-specific-instr/aws-codebuild.md): AWS CodeBuild provides managed Docker environments with excellent container support, making it perfect for KushoAI testing in AWS-native CI/CD pipelines. - [Variable Overrides for E2E Tests](https://docs.kusho.ai/16-ci-cd/variable-overrides.md): NOTE: This is available only for E2E test suites as of now. This will be available for individual test suite execution soon. - [Adding Setup and Teardown Stages to Your Kusho E2E Tests](https://docs.kusho.ai/16-ci-cd/setup-teardown-data-flow.md): If you're already running Kusho E2E tests in GitHub Actions using tags and want to add setup and teardown stages that pass data between them, here's how to do it. ## End-to-End (E2E) Testing 🔒 - [E2E Scripting Guide](https://docs.kusho.ai/17-e2e/e2e-scripting.md): The E2E Scripting feature allows you to write JavaScript code that executes after each API call in your workflow. This enables you to extract data from responses, perform transformations, and pass values between APIs in your test flow. - [Conditional Retry Settings](https://docs.kusho.ai/17-e2e/conditional-retry-documentation.md): Conditional Retry allows you to automatically retry API calls until a specific condition is met or a timeout is reached. This is particularly useful for