1 import io.gatling.core.Predef.{exec, _}
2 import io.gatling.http.Predef._
3 import _root_.io.gatling.core.scenario.Simulation
5 import scala.concurrent.duration._
7 import scala.util.Random
9 class ONAP_2204_SingleAPI extends Simulation {
11 val httpHeaders = Map(
12 "Accept" -> """application/json""",
13 "Content-Type"-> """application/json""",
14 "X-FromAppId"-> """ONAP-fromappId""",
15 "X-TransactionId"-> """ONAP-transId""",
16 "Connection"-> """Keep-Alive"""
19 def idGenerator() = "random-" + UUID.randomUUID().toString;
20 val feeder = Iterator.continually(Map("randVal" -> (Random.alphanumeric.take(20).mkString)))
22 val tenantFeeder = csv("./src/test/gatling/bodies/onaptenants.csv").random
23 val LogLinkFeeder = csv("./src/test/gatling/bodies/onaploglinks.csv").random
24 val PServerFeeder = csv("./src/test/gatling/bodies/onappservers.csv").random
25 val serviceInstanceFeeder = csv("./src/test/gatling/bodies/onapserviceinstance.csv").random
26 val genericvnfFeeder = csv("./src/test/gatling/bodies/onapvnfs.csv").random
27 val CloudRegionFeeder = csv("./src/test/gatling/bodies/onapcloudregions.csv").random
28 val ComplexFeeder = csv("./src/test/gatling/bodies/onapcomplexes.csv").random
29 val customerFeeder = csv("./src/test/gatling/bodies/onapcustomers.csv").random
30 val vfmoduleFeeder = csv("./src/test/gatling/bodies/onapvf-modules.csv").random
31 val pnfFeeder = csv("./src/test/gatling/bodies/onappnfs.csv").random
37 val host = System.getProperty("TARGET_HOST", "Enter Host with Port");
39 val httpBuilder = http.baseURL(host);
41 def SingleAPITest(env: String) = scenario("Run each API single-user " + env)
50 session.set("stenant", idGenerator())
53 http("PutTenant " + env)
54 .put("/aai/v23/cloud-infrastructure/cloud-regions/cloud-region/onap-CROwner4/onap-CRId4/tenants/tenant/${stenant}")
55 .body(ElFileBody("newtenant_valid.json"))
63 http("GetTenant " + env)
64 .get("/aai/v23/cloud-infrastructure/cloud-regions/cloud-region/onap-CROwner4/onap-CRId4/tenants/tenant/${stenant}")
69 .check(jsonPath("$.resource-version").saveAs("resourcever"))
72 http("DeleteTenant " + env)
73 .delete("/aai/v23/cloud-infrastructure/cloud-regions/cloud-region/onap-CROwner4/onap-CRId4/tenants/tenant/${stenant}?resource-version=${resourcever}")
75 .check(status.find.in(204))
86 // Get the resource version before doing the PATCH
89 http("GetTenant " + env)
90 .get("/aai/v23/cloud-infrastructure/cloud-regions/cloud-region/onap-CROwner/onap-CRId/tenants/tenant/onap-tenant-patch")
96 jsonPath("$.resource-version").saveAs("rsrcver")
101 http("PatchTenant " + env)
102 .patch("/aai/v23/cloud-infrastructure/cloud-regions/cloud-region/onap-CROwner/onap-CRId/tenants/tenant/onap-tenant-patch?resource-version=${rsrcver}")
103 .headers(httpHeaders)
105 "Content-Type"-> """application/merge-patch+json"""
107 .body(ElFileBody("patch-tenant.json"))
118 * @get tenant depth=0
123 http("GetTenantdepth0 " + env)
124 .get("/aai/v23/cloud-infrastructure/cloud-regions/cloud-region/onap-CROwner3/onap-CRId3/tenants/tenant/onap-tenantId3?depth=0")
125 .headers(httpHeaders)
136 * @get vserver-depth=all
140 http("GetVserverdepthall " + env)
141 .get("/aai/v23/cloud-infrastructure/cloud-regions/cloud-region/onap-CROwner2/onap-CRId2/tenants/tenant/onap-tenantId2/vservers/vserver/onap-vserverId2?depth=all")
142 .headers(httpHeaders)
157 http("GetVserver " + env)
158 .get("/aai/v23/cloud-infrastructure/cloud-regions/cloud-region/onap-CROwner2/onap-CRId2/tenants/tenant/onap-tenantId2/vservers/vserver/onap-vserverId2")
159 .headers(httpHeaders)
173 feed(genericvnfFeeder)
175 http("GetVnf " + env)
176 .get("/aai/v23/network/generic-vnfs/generic-vnf/${vnf-id}")
177 .headers(httpHeaders)
188 * @get gen-vnf depth=1
191 feed(genericvnfFeeder)
193 http("GetVnfdepth1 " + env)
194 .get("/aai/v23/network/generic-vnfs/generic-vnf/${vnf-id}?depth=1")
195 .headers(httpHeaders)
206 * @get vf-module depth=1
211 http("GetVfmoduledepthl " + env)
212 .get("/aai/v23/network/generic-vnfs/generic-vnf/onap-genericvnfId/vf-modules/vf-module/onap-vnfmoduleId?depth=1")
213 .headers(httpHeaders)
227 feed(genericvnfFeeder)
229 session.set("svfmodule", idGenerator())
232 http("PutVfmodule " + env)
233 .put("/aai/v23/network/generic-vnfs/generic-vnf/onap-genericvnfId/vf-modules/vf-module/${svfmodule}")
234 .body(ElFileBody("newvf-module_valid.json"))
235 .headers(httpHeaders)
242 http("GetVfmodule " + env)
243 .get("/aai/v23/network/generic-vnfs/generic-vnf/onap-genericvnfId/vf-modules/vf-module/${svfmodule}")
244 .headers(httpHeaders)
248 .check(jsonPath("$.resource-version").saveAs("resourcever"))
252 http("DeleteVfmodule " + env)
253 .delete("/aai/v23/network/generic-vnfs/generic-vnf/onap-genericvnfId/vf-modules/vf-module/${svfmodule}?resource-version=${resourcever}")
254 .headers(httpHeaders)
255 .check(status.find.in(204))
264 * @patch/post vf-module
267 // Get the resource version before doing the PATCH
270 http("GetVfmodule " + env)
271 .get("/aai/v23/network/generic-vnfs/generic-vnf/onap-genericvnfId/vf-modules/vf-module/onap-vnfmoduleId")
272 .headers(httpHeaders)
277 jsonPath("$.resource-version").saveAs("rsrcver")
282 http("PatchVfmodule " + env)
283 .patch("/aai/v23/network/generic-vnfs/generic-vnf/onap-genericvnfId/vf-modules/vf-module/onap-vnfmoduleId?resource-version=${rsrcver}")
284 .headers(httpHeaders)
286 "Content-Type"-> """application/merge-patch+json"""
288 .body(ElFileBody("patch-vf-module.json"))
299 * @get recents api vlan
303 http("GetRecentsAPI Vlan " + env)
304 .get("/aai/recents/v23/vlan?hours=192")
305 .headers(httpHeaders)
316 * @get recents api l-interface
320 http("GetRecentsAPI l-interface " + env)
321 .get("/aai/recents/v23/l-interface?hours=192")
322 .headers(httpHeaders)
333 * @get recents api vserver
337 http("GetRecentsAPI vserver " + env)
338 .get("/aai/recents/v23/vserver?hours=192")
339 .headers(httpHeaders)
354 http("GetallCR onap-CRId " + env)
355 .get("/aai/v23/cloud-infrastructure/cloud-regions/?cloud-region-id=onap-CRId")
356 .headers(httpHeaders)
371 http("GetallCR onap-CRId " + env)
372 .get("/aai/v23/cloud-infrastructure/cloud-regions/?cloud-region-id=onap-CRId")
373 .headers(httpHeaders)
388 http("GetallServices " + env)
389 .get("/aai/v23/service-design-and-creation/services")
390 .headers(httpHeaders)
405 http("GetallCRs " + env)
406 .get("/aai/v23/cloud-infrastructure/cloud-regions/?cloud-region-id=onap-CRId")
407 .headers(httpHeaders)
422 http("Getnodes-query VNF " + env)
423 .get("/aai/v23/search/nodes-query?search-node-type=generic-vnf&filter=vnf-name:EQUALS:onap-genericvnfname")
424 .headers(httpHeaders)
440 session.set("sPServer", idGenerator())
443 session.set("sVServer", idGenerator())
446 http("BulkSingleTx1 " + env)
447 .post("/aai/v22/bulk/single-transaction")
448 .body(ElFileBody("onapbulk-single-tx_putPServerVServer.json"))
449 .headers(httpHeaders)
456 http("GetVserver " + env)
457 .get("/aai/v22/cloud-infrastructure/cloud-regions/cloud-region/onap-CROwner/onap-CRId/tenants/tenant/onap-tenantId1/vservers/vserver/${sVServer}?depth=0&nodes-only=true")
458 .headers(httpHeaders)
462 .check(jsonPath("$.resource-version").saveAs("rsrcver"))
465 http("DeleteVserver " + env)
466 .delete("/aai/v22/cloud-infrastructure/cloud-regions/cloud-region/onap-CROwner/onap-CRId/tenants/tenant/onap-tenantId1/vservers/vserver/${sVServer}?resource-version=${rsrcver}")
467 .headers(httpHeaders)
469 .check(status.find.in(204))
472 http("GetPserver " + env)
473 .get("/aai/v22/cloud-infrastructure/pservers/pserver/${sPServer}?depth=0&nodes-only=true")
474 .headers(httpHeaders)
478 .check(jsonPath("$.resource-version").saveAs("rsrcver"))
481 http("DeletePserver " + env)
482 .delete("/aai/v22/cloud-infrastructure/pservers/pserver/${sPServer}?resource-version=${rsrcver}")
483 .headers(httpHeaders)
484 .check(status.find.in(204))
497 session.set("CR1", idGenerator())
500 session.set("AZ1", idGenerator())
503 session.set("flavor1", idGenerator())
506 session.set("image1", idGenerator())
509 session.set("complex1", idGenerator())
512 session.set("pserver1", idGenerator())
515 session.set("pserver2", idGenerator())
518 session.set("pserver3", idGenerator())
521 http("BulkSingleTx2 " + env)
522 .post("/aai/v21/bulk/single-transaction")
523 .body(ElFileBody("onap-patch-bulk-single-tx.json"))
524 .headers(httpHeaders)
540 session.set("sPServer", idGenerator())
543 session.set("sVServer", idGenerator())
546 http("BulkSingleTx3 " + env)
547 .post("/aai/v22/bulk/single-transaction")
548 .body(ElFileBody("onapbulk-single-tx_putPServerVServer.json"))
549 .headers(httpHeaders)
556 http("GetVserver " + env)
557 .get("/aai/v22/cloud-infrastructure/cloud-regions/cloud-region/onap-CROwner/onap-CRId/tenants/tenant/onap-tenantId1/vservers/vserver/${sVServer}?depth=0&nodes-only=true")
558 .headers(httpHeaders)
562 .check(jsonPath("$.resource-version").saveAs("rsrcver"))
565 http("DeleteVserver " + env)
566 .delete("/aai/v22/cloud-infrastructure/cloud-regions/cloud-region/onap-CROwner/onap-CRId/tenants/tenant/onap-tenantId1/vservers/vserver/${sVServer}?resource-version=${rsrcver}")
567 .headers(httpHeaders)
569 .check(status.find.in(204))
572 http("GetPserver " + env)
573 .get("/aai/v22/cloud-infrastructure/pservers/pserver/${sPServer}?depth=0&nodes-only=true")
574 .headers(httpHeaders)
578 .check(jsonPath("$.resource-version").saveAs("rsrcver"))
581 http("DeletePserver " + env)
582 .delete("/aai/v22/cloud-infrastructure/pservers/pserver/${sPServer}?resource-version=${rsrcver}")
583 .headers(httpHeaders)
584 .check(status.find.in(204))
592 * @CQ pserverzdeviceresurldepth1
596 http("CQ pserverzdeviceresurldepth1 " + env)
597 .put("/aai/v22/query?format=resource_and_url&depth=1")
598 .headers(httpHeaders)
599 .body(ElFileBody("onap-CQ-pserver-zdevice.json"))
610 * @CQ pserverzdeviceres
614 http("CQ pserverzdeviceres " + env)
615 .put("/aai/v22/query?format=resource")
616 .headers(httpHeaders)
617 .body(ElFileBody("onap-CQ-pserver-zdevice.json"))
628 * @CQ vlanrangefromVlantag
632 http("CQ vlanrangefromVlantag " + env)
633 .put("/aai/v22/query?format=resource")
634 .headers(httpHeaders)
635 .body(ElFileBody("onap-CQ-vlanrange-fromVlantag.json"))
646 * @CQ pserverzdeviceres
650 http("CQ getClfiRoadmTailSummary " + env)
651 .put("/aai/v22/query?format=simple&nodesOnly=true")
652 .headers(httpHeaders)
653 .body(ElFileBody("onap-CQ-getClfiRoadmTailSummary.json"))
668 http("DSL Query1 PUT")
669 .put("/aai/v21/dsl?format=resource")
670 .headers(httpHeaders)
671 .body(ElFileBody("onap-DSL1.json"))
686 http("DSL Query2 PUT")
687 .put("/aai/v21/dsl?format=resource")
688 .headers(httpHeaders)
689 .body(ElFileBody("onap-DSL2.json"))
704 http("DSL Query3 PUT")
705 .put("/aai/v21/dsl?format=resource")
706 .headers(httpHeaders)
707 .body(ElFileBody("onap-DSL3.json"))
722 http("DSL Query4 PUT")
723 .put("/aai/v21/dsl?format=resource")
724 .headers(httpHeaders)
725 .body(ElFileBody("onap-DSL4.json"))
740 http("GetallCust " + env)
741 .get("/aai/v23/business/customers")
742 .headers(httpHeaders)
751 SingleAPITest("ePerf02").inject(atOnceUsers(1)).protocols(http.baseURL("Enter Host with Port"))
753 .maxDuration(10 minutes)