Update performance test timings for larger dataset
[cps.git] / integration-test / src / test / groovy / org / onap / cps / integration / performance / cps / DeletePerfTest.groovy
index e80a87d..fb836b1 100644 (file)
@@ -26,6 +26,8 @@ import java.time.OffsetDateTime
 import org.onap.cps.api.CpsDataService
 import org.onap.cps.integration.performance.base.CpsPerfTestBase
 
+import java.util.concurrent.TimeUnit
+
 class DeletePerfTest extends CpsPerfTestBase {
 
     CpsDataService objectUnderTest
@@ -35,30 +37,33 @@ class DeletePerfTest extends CpsPerfTestBase {
     def 'Create test data (please note, subsequent tests depend on this running first).'() {
         when: 'multiple anchors with a node with a large number of descendants is created'
             stopWatch.start()
-            def data = generateOpenRoadData(50)
+            def data = generateOpenRoadData(300)
             addAnchorsWithData(10, CPS_PERFORMANCE_TEST_DATASPACE, LARGE_SCHEMA_SET, 'delete', data)
             stopWatch.stop()
             def setupDurationInMillis = stopWatch.getTotalTimeMillis()
-        then: 'setup duration is under 40 seconds'
-            recordAndAssertPerformance('Delete test setup', 40_000, setupDurationInMillis)
+        then: 'setup duration is within expected time'
+            recordAndAssertPerformance('Delete test setup', TimeUnit.SECONDS.toMillis(200), setupDurationInMillis)
     }
 
-    def 'Delete 10 container nodes'() {
+    def 'Delete 100 container nodes'() {
+        given: 'a list of xpaths to delete'
+            def xpathsToDelete = (1..100).collect {
+                "/openroadm-devices/openroadm-device[@device-id='C201-7-1A-" + it + "']/org-openroadm-device"
+            }
         when: 'child nodes are deleted'
             stopWatch.start()
-            (1..10).each {
-                def childPath = "/openroadm-devices/openroadm-device[@device-id='C201-7-1A-" + it + "']/org-openroadm-device"
-                objectUnderTest.deleteDataNode(CPS_PERFORMANCE_TEST_DATASPACE, 'delete1', childPath, OffsetDateTime.now())
+            xpathsToDelete.each {
+                objectUnderTest.deleteDataNode(CPS_PERFORMANCE_TEST_DATASPACE, 'delete1', it, OffsetDateTime.now())
             }
             stopWatch.stop()
             def deleteDurationInMillis = stopWatch.getTotalTimeMillis()
-        then: 'delete duration is under 300 milliseconds'
-            recordAndAssertPerformance('Delete 10 containers', 300, deleteDurationInMillis)
+        then: 'delete duration is within expected time'
+            recordAndAssertPerformance('Delete 100 containers', TimeUnit.SECONDS.toMillis(2), deleteDurationInMillis)
     }
 
-    def 'Batch delete 50 container nodes'() {
+    def 'Batch delete 100 container nodes'() {
         given: 'a list of xpaths to delete'
-            def xpathsToDelete = (1..50).collect {
+            def xpathsToDelete = (1..100).collect {
                 "/openroadm-devices/openroadm-device[@device-id='C201-7-1A-" + it + "']/org-openroadm-device"
             }
         when: 'child nodes are deleted'
@@ -66,56 +71,59 @@ class DeletePerfTest extends CpsPerfTestBase {
             objectUnderTest.deleteDataNodes(CPS_PERFORMANCE_TEST_DATASPACE, 'delete2', xpathsToDelete, OffsetDateTime.now())
             stopWatch.stop()
             def deleteDurationInMillis = stopWatch.getTotalTimeMillis()
-        then: 'delete duration is under 300 milliseconds'
-            recordAndAssertPerformance('Batch delete 50 containers', 300, deleteDurationInMillis)
+        then: 'delete duration is within expected time'
+            recordAndAssertPerformance('Batch delete 100 containers', 500, deleteDurationInMillis)
     }
 
-    def 'Delete 20 list elements'() {
+    def 'Delete 100 list elements'() {
+        given: 'a list of xpaths to delete'
+            def xpathsToDelete = (1..100).collect {
+                "/openroadm-devices/openroadm-device[@device-id='C201-7-1A-" + it + "']"
+            }
         when: 'list elements are deleted'
             stopWatch.start()
-            (1..20).each {
-                def listElementXpath = "/openroadm-devices/openroadm-device[@device-id='C201-7-1A-1']/org-openroadm-device/degree[@degree-number=" + it + "]"
-                objectUnderTest.deleteDataNode(CPS_PERFORMANCE_TEST_DATASPACE, 'delete3', listElementXpath, OffsetDateTime.now())
+            xpathsToDelete.each {
+                objectUnderTest.deleteDataNode(CPS_PERFORMANCE_TEST_DATASPACE, 'delete3', it, OffsetDateTime.now())
             }
             stopWatch.stop()
             def deleteDurationInMillis = stopWatch.getTotalTimeMillis()
-        then: 'delete duration is under 300 milliseconds'
-            recordAndAssertPerformance('Delete 20 lists elements', 300, deleteDurationInMillis)
+        then: 'delete duration is within expected time'
+            recordAndAssertPerformance('Delete 100 lists elements', TimeUnit.SECONDS.toMillis(2), deleteDurationInMillis)
     }
 
-    def 'Batch delete 1000 list elements'() {
+    def 'Batch delete 100 list elements'() {
         given: 'a list of xpaths to delete'
-            def xpathsToDelete = []
-            for (int childIndex = 1; childIndex <= 50; childIndex++) {
-                xpathsToDelete.addAll((1..20).collect {
-                    "/openroadm-devices/openroadm-device[@device-id='C201-7-1A-${childIndex}']/org-openroadm-device/degree[@degree-number=${it}]".toString()
-                })
+            def xpathsToDelete = (1..100).collect {
+                "/openroadm-devices/openroadm-device[@device-id='C201-7-1A-" + it + "']"
             }
         when: 'list elements are deleted'
             stopWatch.start()
             objectUnderTest.deleteDataNodes(CPS_PERFORMANCE_TEST_DATASPACE, 'delete4', xpathsToDelete, OffsetDateTime.now())
             stopWatch.stop()
             def deleteDurationInMillis = stopWatch.getTotalTimeMillis()
-        then: 'delete duration is under 300 milliseconds'
-            recordAndAssertPerformance('Batch delete 1000 lists elements', 300, deleteDurationInMillis)
+        then: 'delete duration is within expected time'
+            recordAndAssertPerformance('Batch delete 100 lists elements', 500, deleteDurationInMillis)
     }
 
-    def 'Delete 10 whole lists'() {
+    def 'Delete 100 whole lists'() {
+        given: 'a list of xpaths to delete'
+            def xpathsToDelete = (1..100).collect {
+                "/openroadm-devices/openroadm-device[@device-id='C201-7-1A-" + it + "']/org-openroadm-device/degree"
+            }
         when: 'lists are deleted'
             stopWatch.start()
-            (1..10).each {
-                def childPath = "/openroadm-devices/openroadm-device[@device-id='C201-7-1A-" + it + "']/org-openroadm-device/degree"
-                objectUnderTest.deleteDataNode(CPS_PERFORMANCE_TEST_DATASPACE, 'delete5', childPath, OffsetDateTime.now())
+            xpathsToDelete.each {
+                objectUnderTest.deleteDataNode(CPS_PERFORMANCE_TEST_DATASPACE, 'delete5', it, OffsetDateTime.now())
             }
             stopWatch.stop()
             def deleteDurationInMillis = stopWatch.getTotalTimeMillis()
-        then: 'delete duration is under 300 milliseconds'
-            recordAndAssertPerformance('Delete 10 whole lists', 300, deleteDurationInMillis)
+        then: 'delete duration is within expected time'
+            recordAndAssertPerformance('Delete 100 whole lists', TimeUnit.SECONDS.toMillis(5), deleteDurationInMillis)
     }
 
-    def 'Batch delete 30 whole lists'() {
+    def 'Batch delete 100 whole lists'() {
         given: 'a list of xpaths to delete'
-            def xpathsToDelete = (1..30).collect {
+            def xpathsToDelete = (1..100).collect {
                 "/openroadm-devices/openroadm-device[@device-id='C201-7-1A-" + it + "']/org-openroadm-device/degree"
             }
         when: 'lists are deleted'
@@ -123,8 +131,8 @@ class DeletePerfTest extends CpsPerfTestBase {
             objectUnderTest.deleteDataNodes(CPS_PERFORMANCE_TEST_DATASPACE, 'delete6', xpathsToDelete, OffsetDateTime.now())
             stopWatch.stop()
             def deleteDurationInMillis = stopWatch.getTotalTimeMillis()
-        then: 'delete duration is under 300 milliseconds'
-            recordAndAssertPerformance('Batch delete 30 whole lists', 300, deleteDurationInMillis)
+        then: 'delete duration is within expected time'
+            recordAndAssertPerformance('Batch delete 100 whole lists', TimeUnit.SECONDS.toMillis(4), deleteDurationInMillis)
     }
 
     def 'Delete 1 large data node'() {
@@ -133,8 +141,8 @@ class DeletePerfTest extends CpsPerfTestBase {
             objectUnderTest.deleteDataNode(CPS_PERFORMANCE_TEST_DATASPACE, 'delete7', '/openroadm-devices', OffsetDateTime.now())
             stopWatch.stop()
             def deleteDurationInMillis = stopWatch.getTotalTimeMillis()
-        then: 'delete duration is under 300 milliseconds'
-            recordAndAssertPerformance('Delete one large node', 300, deleteDurationInMillis)
+        then: 'delete duration is within expected time'
+            recordAndAssertPerformance('Delete one large node', TimeUnit.SECONDS.toMillis(2), deleteDurationInMillis)
     }
 
     def 'Delete root node with many descendants'() {
@@ -143,8 +151,8 @@ class DeletePerfTest extends CpsPerfTestBase {
             objectUnderTest.deleteDataNode(CPS_PERFORMANCE_TEST_DATASPACE, 'delete8', '/', OffsetDateTime.now())
             stopWatch.stop()
             def deleteDurationInMillis = stopWatch.getTotalTimeMillis()
-        then: 'delete duration is under 300 milliseconds'
-            recordAndAssertPerformance('Delete root node', 300, deleteDurationInMillis)
+        then: 'delete duration is within expected time'
+            recordAndAssertPerformance('Delete root node', TimeUnit.SECONDS.toMillis(2), deleteDurationInMillis)
     }
 
     def 'Delete data nodes for an anchor'() {
@@ -153,8 +161,8 @@ class DeletePerfTest extends CpsPerfTestBase {
             objectUnderTest.deleteDataNodes(CPS_PERFORMANCE_TEST_DATASPACE, 'delete9', OffsetDateTime.now())
             stopWatch.stop()
             def deleteDurationInMillis = stopWatch.getTotalTimeMillis()
-        then: 'delete duration is under 300 milliseconds'
-            recordAndAssertPerformance('Delete data nodes for anchor', 300, deleteDurationInMillis)
+        then: 'delete duration is within expected time'
+            recordAndAssertPerformance('Delete data nodes for anchor', TimeUnit.SECONDS.toMillis(2), deleteDurationInMillis)
     }
 
     def 'Batch delete 100 non-existing nodes'() {
@@ -167,8 +175,8 @@ class DeletePerfTest extends CpsPerfTestBase {
             } catch (DataNodeNotFoundException ignored) {}
             stopWatch.stop()
             def deleteDurationInMillis = stopWatch.getTotalTimeMillis()
-        then: 'delete duration is under 300 milliseconds'
-            recordAndAssertPerformance('Batch delete 100 non-existing', 300, deleteDurationInMillis)
+        then: 'delete duration is within expected time'
+            recordAndAssertPerformance('Batch delete 100 non-existing', TimeUnit.SECONDS.toMillis(6), deleteDurationInMillis)
     }
 
     def 'Clean up test data'() {
@@ -179,8 +187,8 @@ class DeletePerfTest extends CpsPerfTestBase {
             cpsAdminService.deleteAnchors(CPS_PERFORMANCE_TEST_DATASPACE, anchorNames)
             stopWatch.stop()
             def deleteDurationInMillis = stopWatch.getTotalTimeMillis()
-        then: 'delete duration is under 1000 milliseconds'
-            recordAndAssertPerformance('Delete test cleanup', 1000, deleteDurationInMillis)
+        then: 'delete duration is within expected time'
+            recordAndAssertPerformance('Delete test cleanup', TimeUnit.SECONDS.toMillis(10), deleteDurationInMillis)
     }
 
 }