<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Arin Kishore</title>
    <description>The latest articles on DEV Community by Arin Kishore (@kishorecodesinpython).</description>
    <link>https://dev.to/kishorecodesinpython</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3326608%2Ffa70cada-5990-4558-8110-574cae35843d.png</url>
      <title>DEV Community: Arin Kishore</title>
      <link>https://dev.to/kishorecodesinpython</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kishorecodesinpython"/>
    <language>en</language>
    <item>
      <title>From 0 to 100% API Test Coverage with Keploy AI – My Journey</title>
      <dc:creator>Arin Kishore</dc:creator>
      <pubDate>Sat, 05 Jul 2025 19:19:54 +0000</pubDate>
      <link>https://dev.to/kishorecodesinpython/from-0-to-100-api-test-coverage-with-keploy-ai-my-journey-2bd4</link>
      <guid>https://dev.to/kishorecodesinpython/from-0-to-100-api-test-coverage-with-keploy-ai-my-journey-2bd4</guid>
      <description>&lt;p&gt;Over the past few days, I had the amazing opportunity to work on API testing using Keploy AI as part of the Keploy API Fellowship. In this post, I’ll walk you through everything I did — from building a Node.js API to running AI-powered tests and integrating it into a CI/CD pipeline.&lt;/p&gt;

&lt;p&gt;🔧 My API Project&lt;br&gt;
I built a Student Manager API using:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Node.js &amp;amp; Express – for the backend&lt;/li&gt;
&lt;li&gt;MongoDB Atlas – as the database &lt;/li&gt;
&lt;li&gt;Swagger – to document the API&lt;/li&gt;
&lt;li&gt;Endpoints for GET, POST, PUT, DELETE at /api/students&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;GitHub Repository:&lt;br&gt;
&lt;a href="https://github.com/kishorecodesinpython/student-api-server" rel="noopener noreferrer"&gt;https://github.com/kishorecodesinpython/student-api-server&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🧪 Task 1 – API Testing with Keploy AI&lt;br&gt;
Step 1: Created an OpenAPI Schema&lt;/p&gt;

&lt;p&gt;I defined all endpoints and schemas using Swagger UI, hosted at /api-docs.&lt;/p&gt;

&lt;p&gt;Step 2: Ran Keploy in Docker&lt;/p&gt;

&lt;p&gt;Since I’m using Windows, I had to use Docker with WSL2. I ran this command: docker compose up --build&lt;br&gt;
This built and launched my API and Keploy CLI together inside containers.&lt;/p&gt;

&lt;p&gt;Step 3: Recorded API Calls&lt;/p&gt;

&lt;p&gt;I sent multiple requests using curl and Postman to record traffic, while Keploy captured them in real-time. Then I ran: keploy test ...&lt;br&gt;
This generated multiple test cases from actual traffic. I got a Test Drive report with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;27 Test Suites&lt;/li&gt;
&lt;li&gt;20 Accepted&lt;/li&gt;
&lt;li&gt;7 Rejected&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Step 4: Debugging Docker &amp;amp; Environment Issues&lt;/p&gt;

&lt;p&gt;This was not all smooth! I faced a few problems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Docker WSL2 was broken (resolved via reset and reinstall)&lt;/li&gt;
&lt;li&gt;MongoDB URI wasn’t passed properly (fixed using dotenv)&lt;/li&gt;
&lt;li&gt;Curl commands needed to be corrected for schema match&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Step 5: CI/CD Integration&lt;/p&gt;

&lt;p&gt;I integrated Keploy testing into a GitHub Actions pipeline, which automatically:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Built my app using Docker&lt;/li&gt;
&lt;li&gt;Ran all tests&lt;/li&gt;
&lt;li&gt;Validated test outputs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🌐 Task 2 – Chrome Extension API Testing&lt;br&gt;
I explored the Keploy Chrome Extension to test real-world APIs.&lt;/p&gt;

&lt;p&gt;Site 1: DummyJSON&lt;br&gt;
I captured a GET request to /products using the Chrome console and the Keploy extension.&lt;/p&gt;

&lt;p&gt;Site 2: JSONPlaceholder&lt;br&gt;
Tested endpoints like GET /posts, POST /posts, and validated response handling.&lt;/p&gt;

&lt;p&gt;The Chrome Extension made it incredibly easy to record calls and generate test cases on the fly.&lt;/p&gt;

&lt;p&gt;💡 What I Learned&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Keploy’s AI-generated tests helped me go from zero to complete test coverage in minutes.&lt;/li&gt;
&lt;li&gt;Docker with WSL2 on Windows takes patience and careful setup.&lt;/li&gt;
&lt;li&gt;The Chrome extension is perfect for testing third-party/public APIs.&lt;/li&gt;
&lt;li&gt;CI/CD test integration adds confidence to production readiness.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;📸 Final Screenshots I Shared:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Swagger API Docs UI&lt;/li&gt;
&lt;li&gt;Keploy “Test Drive” bunny report&lt;/li&gt;
&lt;li&gt;Docker logs running Keploy&lt;/li&gt;
&lt;li&gt;MongoDB connected confirmation in terminal&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🏁 Conclusion&lt;br&gt;
Thanks to Keploy, I transitioned from writing tests manually to using AI for full automation. This fellowship was one of the most hands-on testing experiences I’ve had — and I’ll definitely be applying these workflows to future projects.&lt;/p&gt;

&lt;p&gt;GitHub Repo:&lt;br&gt;
&lt;a href="https://github.com/kishorecodesinpython/student-api-server" rel="noopener noreferrer"&gt;https://github.com/kishorecodesinpython/student-api-server&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let me know what you think or if you want to connect!&lt;/p&gt;

&lt;h1&gt;
  
  
  Keploy #APITesting #CI_CD #Nodejs #MongoDB #Docker #OpenSource #AIinTesting #KeployFellowship
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6jh44lm7arblas4dkqjf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6jh44lm7arblas4dkqjf.png" alt="Image description" width="800" height="449"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fufrfwmlyjk6jjntdzyk7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fufrfwmlyjk6jjntdzyk7.png" alt="Image description" width="800" height="449"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdp4ezfhigl2kpyy2cd1c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdp4ezfhigl2kpyy2cd1c.png" alt="Image description" width="800" height="449"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe2xvue9agiv5mksct9xn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe2xvue9agiv5mksct9xn.png" alt="Image description" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>api</category>
      <category>testing</category>
      <category>ci</category>
      <category>keploy</category>
    </item>
  </channel>
</rss>
