End-to-End REST Service Testing Automation

Slides:



Advertisements
Similar presentations
Server Access The REST of the Story David Cleary
Advertisements

General introduction to Web services and an implementation example
A Java Architecture for the Internet of Things Noel Poore, Architect Pete St. Pierre, Product Manager Java Platform Group, Internet of Things September.
INTERNET DATABASE Chapter 9. u Basics of Internet, Web, HTTP, HTML, URLs. u Advantages and disadvantages of Web as a database platform. u Approaches for.
Web Services Michael Smith Alex Feldman. What is a Web Service? A Web service is a message-oriented software system designed to support inter-operable.
Performance testing of Progress Appservers and a plug-in for Jmeter
Lightning Talk Fred Rodriguez Nguyen Do CPSC 473 May 6, 2012.
REST.  REST is an acronym standing for Representational State Transfer  A software architecture style for building scalable web services  Typically,
Microsoft Visual Studio 2010 Muhammad Zubair MS (FAST-NU) Experience: 5+ Years Contact:- Cell#:
HTML+JavaScript M2M Applications Viewbiquity Public hybrid cloud platform for automating and visualizing everything.
Microsoft Visual Studio 2010 Muhammad Zubair MS (FAST-NU) Experience: 5+ Years Contact:- Cell#:
Web Services based e-Commerce System Sandy Liu Jodrey School of Computer Science Acadia University July, 2002.
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
API Crash Course CWU Startup Club. OUTLINE What is an API? Why are API’s useful? What is HTTP? JSON? XML? What is a RESTful API? How do we consume an.
JS (Java Servlets). Internet evolution [1] The internet Internet started of as a static content dispersal and delivery mechanism, where files residing.
Stream Spider Distributed Music Streaming Service with Sliced Music Files from Different Originating Hosts Justin Steffy and Michael D. Elder.
RESTful Web Services What is RESTful?
Software Architecture in Practice Mandatory project in performance engineering.
Cloud Computing from a Developer’s Perspective Shlomo Swidler CTO & Founder mydrifts.com 25 January 2009.
Version 0.1 Draft – For Review Murali Mohan Murthy
The Holmes Platform and Applications
Java Web Services Orca Knowledge Center – Web Service key concepts.
Rest Services with Play Framework, MySQL, Adding Security with JWT
Platform as a Service (PaaS)
Eclipse Vorto Alexander Edelmann.
Rest Services with Play Framework, Adding Security with JWT
Introduction to Web Services
Web Programming Language
Platform as a Service (PaaS)
Physics validation database
Jason Bury Dylan Drake Rush Corey Watt
The Client-Server Model
API (Application Program Interface)
Introduction to Windows Azure AppFabric
Netscape Application Server
Automation Approach for Dynamic and Responsive Web Applications
Web Development Web Servers.
Introduction to Advanced Java Programming
Software Design and Architecture
IBM Data Server Gateway for OData
Cloud Computing By P.Mahesh
SENIOR MANAGER - SOFTWARE TESTING PRACTICE
CMPE419 Mobile Application Development
Design and Maintenance of Web Applications in J2EE
Continuous Performance Engineering
WEB API.
Continuous Automated Chatbot Testing
Big Data - in Performance Engineering
The Application Lifecycle
Ashish Pandit, Louis Zelus, Jonathan Whitman
Web Service Testing for the New Digital Age
Why many Automation Frameworks? when ONE can do ALL
API Application Services
Cross Platform Network Calls Automation
SDWIS Prime REST APIs Elinor Keith
Lecture 1: Multi-tier Architecture Overview
Evaluating Transaction System Performance
$, $$, $$$ API testing Edition
Cloud Web Filtering Platform
Performance testing for large size web-services
Creating a Distributed System with Remote Procedure Calls and Web Services Ch.5 B.Ramamurthy 2/17/2019 B.Ramamurthy.
RESTful Web Services.
Building production-ready APIs with ASP.NET Core 2.2
REST på Microsoft-stacken
Week 05 Node.js Week 05
Requirements Engineering
Distributed System using Web Services
CMPE419 Mobile Application Development
WCF Data Services and Silverlight
.NET Framework V3.5+ & RESTful web services
Presentation transcript:

End-to-End REST Service Testing Automation -Mayank Gupta -Devika Hans

Abstract: API Testing Automation Requirement Challenges Solutions

What is REST and Why used? An architectural style/approach used to develop web services RESTful APIs: Services using REST technology State and functionality are divided into distributed resources Every resource is uniquely addressable using a uniform and minimal set of commands (typically using HTTP commands of GET, POST, PUT, or DELETE over the Internet) The protocol is client/server, stateless, layered, and supports caching

API Lifecycle: Monitor Deploy Test Build Design

API Testing Testing APIs to determine if: They meet expectations for functionality, reliability, performance, and security. APIs return the correct response (in the expected format) for a broad range of feasible requests. React properly to edge cases such as failures and unexpected/extreme inputs Deliver responses in an acceptable amount of time. Respond securely to potential security attacks.

Why Automation? Frequent releases Build quality Exposing APIs for third party apps integration

Challenges: Validating response data Two stack approach (blue and green) Various environments Data cannot be posted on all environments

Solution: Integration test framework: Easy to write test cases in XML or JSON format. Support of having different input data for different environment. Categorization of testcases. Can write Java code for customization. Blue/Green stack support. Comparison the response output b/w Blue and Green stack Support to run testcases of any stack. Seamless Jenkins integration. Platform independent (can run on mac/win/linux etc.) Very less maintenance cost. Generate Junit and HTML reports. Provide complete functional coverage.

Integration Tests Compilation Run Read test data from XML/JSON, run testcases one by one Generate classes from XSD files Call service endpoint Generate environment wise test data (XML/JSON) Validate body schema & response code and body Compile java classes

Performance/load testing: Previewing API performance behaviors before releasing to client environment. Measuring API response time under load. Monitoring resource Utilization such as CPU, Memory and database. API throughput measurement.

Build Pipeline Integration Tests PR raised PR merged (GIT) Pass Fail Uploaded on Codex Build Created

Certifying build for Stage environment Integration Tests + Performance Testing Deploy build on QE Blue & green stack comparison Certified for Staging environment Client Side Automation

Making build available on Stage for Clients. Integration Tests + Performance Testing Deploy build on Stage (Stack not in use) Blue & green stack comparison Client Automation Cutover to new stack. (Available to clients on Stage)

Results: Ease of testing with frequent releases. Test Quality increases. Good test coverage. Early and frequent service availability to clients. Test reusability.

References: https://en.wikipedia.org/wiki/API_testing http://testng.org/doc/ https://jenkins.io/doc/

Author Biography Mayank Gupta: I am working with Adobe from last 5 years as a Software engineer. In Adobe I have worked on Adobe AIR, Adobe reader on android, Flash Runtime, Project 1324 and Creative cloud services. I have completed my B.Tech from M.B.M. engineering collage, Jodhpur. Devika Hans: I am working with Adobe from last 9 months as a Software engineer. I have worked on Creative cloud services here. Prior to this I have worked with Infosys for around 2.5 years. In Infosys, I have worked on development and maintenance of REST services. I have completed my B.Tech from GGSIP University.

Thank You..!