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
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.