Skip to content

virtualansoftware/service-virtualization-openapi

Repository files navigation

Virtualan

Maven Central Build Status

Virtualan is an open source-based Open API Interface driven, Kafka, AMQ and MQTT Service virtualization product. It supports #OpenAPI, #AsyncAPI test development. This supports #shiftleft testing.

Product page: https://www.linkedin.com/products/virtualan-software-virtualan/

Tutorials: https://tutorials.virtualan.io/#/Virtualan

Example: https://github.com/virtualansoftware/service-virtualization-openapi

Video: https://www.youtube.com/watch?v=otTjbPxT0W8

Docker Image: https://hub.docker.com/r/virtualan/service-virtualization

II. Initial Set up your project for the Swagger Specification :

  • Why/How to store the mock data in the centralized place: It always provides a choice to choose your data base and configure(spring-jpa). Need to provide data base information in the Application.properties in the "src/main/resources" directory of your spring boot application: This would requires if you don't want to loose the existing mock data because as you redeploy the code the data would be lost.

  • In memory DB: (Eveny restart you lose the old data)

    • virtualan.datasource.driver-class-name=org.hsqldb.jdbcDriver
    • virtualan.datasource.jdbcurl=jdbc:hsqldb:mem:dataSource
    • virtualan.datasource.username=sa
    • virtualan.datasource.password=
  • Add the following entry for each Interface Spec/Yaml to be set up as mock service:

    • to setup "petstore.yaml" need to add following entry in the pom.xml. refer the pom.xml for reference
     <execution>
     	<id>pet-service-vs-api</id>
     	<goals>
     		<goal>generate</goal>
     	</goals>
     	<configuration>
     		<inputSpec>${project.basedir}/src/main/resources/META-INF/resources/yaml/PetStore/petstore.yaml</inputSpec>
     		<output>${project.basedir}/target/external/</output>
     		<apiPackage>org.openapitools.virtualan.api</apiPackage>
     		<modelPackage>org.openapitools.virtualan.to</modelPackage>
     		<generatorName>spring</generatorName>
     		<configOptions>
                                 <virtualService>true</virtualService>
                         </configOptions>
     	</configuration>
     </execution>

III. Navigate to root directory of the folder where pom.xml was present:

  • Build:

       - mvn clean install  
    
    • If you have any proxy issue use this command: mvn -Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2 clean install
  • Run using standalone JAR:

    • java -jar target/virtualan-pet.jar
  • To set up data:

    - Using Virtualan-UI:       
    	https://github.com/virtualansoftware/virtualan/wiki/Test-Data-Set-up-using-Virtualan
    
    - open API Contract: 
      https://github.com/virtualansoftware/virtualan/blob/master/modules/virtualan-plugin/src/main/resources/virtualservices.yaml
    
    
    - Using Virtualan-Rest service: for automation usecases
      https://github.com/virtualansoftware/virtualan-openapi-demo/blob/master/src/test/resources/features/demo/demo.feature
    
  • Invoke Virtualan UI:

About

Service virtualization is the simulation of the behavior of software components that are unavailable or otherwise restricted during the preproduction stage of the software development lifecycle. 

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published