Case studies API automation using python

API Automation Using Python

API Automation Using Python
Overview

NIO is much more than a car company. It designs, manufactures, and sells smart and connected premium electric vehicles, driving innovations in next generation technologies in connectivity, autonomous driving and artificial intelligence. This project is based on automation of cars and providing people free from driving, giving freedom of time. Users and their roles are assigned for security purpose.

Business Need
  • NIO autonomous driving product (VEDA App’s) team requested DR to analyze and identify a best opensource Python based framework for their validation needs
  • To automate test cases of every API, using Requests module in Python.
  • Products had complex E2E scenarios interacting with multiple 3rd-party services
  • Improve coverage & prevent defect leakages to ensure world-class quality product in autonomous driving space
Client Situation
  • Automate all APIs in Pytest-BDD for regression testing
  • Execute all scripts within less span of time
  • Build an automation framework for huge data load references and validation in their back end
  • Build robust and high scalable automation regression suite to support their sprint cycles
  • Run test suite using the continuous integration tool
  • Reduce regression cycle time by at least 70%.
Recommended Solution
  • DevRabbit developed a framework after couple of months analysis on different opensource tools, technologies and integrations, concluded Python with Requests module
  • We worked on an iterative and incremental plan for automation scripts development
  • Used Request module in Python for API automation with high reusability and less LOC by adhering to OOPs concepts
  • Integrated Code Coverage for all API scripts
  • Integrated with CI and CD environment
  • Updated the API automation suite, and expanded coverage
Results
  • Client achieved 100% test automation coverage and executed all scripts within less span of time
  • Reduced the regression cycle time by 70%, and thereby shortened release timelines
  • Executed all test scripts through Jenkins in all different OS combinations which helped in identifying issues much faster than ever before.
  • Reduced time of manual testing during feature enhancements and development
Tools
  • Python Requests module
  • Pytest-BDD