apidash icon indicating copy to clipboard operation
apidash copied to clipboard

PoC GSOC API Testing Suite - Abhinav Sharma

Open abhinavs1920 opened this issue 1 year ago • 1 comments

PR Description

This PR introduces the initial Proof of Concept implementation of the API Testing Suite, as outlined in my GSoC proposal. The suite extends APIDash’s testing capabilities with a drag-and-drop workflow builder, stress testing tools, and a fake data generation service.

Features Implemented

Workflow Builder

  • Added a drag-and-drop canvas for building API workflow chains
  • Node and connection layers implemented for visual flow representation
  • Execution engine supports sequential API call execution
  • Basic state management for execution (start/pause/stop)

Stress Testing

  • Developed a stress testing service for parallel API execution
  • Utilized isolate-based processing for better performance
  • Tracks results with basic metrics (response time, status codes, etc.)
  • UI elements included to display test results and summaries

Fake Data Provider

  • Created a service for generating random test data (emails, usernames, etc.)
  • Supported random data injection into request bodies
  • Interface to configure generation parameters

Current Limitations

  • Error handling in edge cases is limited
  • UI requires further refinement for improved usability
  • Workflow Builder lacks conditional node types
  • Test result visualization is basic (to be enhanced in future iterations)
  • Lot of checks are not added in it.

Next Steps

As per the GSoC roadmap:

  • Enhance Collection Runner with advanced execution options
  • Add conditional logic support to Workflow Builder
  • Implement detailed monitoring and analytics

I have made limited use of AI tools such as ChatGPT and Claude, primarily for occasional code suggestions, template generation, and documentation assistance.

Related Issues

  • Closes #

Checklist

  • [x] I have gone through the contributing guide
  • [x] I have updated my branch and synced it with project main branch before making this PR
  • [x] I am using the latest Flutter stable branch (run flutter upgrade and verify)
  • [x] I have run the tests (flutter test) and all tests are passing

Added/updated tests?

  • [] Yes
  • [x] No, and this is why: This is currently just a PoC for the proposal given.

OS on which you have developed and tested the feature?

  • [x] Windows
  • [ ] macOS
  • [ ] Linux

abhinavs1920 avatar Apr 22 '25 11:04 abhinavs1920

Hi @ashitaprasad @animator @DenserMeerkat I have added this PR to show my PoC for API Testing Suite, I mainly focused on setting up the project structure and ensuring proper separation of concerns. The code is loosely coupled so that api_testing_suite exists as a separate package and is not placed inside the main src, as per with APIDash’s existing architecture.

I plan to continue working on it, but I’ll have limited time over the next week due to upcoming examinations.

I would be really appreciate a review—good or bad. I just want honest feedback at this stage to know if I’m heading in the right direction.

Thanks a lot!

abhinavs1920 avatar Apr 22 '25 11:04 abhinavs1920

@ashitaprasad @ashitaprasad @DenserMeerkat Hi, Is there any feedback for approach I used, I would like to implement further things in this PoC. Let me know if the implementation is well suitable for the project?

Thanks!

abhinavs1920 avatar Apr 29 '25 07:04 abhinavs1920

You can proceed and build further.

animator avatar May 03 '25 04:05 animator

Your PR includes a lot of unnecessary changes. Also, the commit history is not proper. Please make a fresh branch, do changes and raise a new PR.

animator avatar May 17 '25 07:05 animator