@apica-io/url-xi
Version:
URL Check for integrations and API monitoring
166 lines (147 loc) • 5.42 kB
JSON
{
"$schema": "https://files-apicasystem-com.s3-eu-west-1.amazonaws.com/schemas/url-xi-schema-v1-0.json",
"name": "Ticketmonster Home Page",
"description": "Simple Scenario for the TM home page",
"baseURL": "http://ticketmonster.apicasystem.com",
"envPrefix":"TMHOME",
"scripts": [
{
"name": "After Test",
"scope": "after",
"script": [
"var t=timings;",
"if(t) logger.debug('test',t)",
"else logger.error('No timings defined in test')"
]
}
],
"variables": [
{
"key": "dummyInput",
"type":"string",
"value":"foo",
"usage": "input"
},
{
"key": "webSite",
"type":"url",
"value":"http://webcode.me",
"usage": "input"
},
{
"key": "arrSize",
"type":"number",
"value":5,
"usage": "input"
},
{
"key": "metric1",
"type":"number",
"value":3.14,
"usage": "metric"
},
{
"key": "Header1",
"type": "header",
"usage": "input",
"value":"Kalle-Anka"
}
],
"steps": [
{
"name": "Home page",
"onRequestError":"nextRequest",
"scripts": [
{
"name": "run Axios request",
"async": true,
"scope": "before",
"options": {
},
"script": [
"const webSite=uxs.getVar('webSite')",
"//const ret=await uxs.request({url:webSite});",
"//logger.info('Request call Status=%d',ret.status);"
]
},
{
"name": "AfterStep",
"scope": "after",
"script": [
"const arrSize=uxs.getVar('arrSize')",
"expect(arrSize,`The number ${arrSize} must be above 2`).to.be.above(2);"
]
},
{
"name": "After all",
"scope": "afterEach",
"script": [
"var t=timings;",
"if(t) logger.debug(t)",
"else logger.error('No timings defined')"
]
}
],
"requests": [
{
"name":"Root Page",
"config": {
"url": "/"
},
"assertions": [
{
"description": "Dummy input should be foo or bar",
"failStep": true,
"expression": "['foo','bar'].find(element => element === value)",
"value": "{{dummyInput}}",
"type": "javaScript"
}
]
},
{
"name":"TM Home HTML",
"config": {
"url": "/ticket-monster"
},
"message":"The custom message download time={{$timings.downloadTime}}, nothing={{nothing}}",
"scripts": [
{
"name": "AfterRequest",
"scope": "after",
"script": [
"const arrSize=uxs.getVar('arrSize')",
"expect(arrSize,`The number ${arrSize} must be above 1`).to.be.above(1);"
]
}
],
"assertions": [
{
"description": "Validate response time",
"failStep": true,
"expression": "value < 1000",
"value": "{{$durationMs}}",
"type": "javaScript",
"reportFailOnly": false
},
{
"description": "Validate dns time",
"failStep": false,
"expression": "value < 5",
"value": "{{$timings.dnsTime}}",
"type": "javaScript",
"reportFailOnly": false
},
{
"description": "Secure handshake should be 0",
"failStep": true,
"expression": "value <= 0",
"value": "{{$timings.secureHandshake}}",
"type": "javaScript",
"reportFailOnly": false
}
]
}
]
}
]
}