UNPKG

@apica-io/url-xi

Version:

URL Check for integrations and API monitoring

323 lines (310 loc) 11.2 kB
{ "$schema": "https://files-apicasystem-com.s3-eu-west-1.amazonaws.com/schemas/url-xi-schema-v1-0.json", "name": "Ticket Monster Order Tickets", "description": "Order tickets in Ticket Monster. Setup AppDynamics integration headers", "message": "Ticket booking {{bookingId}} done.", "variables": [ { "key": "email", "type": "string", "usage": "inResponse", "value": "{{$faker.internet.email}}", "description": "A random generated email" }, { "key": "bookingId", "type": "number", "usage": "inResponse" }, { "key": "ticketPrice", "type": "number", "usage": "inResponse" }, { "key": "ticketCategory", "type": "string", "usage": "inResponse" }, { "key": "ticketSection", "type": "string", "usage": "inResponse" }, { "key": "eventName", "type": "string", "usage": "inResponse" }, { "key": "venueName", "type": "string", "usage": "inResponse" } ], "includes": [ { "name": "testdata", "scope": "project", "type": "data", "src": "my_test_data.json" }, { "name": "defaultVariables", "scope": "project", "type": "vars", "src": "default_test_vars.json" } ], "baseURL": "http://ticketmonster.apicasystem.com", "config": { "headers": { "ApicaScenario": "{{$testName}}", "ApicaCheckId": "92e02d76-63cf-4a54-a4d6-29b9488fdc1a ", "AppDynamicsSnapshotEnabled": "true" } }, "steps": [ { "name": "Home page", "requests": [ { "name":"Start page html", "config": { "method": "get", "url": "/ticket-monster", "headers": { "ApicaStep": "{{$stepName}}" } }, "extractors": [ { "type": "regexp", "expression": "<script type=\"text\/javascript\".*src=\"(.*.js)\".*", "variable": "javaScripts", "array": true }, { "type": "regexp", "expression": "<title>(.+)<\/title>", "variable": "title" } ], "assertions": [ { "description": "Home page must contain javascript references", "failStep": true, "reportFailOnly": false, "value": "{{javaScripts}}", "expression": "value.length > 1", "type": "javaScript" }, { "description": "Page title must be Ticket Monster", "type": "value", "value": "{{title}}", "expression": "Ticket Monster", "failStep": true } ] } ] }, { "name": "Get JavaScripts", "ignoreDuration": true, "iterator": { "varName": "javaScript", "value": "{{javaScripts}}" }, "requests": [ { "name": "Javascript {{$lapIdx1}}", "config": { "method": "get", "url": "/ticket-monster/{{javaScript}}" }, "extractors": [], "notSaveData": true } ] }, { "name": "Get Events", "requests": [ { "name": "Get all events", "config": { "method": "get", "url": "/ticket-monster/rest/events", "headers": { "ApicaStep": "{{$stepName}}" }, "params": { "_": "{{$timestamp}}" } }, "scripts": [ { "scope": "after", "name":"Get random event id", "script": "getRandomEvent.js" } ], "assertions": [ { "description": "A numeric event id must be extracted", "failStep": true, "reportFailOnly": false, "type": "javaScript", "value": "{{eventId}}", "expression": "!isNaN(value) && Number(value) >0" } ] }, { "name": "Get event details", "config": { "method": "get", "url": "/ticket-monster/rest/events/{{eventId}}", "headers": { "ApicaStep": "{{$stepName}}" }, "params": { "_": "{{$timestamp}}" } } } ] }, { "name": "Get Tickets", "requests": [ { "name": "Get shows", "config": { "method": "get", "url": "/ticket-monster/rest/shows", "params": { "_": "{{$timestamp}}", "event": "{{eventId}}" }, "headers": { "ApicaStep": "{{$stepName}}" } }, "extractors": [ { "type": "jsonpath", "expression": "$[*].id", "variable": "showId" } ] }, { "name": "Select Tickets", "config": { "method": "get", "url": "/ticket-monster/rest/shows/{{showId}}", "params": { "_": "{{$timestamp}}" }, "headers": { "ApicaStep": "{{$stepName}}" } }, "extractors": [ { "type": "jsonpath", "expression": "$.performances[*].id", "variable": "performanceId" }, { "type": "jsonpath", "expression": "$.event.name", "variable": "eventName" }, { "type": "jsonpath", "expression": "$.venue.name", "variable": "venueName" }, { "type": "jsonpath", "expression": "$.ticketPrices[*]", "variable": "ticketPrices", "index": true }, { "type": "jsonpath", "expression": "$.ticketPrices[{{ticketPrices}}].id", "variable": "ticketPriceId" }, { "type": "jsonpath", "expression": "$.ticketPrices[{{ticketPrices}}].section.name", "variable": "ticketSection" }, { "type": "jsonpath", "expression": "$.ticketPrices[{{ticketPrices}}].ticketCategory.description", "variable": "ticketCategory" }, { "type": "jsonpath", "expression": "$.ticketPrices[{{ticketPrices}}].price", "variable": "ticketPrice" } ] } ] }, { "name": "Checkout", "requests": [ { "name":"Create booking", "config": { "method": "post", "url": "/ticket-monster/rest/bookings", "data": { "ticketRequests": [ { "ticketPrice": "{{ticketPriceId}}", "quantity": 1 } ], "email": "{{email}}", "performance": "{{performanceId}}" }, "headers": { "ApicaStep": "{{$stepName}}" } }, "extractors": [ { "type": "jsonpath", "expression": "$.id", "variable": "bookingId" } ] } ] }, { "name": "Undo the ticket booking", "requests": [ { "name":"Delete booking", "config": { "method": "delete", "url": "/ticket-monster/rest/bookings/{{bookingId}}", "headers": { "ApicaStep": "{{$stepName}}" } } } ] } ] }