WSDL-DSL + WSToolKit



Similar documents
>

Property-based testing for Web Services. The PROWESS consortium

Consuming a Web Service(SOAP and RESTful) in Java. Cheat Sheet For Consuming Services in Java

Web Services Integration Case Study - Housing

An Introduction to Globus Toolkit 3

T Network Application Frameworks and XML Web Services and WSDL Tancred Lindholm

Creating Web Services in NetBeans

What are Web Services? A BT Conferencing white paper

Tutorial - How to Use Lotus Domino Web Services in Java Development

Java Access to Oracle CRM On Demand. By: Joerg Wallmueller Melbourne, Australia

CQCON 2013: five Sling features you should know

Introduction to CASA: An Open Source Composite Application Editor

SQL Tables, Keys, Views, Indexes

HP Operations Orchestration Software

DEVELOPING CONTRACT - DRIVEN WEB SERVICES USING JDEVELOPER. The purpose of this tutorial is to develop a java web service using a top-down approach.

Integration Knowledge Kit Developer Journal

How to Integrate and Extend Oracle CON3755. Gary Williams Principal Curriculum Developer Mobile Cloud Applications October 2014

Integration of Hotel Property Management Systems (HPMS) with Global Internet Reservation Systems

02267: Software Development of Web Services

HTTPS hg clone plugin library SSH hg clone plugin library

CST6445: Web Services Development with Java and XML Lesson 1 Introduction To Web Services Skilltop Technology Limited. All rights reserved.

Step 4: Configure a new Hadoop server This perspective will add a new snap-in to your bottom pane (along with Problems and Tasks), like so:

Project Proposal: SDN-App SDK

ADF Code Corner. 92. Caching ADF Web Service results for in-memory filtering. Abstract: twitter.com/adfcodecorner

Grid Computing. Web Services. Explanation (2) Explanation. Grid Computing Fall 2006 Paul A. Farrell 9/12/2006

Internationalization and Web Services

Copyright 2013 Consona Corporation. All rights reserved

IMPLEMENTATION GUIDE. API Service. More Power to You. May For more information, please contact

Stripe. Chapters. Copyright. Authors. Stripe modules for oscommerce Online Merchant. oscommerce Online Merchant v2.3

Developing Web Services with Eclipse

How to Build Successful DSL s. Jos Warmer Leendert Versluijs

Secure Identity Propagation Using WS- Trust, SAML2, and WS-Security 12 Apr 2011 IBM Impact

Cloud.. Migration? Bursting? Orchestration? Vincent Lavergne SED EMEA, South Gary Newe Sr SEM EMEA, UKISA

Automate APIs with Groovy Script

Using mobile phones to access Web Services in a secure way. Dan Marinescu

Supporting High-Quality Printing in Web Applications with ArcGIS 10.1 for Server

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures

Web Services Development using Top-down Design

Security Testing For RESTful Applications

Author: Gennaro Frazzingaro Universidad Rey Juan Carlos campus de Mostòles (Madrid) GIA Grupo de Inteligencia Artificial

JVA-561. Developing SOAP Web Services in Java

Integrating Peoplesoft Enterprise Campus Solutions with Sakai

How to Open and Edit the Freestyle Support System

Writing Grid Service Using GT3 Core. Dec, Abstract

Reusing Existing * Java EE Applications from Oracle SOA Suite

Single Sign-On Framework in Tizen Contributors: Alexander Kanavin, Jussi Laako, Jaska Uimonen

The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into

Parallel Databases. Parallel Architectures. Parallelism Terminology 1/4/2015. Increase performance by performing operations in parallel

Jitterbit Technical Overview : Microsoft Dynamics AX

A Sample OFBiz application implementing remote access via RMI and SOAP Table of contents

XIII. Service Oriented Computing. Laurea Triennale in Informatica Corso di Ingegneria del Software I A.A. 2006/2007 Andrea Polini

Supporting High-Quality Printing in Web Applications with ArcGIS for Server

Database Replication with MySQL and PostgreSQL

Quote to Cloud Connecting QuoteWerks and Xero

Introduction to CloudScript

Game Programming CS233G / Winter 2012 / PCC

2692 : Accelerate Delivery with DevOps with IBM Urbancode Deploy and IBM Pure Application System Lab Instructions

Overview of Web Services API

Before You Begin, Your Computer Must Meet the System Requirements

Shift Left with Service Virtualization: Rational Test Workbench & Test Virtualization Server

Introduction to WebSphere Process Server and WebSphere Enterprise Service Bus

URI and UUID. Identifying things on the Web.

Copy the.jar file into the plugins/ subfolder of your Eclipse installation. (e.g., C:\Program Files\Eclipse\plugins)

Integration of Learning Management Systems with Social Networking Platforms

monoseq Documentation

EUR-Lex 2012 Data Extraction using Web Services

ACE 2011 International

Management Information System Prof. B. Mahanty Department of Industrial Engineering & Management Indian Institute of Technology, Kharagpur

GetLibraryUserOrderList

MDE Adoption in Industry: Challenges and Success Criteria

How To Understand A Services-Oriented Architecture

Web Service Facade for PHP5. Andreas Meyer, Sebastian Böttner, Stefan Marr

Translating to Java. Translation. Input. Many Level Translations. read, get, input, ask, request. Requirements Design Algorithm Java Machine Language

An Oracle White Paper November Oracle Primavera P6 EPPM Integrations with Web Services and Events

TUTORIAL FOR INITIALIZING BLUETOOTH COMMUNICATION BETWEEN ANDROID AND ARDUINO

Guiding Principles for Technical Architecture

Developing Web Services with Eclipse and Open Source. Claire Rogers Developer Resources and Partner Enablement, HP February, 2004

Business Rule Standards -- Interoperability and Portability

Lesson 1 Introduction to Rapid Application Development using Visual Basic

The presentation explains how to create and access the web services using the user interface. WebServices.ppt. Page 1 of 14

Introducing Apache Pivot. Greg Brown, Todd Volkert 6/10/2010

Systems Integration: Co C mp m onent- t bas a e s d s o s ftw ft a w r a e r e ngin i eeri r n i g

Integration of. ERP systems and epages 6. with Web services

Transcription:

WSDL-DSL + WSToolKit full automatization of Web Services testing Laura M. Castro University of A Coruña Jun 10, 2015 EUC (tutorial) 1 of 23

What is a web service? Nowadays, anything and everything claims to be a WS Conservative characterization: Integration mechanism with third-party components/systems Interaction over the internet (HTTP) Data exchange using standards like JSON/XML 2 of 23

How are WS used/tested? You are given an API description in a computable format, plus a with clear definition of its semantics, and both are stable and work as indicated From the API description you can (automatically) generate your integration stubs, then implement the logic according to said semantics 3 of 23

How are WS used/tested? You are given an API description in a computable format, plus a with clear definition of its semantics, and both are stable and work as indicated From the API description you can (automatically) generate your integration stubs, then implement the logic according to said semantics We want at least the same for testing! 3 of 23

How are WS used/tested? You are given an API description in a computable format, plus a with clear definition of its semantics, and both are stable and work as indicated From the API description you can (automatically) generate your integration stubs, then implement the logic according to said semantics We want at least the same for testing! You are given some instructions in a PDF (or email text) 3 of 23

Industrial example: VoDKATV 4 of 23

Industrial example: VoDKATV 4 of 23

VoDKATV: the past API description and semantics in PDF format New PDF version when changes occurred Lots of effort put into reviewing document, applying changes, designing & writing unit tests 5 of 23

WSToolkit Offers: avoid all the boilerplate code Push-button technology for property-based testing a WS Saves a lot of effort Improves using QC over unit tests Requires: an API description in a computable format (WSDL) Available at: https://github.com/prowessproject/wstoolkit 6 of 23

WSToolkit Offers: avoid all the boilerplate code Push-button technology for property-based testing a WS Saves a lot of effort Improves using QC over unit tests Requires: an API description in a computable format (WSDL [+XSD]) Available at: https://github.com/prowessproject/wstoolkit 6 of 23

WSToolkit: VoDKATV demo 1. Use XSD file to obtain HRL with data definitions 2. Use WSDL, XSD and HRL files to obtain wrapper for WS 3. Use WSDL, XSD to obtain QC generators 4. Use WSDL, XSD, Erlang wrapper, and QC generators to obtain QC test model 7 of 23

WSToolkit: VoDKATV demo (1) write_hrl:write_hrl_file("vodkatv.xsd", "vodkatv.hrl"). 8 of 23

WSToolkit: VoDKATV demo (1) write_hrl:write_hrl_file("vodkatv.xsd", "vodkatv.hrl"). 9 of 23

WSToolkit: VoDKATV demo (2) write_sut_api:write_sut_api("vodkatv.hrl", "vodkatv.wsdl", "vodkatv.xsd", "http://10.20.19.102:8082/vodkatv", "vodkatv_sut.erl"). 10 of 23

WSToolkit: VoDKATV demo (2) write_sut_api:write_sut_api("vodkatv.hrl", "vodkatv.wsdl", "vodkatv.xsd", "http://10.20.19.102:8082/vodkatv", "vodkatv_sut.erl"). 11 of 23

WSToolkit: VoDKATV demo (3) write_data_gen:write_data_generators_to_file( "vodkatv.xsd", "vodkatv.wsdl", "vodkatv.erl"). 12 of 23

WSToolkit: VoDKATV demo (3) write_data_gen:write_data_generators_to_file( "vodkatv.xsd", "vodkatv.wsdl", "vodkatv.erl"). 13 of 23

WSToolkit: VoDKATV demo (4) write_eqc_statem:write_eqc_statem( "vodkatv.wsdl", "vodkatv.xsd", "vodkatv.hrl", "vodkatv_sut", tuple non_tuple, "vodkatv_eqc.erl"). 14 of 23

WSToolkit: VoDKATV demo (4) write_eqc_statem:write_eqc_statem( "vodkatv.wsdl", "vodkatv.xsd", "vodkatv.hrl", "vodkatv_sut", tuple non_tuple, "vodkatv_eqc.erl"). 15 of 23

Beyond WSToolkit You still need to do something: semantics If you have them in OCL, you can close the circle You still may want to improve something: data generation 16 of 23

Beyond WSToolkit You still need to do something: semantics If you have them in OCL, you can close the circle (ask us if you re interested!) You still may want to improve something: data generation 16 of 23

Improving data generation WS data can include a number of constraints: optional information number of ocurrences patterns for content etc. We want to take into account these contraints before generating the data, not afterwards 17 of 23

Improving data generation int_list_gt(n) -> list(int_gt(n)). int_gt(n) ->?SUCHTHAT(M, int(), M>N). > eqc_gen:sample(sample:int_list_gt(100)). ** exception exit: "SUCHTHAT failed to find a value within 100 attempts." 18 of 23

WSDL-DSL We created a DSL with a WSDL-flavour to improve data generation for testing web services It is a stand-alone add-on to the WSToolkit you can use it even if you only need data generation (i.e. if you write your own properties, or unit tests) Available at: https://github.com/prowessproject/wsdl-dsl 19 of 23

WSDL-DSL: VoDKATV demo vodkatv.xsd <xsd:element name="rooms"> <xsd:complextype> <xsd:sequence> <xsd:element name="roomid" type="xsd:string" /> <xsd:element name="description" type="xsd:string" minoccurs="0" maxoccurs="1" /> </xsd:sequence> </xsd:complextype> </xsd:element> WSDL-DSL wsdltype(tag("rooms", xlist(tag("room", [ tag("roomid", string()), minoccurs(0,maxoccurs(1,tag("description", string())))])))). 20 of 23

WSDL-DSL: VoDKATV demo <rooms> <room> <roomid>82s</roomid> <description></description> </room> <room> <roomid>x 26K6pEL </roomid> <description>g </description> </room> <room> <roomid> 2</roomId> <description></description> </room> <room> <roomid>fxqel(d3n</roomid> </room> </rooms> 21 of 23 WSDL-DSL pretty printing

Conclusions If you have a web service and you have a WSDL, take advantage of WSToolkit + WSDL-DSL If you have a web service and you don t have a WSDL, ask for it, now you know how useful it can be If you have a web service, and a WSDL that changes WSToolkit can also help with that (ask us!) 22 of 23

Conclusions Use them, report your issues, contribute! and thanks for listening!! :-) 23 of 23