Skip to content
Krishna Panjiyar
Developer ToolingBackend

API Test Automation Framework (Esri internship)

A pytest framework for upload APIs: 22 tests across 9 endpoints, adopted as the team standard, 17 regressions caught.

  • Python
  • pytest
  • REST APIs
  • CI/CD
  • Unix/Linux
  • Windows

Internal work. The code is private, so this page stays at the level of detail on my resume.

Results

  • 17

    regressions manual testing had missed

  • 15 to 3.5

    minutes per full run

  • 9

    endpoints covered on 2 platforms

Problem

Regression testing for the ArcGIS Enterprise Uploads APIs ran on legacy ReadyAPI suites that took about 15 minutes per full run, and some regressions were getting past manual testing.

My role

I built the framework from scratch during my internship and designed its end-to-end upload workflows. Details here stay at the level of my resume.

Architecture

Architecture diagram: Reusable fixtures drive parametrized tests through the full upload lifecycle on two platforms.Architecture diagram: Reusable fixtures drive parametrized tests through the full upload lifecycle on two platforms.
Reusable fixtures drive parametrized tests through the full upload lifecycle on two platforms. Open full size (opens in a new tab)Open full size (opens in a new tab)
Diagram source (Mermaid)
flowchart TD
  F["Reusable pytest fixtures"] --> T["22 test functions, 33 parametrized cases, 9 subtests"]
  T --> W1["Single-file upload workflow"]
  T --> W2["Multipart upload workflow (files up to 200MB)"]
  W1 --> L["Upload, commit, download, integrity check, cleanup"]
  W2 --> L
  L --> E["9 REST endpoints"]
  T --> P["Runs on Unix/Linux and Windows"]
  T --> CI["Code-reviewed, CI/CD-ready"]

Key decisions and tradeoffs

Test whole workflows, not single calls
Each test walks an upload through commit, download, integrity validation, and cleanup. Regressions that only appear between steps get caught.
Fixtures and parametrization over copy-paste
Shared fixtures and parametrized cases let one test function cover many inputs, which is why 22 functions span 33 cases and stay maintainable.
AI agents for scaffolding, humans for judgment
I used AI coding agents to speed up test scaffolding and edge-case discovery, then ran validation harnesses that checked the generated code for correctness, performance, and security before it went into review.

What I'd improve next

  • Write a public, generic version of the pattern (fixtures plus lifecycle tests) as a small open-source example.