From 0fea4d6eb0d5f28a2dc3333bd7ec5e7dd83dc757 Mon Sep 17 00:00:00 2001 From: megala21 Date: Thu, 27 Apr 2017 01:42:35 +0530 Subject: [PATCH 1/2] Adding android negatove test cases and group management initial test cases --- ...roidDeviceManagementAPIJmeterTestCase.java | 13 +- .../DeviceManagementAPINegativeTestCase.java | 43 + .../jmeter/GroupManagementJMeterTestCase.java | 46 + ...iceManagementAPIAdditionalPermutations.jmx | 44 +- ...roidDeviceManagementAPI_Negative_Tests.jmx | 4202 +++++++++++++++++ .../jmeter-scripts/GroupManagementAPI.jmx | 2032 ++++++++ .../src/test/resources/testng.xml | 53 +- 7 files changed, 6380 insertions(+), 53 deletions(-) create mode 100644 modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/jmeter/DeviceManagementAPINegativeTestCase.java create mode 100644 modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/jmeter/GroupManagementJMeterTestCase.java create mode 100644 modules/integration/tests-integration/src/test/resources/jmeter-scripts/AndroidDeviceManagementAPI_Negative_Tests.jmx create mode 100644 modules/integration/tests-integration/src/test/resources/jmeter-scripts/GroupManagementAPI.jmx diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/jmeter/AndroidDeviceManagementAPIJmeterTestCase.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/jmeter/AndroidDeviceManagementAPIJmeterTestCase.java index b8419a1e..205b5382 100644 --- a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/jmeter/AndroidDeviceManagementAPIJmeterTestCase.java +++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/jmeter/AndroidDeviceManagementAPIJmeterTestCase.java @@ -36,9 +36,8 @@ public class AndroidDeviceManagementAPIJmeterTestCase { @Test() public void permutationTest() throws AutomationFrameworkException { URL url = Thread.currentThread().getContextClassLoader().getResource( - "jmeter-scripts/AndroidDeviceManagementAPIAdditionalPermutations.jmx"); - JMeterTest script = new JMeterTest( - new File(url.getPath())); + "jmeter-scripts" + File.separator + "AndroidDeviceManagementAPIAdditionalPermutations.jmx"); + JMeterTest script = new JMeterTest(new File(url.getPath())); JMeterTestManager manager = new JMeterTestManager(); log.info("Running permutation test using jmeter scripts"); manager.runTest(script); @@ -46,13 +45,11 @@ public class AndroidDeviceManagementAPIJmeterTestCase { @Test(dependsOnMethods = {"permutationTest"}) public void listServices() throws AutomationFrameworkException { - URL url = Thread.currentThread().getContextClassLoader().getResource( - "jmeter-scripts/NewAndroidDeviceManagementAPI.jmx"); - JMeterTest script = new JMeterTest( - new File(url.getPath())); + URL url = Thread.currentThread().getContextClassLoader() + .getResource("jmeter-scripts" + File.separator + "NewAndroidDeviceManagementAPI.jmx"); + JMeterTest script = new JMeterTest(new File(url.getPath())); JMeterTestManager manager = new JMeterTestManager(); log.info("Running API service test using jmeter scripts"); manager.runTest(script); } - } diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/jmeter/DeviceManagementAPINegativeTestCase.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/jmeter/DeviceManagementAPINegativeTestCase.java new file mode 100644 index 00000000..7d973685 --- /dev/null +++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/jmeter/DeviceManagementAPINegativeTestCase.java @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * WSO2 Inc. licenses this file to you under the Apache License, + * Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.wso2.iot.integration.jmeter; + +import org.testng.annotations.Test; +import org.wso2.carbon.automation.engine.exceptions.AutomationFrameworkException; +import org.wso2.carbon.automation.extensions.jmeter.JMeterTest; +import org.wso2.carbon.automation.extensions.jmeter.JMeterTestManager; + +import java.io.File; +import java.net.URL; + +/** + * This is to test the Device Management API scenarios, which gives a bad response. + */ +public class DeviceManagementAPINegativeTestCase { + + @Test(description = "This test case tests the response when the APIs are called with invalid payloads and without" + + " required parameters") + public void negativeTests() throws AutomationFrameworkException { + URL url = Thread.currentThread().getContextClassLoader() + .getResource("jmeter-scripts" + File.separator + "AndroidDeviceManagementAPI_Negative_Tests.jmx"); + JMeterTest script = new JMeterTest(new File(url.getPath())); + JMeterTestManager manager = new JMeterTestManager(); + manager.runTest(script); + } +} diff --git a/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/jmeter/GroupManagementJMeterTestCase.java b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/jmeter/GroupManagementJMeterTestCase.java new file mode 100644 index 00000000..0d4bb257 --- /dev/null +++ b/modules/integration/tests-integration/src/test/java/org/wso2/iot/integration/jmeter/GroupManagementJMeterTestCase.java @@ -0,0 +1,46 @@ +/* +* Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. +* +* WSO2 Inc. licenses this file to you under the Apache License, +* Version 2.0 (the "License"); you may not use this file except +* in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, +* software distributed under the License is distributed on an +* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +* KIND, either express or implied. See the License for the +* specific language governing permissions and limitations +* under the License. +*/ + +package org.wso2.iot.integration.jmeter; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.testng.annotations.Test; +import org.wso2.carbon.automation.engine.exceptions.AutomationFrameworkException; +import org.wso2.carbon.automation.extensions.jmeter.JMeterTest; +import org.wso2.carbon.automation.extensions.jmeter.JMeterTestManager; + +import java.io.File; +import java.net.URL; + +/** + * This test case is used to run the jmeter test cases related with Group Management APIs. + */ +public class GroupManagementJMeterTestCase { + private static Log log = LogFactory.getLog(GroupManagementJMeterTestCase.class); + + @Test(description = "This test case tests the Group Management APIs") + public void GroupManagementTest() throws AutomationFrameworkException { + URL url = Thread.currentThread().getContextClassLoader() + .getResource("jmeter-scripts" + File.separator + "GroupManagementAPI.jmx"); + JMeterTest script = new JMeterTest(new File(url.getPath())); + JMeterTestManager manager = new JMeterTestManager(); + log.info("Running group management api test cases using jmeter scripts"); + manager.runTest(script); + } +} diff --git a/modules/integration/tests-integration/src/test/resources/jmeter-scripts/AndroidDeviceManagementAPIAdditionalPermutations.jmx b/modules/integration/tests-integration/src/test/resources/jmeter-scripts/AndroidDeviceManagementAPIAdditionalPermutations.jmx index c99af367..9415a4fa 100644 --- a/modules/integration/tests-integration/src/test/resources/jmeter-scripts/AndroidDeviceManagementAPIAdditionalPermutations.jmx +++ b/modules/integration/tests-integration/src/test/resources/jmeter-scripts/AndroidDeviceManagementAPIAdditionalPermutations.jmx @@ -312,12 +312,10 @@ false { - "callbackUrl":"www.google.lk", - "clientName":"app_${randAppNum}", - "tokenScope":"Production", - "owner":"user111", - "grantType":"password refresh_token", - "saasApp":true + "applicationName":"app_${randAppNum}", + "isAllowedToAllDomains":false, + "tags":["android", "device_management"], + "isMappingAnExistingOAuthApp":false } = @@ -329,7 +327,7 @@ https - /api/appm/oauth/v1.0/register + /api-application-registration/register POST true false @@ -348,7 +346,7 @@ Host - 10.100.1.90:9763 + localhost:9763 Content-Type @@ -360,7 +358,7 @@ false clientId - "clientId":"(.+?)" + "client_id":"(.+?)" $1$ 0 1 @@ -369,7 +367,7 @@ false clientSecret - "clientSecret":"(.+?)" + "client_secret":"(.+?)" $1$ 0 1 @@ -416,7 +414,7 @@ vars.put("base64encodedId",new String(encryptedId)); true - appm:subscribe device:view activity:view device:android:operation:change-lock device:admin:view configuration:view device:android:enroll user:view + perm:android:enroll perm:android:wipe perm:android:ring perm:android:lock-devices perm:android:configure-vpn perm:android:configure-wifi perm:android:enroll perm:android:uninstall-application perm:android:manage-configuration perm:android:location perm:android:install-application perm:android:mute perm:android:change-lock-code perm:android:blacklist-applications perm:android:set-password-policy perm:android:encrypt-storage perm:android:clear-password perm:android:enterprise-wipe perm:android:info perm:android:view-configuration perm:android:upgrade-firmware perm:android:set-webclip perm:android:send-notification perm:android:disenroll perm:android:update-application perm:android:unlock-devices perm:android:control-camera perm:android:reboot perm:android:logcat appm:subscribe perm:sign-csr perm:admin:devices:view perm:roles:add perm:roles:add-users perm:roles:update perm:roles:permissions perm:roles:details perm:roles:view perm:roles:create-combined-role perm:roles:delete perm:dashboard:vulnerabilities perm:dashboard:non-compliant-count perm:dashboard:non-compliant perm:dashboard:by-groups perm:dashboard:device-counts perm:dashboard:feature-non-compliant perm:dashboard:count-overview perm:dashboard:filtered-count perm:dashboard:details perm:get-activity perm:devices:delete perm:devices:applications perm:devices:effective-policy perm:devices:compliance-data perm:devices:features perm:devices:operations perm:devices:search perm:devices:details perm:devices:update perm:devices:view perm:view-configuration perm:manage-configuration perm:policies:remove perm:policies:priorities perm:policies:deactivate perm:policies:get-policy-details perm:policies:manage perm:policies:activate perm:policies:update perm:policies:changes perm:policies:get-details perm:users:add perm:users:details perm:users:count perm:users:delete perm:users:roles perm:users:user-details perm:users:credentials perm:users:search perm:users:is-exist perm:users:update perm:users:send-invitation perm:admin-users:view perm:groups:devices perm:groups:update perm:groups:add perm:groups:device perm:groups:devices-count perm:groups:remove perm:groups:groups perm:groups:groups-view perm:groups:share perm:groups:count perm:groups:roles perm:groups:devices-remove perm:groups:devices-add perm:groups:assign perm:device-types:features perm:device-types:types perm:applications:install perm:applications:uninstall perm:admin-groups:count perm:admin-groups:view perm:notifications:mark-checked perm:notifications:view perm:admin:certificates:delete perm:admin:certificates:details perm:admin:certificates:view perm:admin:certificates:add perm:admin:certificates:verify perm:ios:enroll perm:ios:view-device perm:ios:apn perm:ios:ldap perm:ios:enterprise-app perm:ios:store-application perm:ios:remove-application perm:ios:app-list perm:ios:profile-list perm:ios:lock perm:ios:enterprise-wipe perm:ios:device-info perm:ios:restriction perm:ios:email perm:ios:cellular perm:ios:applications perm:ios:wifi perm:ios:ring perm:ios:location perm:ios:notification perm:ios:airplay perm:ios:caldav perm:ios:cal-subscription perm:ios:passcode-policy perm:ios:webclip perm:ios:vpn perm:ios:per-app-vpn perm:ios:app-to-per-app-vpn perm:ios:app-lock perm:ios:clear-passcode perm:ios:remove-profile perm:ios:get-restrictions perm:ios:wipe-data perm:admin perm:android:applications = true scope @@ -429,7 +427,7 @@ vars.put("base64encodedId",new String(encryptedId)); https - /oauth2/token + /token POST true false @@ -626,12 +624,10 @@ vars.put("base64encodedId",new String(encryptedId)); false { - "callbackUrl":"www.google.lk", - "clientName":"appp_${randAppNum}", - "tokenScope":"Production", - "owner":"admin", - "grantType":"password refresh_token", - "saasApp":true + "applicationName":"app_${randAppNum}", + "isAllowedToAllDomains":false, + "tags":["android", "device_management"], + "isMappingAnExistingOAuthApp":false } = @@ -643,7 +639,7 @@ vars.put("base64encodedId",new String(encryptedId)); https - /api/appm/oauth/v1.0/register + /api-application-registration/register POST true false @@ -662,7 +658,7 @@ vars.put("base64encodedId",new String(encryptedId)); Host - 10.100.1.90:9763 + localhost:9763 Content-Type @@ -674,7 +670,7 @@ vars.put("base64encodedId",new String(encryptedId)); false clientId - "clientId":"(.+?)" + "client_id":"(.+?)" $1$ 0 1 @@ -683,7 +679,7 @@ vars.put("base64encodedId",new String(encryptedId)); false clientSecret - "clientSecret":"(.+?)" + "client_secret":"(.+?)" $1$ 0 1 @@ -730,7 +726,7 @@ vars.put("base64encodedId",new String(encryptedId)); true - appm:subscribe device:view activity:view device:android:operation:change-lock device:admin:view configuration:view device:android:enroll user:view + perm:android:enroll perm:android:wipe perm:android:ring perm:android:lock-devices perm:android:configure-vpn perm:android:configure-wifi perm:android:enroll perm:android:uninstall-application perm:android:manage-configuration perm:android:location perm:android:install-application perm:android:mute perm:android:change-lock-code perm:android:blacklist-applications perm:android:set-password-policy perm:android:encrypt-storage perm:android:clear-password perm:android:enterprise-wipe perm:android:info perm:android:view-configuration perm:android:upgrade-firmware perm:android:set-webclip perm:android:send-notification perm:android:disenroll perm:android:update-application perm:android:unlock-devices perm:android:control-camera perm:android:reboot perm:android:logcat appm:subscribe perm:sign-csr perm:admin:devices:view perm:roles:add perm:roles:add-users perm:roles:update perm:roles:permissions perm:roles:details perm:roles:view perm:roles:create-combined-role perm:roles:delete perm:dashboard:vulnerabilities perm:dashboard:non-compliant-count perm:dashboard:non-compliant perm:dashboard:by-groups perm:dashboard:device-counts perm:dashboard:feature-non-compliant perm:dashboard:count-overview perm:dashboard:filtered-count perm:dashboard:details perm:get-activity perm:devices:delete perm:devices:applications perm:devices:effective-policy perm:devices:compliance-data perm:devices:features perm:devices:operations perm:devices:search perm:devices:details perm:devices:update perm:devices:view perm:view-configuration perm:manage-configuration perm:policies:remove perm:policies:priorities perm:policies:deactivate perm:policies:get-policy-details perm:policies:manage perm:policies:activate perm:policies:update perm:policies:changes perm:policies:get-details perm:users:add perm:users:details perm:users:count perm:users:delete perm:users:roles perm:users:user-details perm:users:credentials perm:users:search perm:users:is-exist perm:users:update perm:users:send-invitation perm:admin-users:view perm:groups:devices perm:groups:update perm:groups:add perm:groups:device perm:groups:devices-count perm:groups:remove perm:groups:groups perm:groups:groups-view perm:groups:share perm:groups:count perm:groups:roles perm:groups:devices-remove perm:groups:devices-add perm:groups:assign perm:device-types:features perm:device-types:types perm:applications:install perm:applications:uninstall perm:admin-groups:count perm:admin-groups:view perm:notifications:mark-checked perm:notifications:view perm:admin:certificates:delete perm:admin:certificates:details perm:admin:certificates:view perm:admin:certificates:add perm:admin:certificates:verify perm:ios:enroll perm:ios:view-device perm:ios:apn perm:ios:ldap perm:ios:enterprise-app perm:ios:store-application perm:ios:remove-application perm:ios:app-list perm:ios:profile-list perm:ios:lock perm:ios:enterprise-wipe perm:ios:device-info perm:ios:restriction perm:ios:email perm:ios:cellular perm:ios:applications perm:ios:wifi perm:ios:ring perm:ios:location perm:ios:notification perm:ios:airplay perm:ios:caldav perm:ios:cal-subscription perm:ios:passcode-policy perm:ios:webclip perm:ios:vpn perm:ios:per-app-vpn perm:ios:app-to-per-app-vpn perm:ios:app-lock perm:ios:clear-passcode perm:ios:remove-profile perm:ios:get-restrictions perm:ios:wipe-data perm:admin perm:android:applications = true scope @@ -743,7 +739,7 @@ vars.put("base64encodedId",new String(encryptedId)); https - /oauth2/token + /token POST true false diff --git a/modules/integration/tests-integration/src/test/resources/jmeter-scripts/AndroidDeviceManagementAPI_Negative_Tests.jmx b/modules/integration/tests-integration/src/test/resources/jmeter-scripts/AndroidDeviceManagementAPI_Negative_Tests.jmx new file mode 100644 index 00000000..1e5b70dd --- /dev/null +++ b/modules/integration/tests-integration/src/test/resources/jmeter-scripts/AndroidDeviceManagementAPI_Negative_Tests.jmx @@ -0,0 +1,4202 @@ + + + + + The script should be run against a fresh pack. + false + false + + + + + + + + 9999 + 100 + + false + + randAppNum + + + + + + host + localhost + = + + + https_port + 8243 + = + + + http_port + 8280 + = + + + token_ep_host + localhost + = + + + token_ep_port + 8280 + = + + + + + + continue + + false + 1 + + 1 + 1 + 1465464058000 + 1465464058000 + false + + + + + + 1 + + 1 + DeviceID + # + false + + + + true + + + + false + { + "applicationName":"app_${randAppNum}", + "isAllowedToAllDomains":false, + "tags":["android", "device_management"], + "isMappingAnExistingOAuthApp":false +} + = + + + + ${host} + ${https_port} + + + https + + /api-application-registration/register + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Basic YWRtaW46YWRtaW4= + + + Host + localhost:9763 + + + Content-Type + application/json + + + + + + false + clientId + "client_id":"(.+?)" + $1$ + 0 + 1 + + + + false + clientSecret + "client_secret":"(.+?)" + $1$ + 0 + 1 + + + + + + clientId,clientSecret + false + import org.apache.commons.codec.binary.Base64; + +String clientId= vars.get("clientId"); +String clientSecret = vars.get("clientSecret"); +String toEncode = clientId + ":" + clientSecret; + +byte[] encryptedId = Base64.encodeBase64(toEncode.getBytes()); +vars.put("base64encodedId",new String(encryptedId)); + + + + + + + false + admin + = + true + username + + + false + admin + = + true + password + + + false + password + = + true + grant_type + + + false + perm:android:enroll perm:android:wipe perm:android:ring perm:android:lock-devices perm:android:configure-vpn perm:android:configure-wifi perm:android:enroll perm:android:uninstall-application perm:android:manage-configuration perm:android:location perm:android:install-application perm:android:mute perm:android:change-lock-code perm:android:blacklist-applications perm:android:set-password-policy perm:android:encrypt-storage perm:android:clear-password perm:android:enterprise-wipe perm:android:info perm:android:view-configuration perm:android:upgrade-firmware perm:android:set-webclip perm:android:send-notification perm:android:disenroll perm:android:update-application perm:android:unlock-devices perm:android:control-camera perm:android:reboot perm:android:logcat appm:subscribe perm:sign-csr perm:admin:devices:view perm:roles:add perm:roles:add-users perm:roles:update perm:roles:permissions perm:roles:details perm:roles:view perm:roles:create-combined-role perm:roles:delete perm:dashboard:vulnerabilities perm:dashboard:non-compliant-count perm:dashboard:non-compliant perm:dashboard:by-groups perm:dashboard:device-counts perm:dashboard:feature-non-compliant perm:dashboard:count-overview perm:dashboard:filtered-count perm:dashboard:details perm:get-activity perm:devices:delete perm:devices:applications perm:devices:effective-policy perm:devices:compliance-data perm:devices:features perm:devices:operations perm:devices:search perm:devices:details perm:devices:update perm:devices:view perm:view-configuration perm:manage-configuration perm:policies:remove perm:policies:priorities perm:policies:deactivate perm:policies:get-policy-details perm:policies:manage perm:policies:activate perm:policies:update perm:policies:changes perm:policies:get-details perm:users:add perm:users:details perm:users:count perm:users:delete perm:users:roles perm:users:user-details perm:users:credentials perm:users:search perm:users:is-exist perm:users:update perm:users:send-invitation perm:admin-users:view perm:groups:devices perm:groups:update perm:groups:add perm:groups:device perm:groups:devices-count perm:groups:remove perm:groups:groups perm:groups:groups-view perm:groups:share perm:groups:count perm:groups:roles perm:groups:devices-remove perm:groups:devices-add perm:groups:assign perm:device-types:features perm:device-types:types perm:applications:install perm:applications:uninstall perm:admin-groups:count perm:admin-groups:view perm:notifications:mark-checked perm:notifications:view perm:admin:certificates:delete perm:admin:certificates:details perm:admin:certificates:view perm:admin:certificates:add perm:admin:certificates:verify perm:ios:enroll perm:ios:view-device perm:ios:apn perm:ios:ldap perm:ios:enterprise-app perm:ios:store-application perm:ios:remove-application perm:ios:app-list perm:ios:profile-list perm:ios:lock perm:ios:enterprise-wipe perm:ios:device-info perm:ios:restriction perm:ios:email perm:ios:cellular perm:ios:applications perm:ios:wifi perm:ios:ring perm:ios:location perm:ios:notification perm:ios:airplay perm:ios:caldav perm:ios:cal-subscription perm:ios:passcode-policy perm:ios:webclip perm:ios:vpn perm:ios:per-app-vpn perm:ios:app-to-per-app-vpn perm:ios:app-lock perm:ios:clear-passcode perm:ios:remove-profile perm:ios:get-restrictions perm:ios:wipe-data perm:admin perm:android:applications + = + true + scope + + + false + + = + true + + + + + ${host} + ${https_port} + + + https + + /token + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Basic ${base64encodedId} + + + Content-Type + application/x-www-form-urlencoded + + + + + + false + access_token + "access_token":"(.+?)" + $1$ + no_token + 1 + + + + + + + + false + admin + = + true + username + + + false + admin + = + true + password + + + false + password + = + true + grant_type + + + true + perm:android:enroll perm:android:wipe perm:android:ring perm:android:lock-devices perm:android:configure-vpn perm:android:configure-wifi perm:android:enroll perm:android:uninstall-application perm:android:manage-configuration perm:android:location perm:android:install-application perm:android:mute perm:android:change-lock-code perm:android:blacklist-applications perm:android:set-password-policy perm:android:encrypt-storage perm:android:clear-password perm:android:enterprise-wipe perm:android:info perm:android:view-configuration perm:android:upgrade-firmware perm:android:set-webclip perm:android:send-notification perm:android:disenroll perm:android:update-application perm:android:unlock-devices perm:android:control-camera perm:android:reboot perm:android:logcat appm:subscribe perm:sign-csr perm:admin:devices:view perm:roles:add perm:roles:add-users perm:roles:update perm:roles:permissions perm:roles:details perm:roles:view perm:roles:create-combined-role perm:roles:delete perm:dashboard:vulnerabilities perm:dashboard:non-compliant-count perm:dashboard:non-compliant perm:dashboard:by-groups perm:dashboard:device-counts perm:dashboard:feature-non-compliant perm:dashboard:count-overview perm:dashboard:filtered-count perm:dashboard:details perm:get-activity perm:devices:delete perm:devices:applications perm:devices:effective-policy perm:devices:compliance-data perm:devices:features perm:devices:operations perm:devices:search perm:devices:details perm:devices:update perm:devices:view perm:view-configuration perm:manage-configuration perm:policies:remove perm:policies:priorities perm:policies:deactivate perm:policies:get-policy-details perm:policies:manage perm:policies:activate perm:policies:update perm:policies:changes perm:policies:get-details perm:users:add perm:users:details perm:users:count perm:users:delete perm:users:roles perm:users:user-details perm:users:credentials perm:users:search perm:users:is-exist perm:users:update perm:users:send-invitation perm:admin-users:view perm:groups:devices perm:groups:update perm:groups:add perm:groups:device perm:groups:devices-count perm:groups:remove perm:groups:groups perm:groups:groups-view perm:groups:share perm:groups:count perm:groups:roles perm:groups:devices-remove perm:groups:devices-add perm:groups:assign perm:device-types:features perm:device-types:types perm:applications:install perm:applications:uninstall perm:admin-groups:count perm:admin-groups:view perm:notifications:mark-checked perm:notifications:view perm:admin:certificates:delete perm:admin:certificates:details perm:admin:certificates:view perm:admin:certificates:add perm:admin:certificates:verify perm:ios:enroll perm:ios:view-device perm:ios:apn perm:ios:ldap perm:ios:enterprise-app perm:ios:store-application perm:ios:remove-application perm:ios:app-list perm:ios:profile-list perm:ios:lock perm:ios:enterprise-wipe perm:ios:device-info perm:ios:restriction perm:ios:email perm:ios:cellular perm:ios:applications perm:ios:wifi perm:ios:ring perm:ios:location perm:ios:notification perm:ios:airplay perm:ios:caldav perm:ios:cal-subscription perm:ios:passcode-policy perm:ios:webclip perm:ios:vpn perm:ios:per-app-vpn perm:ios:app-to-per-app-vpn perm:ios:app-lock perm:ios:clear-passcode perm:ios:remove-profile perm:ios:get-restrictions perm:ios:wipe-data perm:admin perm:android:applications + = + true + scope + + + + ${host} + ${https_port} + + + https + + /token + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Basic ${base64encodedId} + + + Content-Type + application/x-www-form-urlencoded + + + + + + false + access_token + "access_token":"(.+?)" + $1$ + no_token + 1 + + + + + true + + + + false + { + "id":10${DeviceID}, + "name":"androiddevice${DeviceID}", + "type":"android", + "description":"this is an android device", + "deviceIdentifier":"d24f870f390352a3${DeviceID}", + "enrolmentInfo":{ + "id":10${DeviceID}, + "device":{ + + }, + "dateOfEnrolment":0, + "dateOfLastUpdate":0, + "ownership":"BYOD", + "status":"CREATED", + "owner":"admin" + }, + "features":[ + { + "id":10, + "code":"aaaa1111", + "name":"newfeature1", + "description":"this is the new feature 1", + "deviceType":"android", + "metadataEntries":[ + { + "id":10, + "value":{ + + } + } + ] + } + ], + "properties":[ + { + "name":"property1", + "value":"value1" + } + ], + "deviceInfo":{ + "deviceModel":"S8", + "vendor":"SAMSUNG", + "osVersion":"5.1", + "batteryLevel":1, + "internalTotalMemory":32, + "internalAvailableMemory":24, + "externalTotalMemory":64, + "externalAvailableMemory":60, + "operator":"dialog", + "connectionType":"GSM", + "mobileSignalStrength":1, + "ssid":"picassowifi", + "cpuUsage":0, + "totalRAMMemory":2, + "availableRAMMemory":1, + "pluggedIn":false, + "location":{ + "deviceId":0, + "deviceIdentifier":{ + "id":"string", + "type":"string" + }, + "latitude":0, + "longitude":0, + "street1":"string", + "street2":"string", + "city":"string", + "state":"string", + "zip":"string", + "country":"string" + }, + "deviceDetailsMap":{ + + }, + "imei":"string", + "imsi":"string" + }, + "applications":[ + { + "id":0, + "platform":"string", + "category":"string", + "name":"string", + "locationUrl":"string", + "imageUrl":"string", + "version":"string", + "type":"string", + "appProperties":{ + + }, + "applicationIdentifier":"string", + "memoryUsage":0 + } + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/devices + POST + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + true + 25 + + + + 1 + + 1 + DeviceIDL + # + false + + + + true + + + + false + { + "id":10${DeviceIDL}, + "name":"androiddevicep${DeviceIDL}", + "type":"android", + "description":"this is an android device", + "deviceIdentifier":"d24f860f390352a3${DeviceIDL}", + "enrolmentInfo":{ + "id":10${DeviceIDL}, + "device":{ + + }, + "dateOfEnrolment":0, + "dateOfLastUpdate":0, + "ownership":"BYOD", + "status":"CREATED", + "owner":"admin" + }, + "features":[ + { + "id":10, + "code":"aaaa1111", + "name":"newfeature1", + "description":"this is the new feature 1", + "deviceType":"android", + "metadataEntries":[ + { + "id":10, + "value":{ + + } + } + ] + } + ], + "properties":[ + { + "name":"property1", + "value":"value1" + } + ], + "deviceInfo":{ + "deviceModel":"S8", + "vendor":"SAMSUNG", + "osVersion":"5.1", + "batteryLevel":1, + "internalTotalMemory":32, + "internalAvailableMemory":24, + "externalTotalMemory":64, + "externalAvailableMemory":60, + "operator":"dialog", + "connectionType":"GSM", + "mobileSignalStrength":1, + "ssid":"picassowifi", + "cpuUsage":0, + "totalRAMMemory":2, + "availableRAMMemory":1, + "pluggedIn":false, + "location":{ + "deviceId":0, + "deviceIdentifier":{ + "id":"string", + "type":"string" + }, + "latitude":0, + "longitude":0, + "street1":"string", + "street2":"string", + "city":"string", + "state":"string", + "zip":"string", + "country":"string" + }, + "deviceDetailsMap":{ + + }, + "imei":"string", + "imsi":"string" + }, + "applications":[ + { + "id":0, + "platform":"string", + "category":"string", + "name":"string", + "locationUrl":"string", + "imageUrl":"string", + "version":"string", + "type":"string", + "appProperties":{ + + }, + "applicationIdentifier":"string", + "memoryUsage":0 + } + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/devices + POST + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 1000 + + + + + + + + false + 0 + = + true + offset + + + false + 1 + = + true + limit + + + + ${host} + ${https_port} + + + https + + /api/certificate-mgt/v1.0/admin/certificates + GET + false + false + true + false + HttpClient4 + false + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + true + + + + false + [ + { + "serial": "qwe12-23fdf-2s332-53fv3-sfs33", + "pem": " +MIIEXjCCA0agAwIBAgIJAPocSteC87XUMA0GCSqGSIb3DQEBBQUAMHwxCzAJBgNV +BAYTAlNMMRAwDgYDVQQIEwdDb2xvbWJvMRAwDgYDVQQHEwdDb2xvbWJvMRIwEAYD +VQQKEwlXU08yIEluYy4xHzAdBgkqhkiG9w0BCQEWEHRlY2hvcHNAd3NvMi5jb20x +FDASBgNVBAMTC1dTTzIgUmFkaXVzMB4XDTEzMDYyNzAzMzA0NFoXDTIzMDYyNTAz +MzA0NFowfDELMAkGA1UEBhMCU0wxEDAOBgNVBAgTB0NvbG9tYm8xEDAOBgNVBAcT +B0NvbG9tYm8xEjAQBgNVBAoTCVdTTzIgSW5jLjEfMB0GCSqGSIb3DQEJARYQdGVj +aG9wc0B3c28yLmNvbTEUMBIGA1UEAxMLV1NPMiBSYWRpdXMwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQDNmhw12cF0H2UGE/XtWVt238oGxn19+n/HkM2B +cDNQgnStqI+g/K2HBtjmvVPBh17Mt+dU2BIathn06amza+LI+hHgeLUSv30jutv4 +L5zD2laAU9A/I0Wtrxu5FlsevRPSiY7buLjTbjP7IMn9vdwb+9nBQCGxVpO6AK2A +gsFJ5udnp7L+jNsHmHFt36AYZouihgD+/RGVLBAhtPoU6XFB1JoGFM+4qxklJLPh +k86WollG4cFvHXSbO1P95n6Jb/V3hfM0PvwFZswRPVnW8ngqm889C/JEk5rK4FHy +xk9MgeFRW6zA+3rVnyPdhy6/q4EerBLMfBEWpzFHyHDKMGanAgMBAAGjgeIwgd8w +HQYDVR0OBBYEFKRxtF0CWPwL7jRvA4NSIzploUgrMIGvBgNVHSMEgacwgaSAFKRx +tF0CWPwL7jRvA4NSIzploUgroYGApH4wfDELMAkGA1UEBhMCU0wxEDAOBgNVBAgT +B0NvbG9tYm8xEDAOBgNVBAcTB0NvbG9tYm8xEjAQBgNVBAoTCVdTTzIgSW5jLjEf +MB0GCSqGSIb3DQEJARYQdGVjaG9wc0B3c28yLmNvbTEUMBIGA1UEAxMLV1NPMiBS +YWRpdXOCCQD6HErXgvO11DAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IB +AQCDQV9wy8rfuFp4uByqYhnrQjzBN75VbNcgpdYocOxQPLnjWRM5qdJHELrt4FEl +rDMGd1BpP7QMAEYJUIcpDHPbs9HVCeEV6hdOrLgGxNDB0YVa2Fr5k2U8gsNIgKZo +fKxscx0w5OM71IQbuppAgIHK29DBVBVppO+zduIbVtSoBo/gcVIqVGXQXf8TFtoV +xyfGUTYdBDP4fT4p8uLASXmdaFyegQOhkjSuchVPGSJOZD6TvOjE6ZvBu9eC7sqh +oTPY56Ld0GscWJmAuj+8vmWGu0md8MnM2DE0SIYE3bo/sPp3yEIbCAnHmcveG8hn +GEL4ZNjZ+jnwSkzwBU5vh/QS", + "tenantId": 0 + } +] + = + + + + ${host} + ${https_port} + + + https + + /api/certificate-mgt/v1.0/admin/certificates + POST + false + false + true + false + HttpClient4 + false + + + + + + 201 + + Assertion.response_code + false + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + + + + false + 3 + = + true + offset + + + false + 2 + = + true + limit + + + + ${host} + ${https_port} + + + https + + /api/certificate-mgt/v1.0/admin/certificates + GET + false + false + true + false + HttpClient4 + false + + + + + + 200 + + Assertion.response_code + true + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + + + + ${host} + ${https_port} + + + https + + /api/certificate-mgt/v1.0/admin/certificates/qwe12-23fdf-2s332-53fv3-sfs33 + GET + false + false + true + false + HttpClient4 + false + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + + + + ${host} + ${https_port} + + + https + + /api/certificate-mgt/v1.0/admin/certificates/qwe12-23fdf-2s332-53fv3-sfs35 + GET + false + false + true + false + HttpClient4 + false + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + + + + false + 0 + = + true + offset + + + false + 100000 + = + true + limit + + + + ${host} + ${https_port} + + + https + + /api/certificate-mgt/v1.0/admin/certificates + GET + false + false + true + false + HttpClient4 + false + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + + + + ${host} + ${https_port} + + + https + + /api/certificate-mgt/v1.0/admin/certificates/qwe12-23fdf-2s332-53fv3-sfs33 + DELETE + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + + + + ${host} + ${https_port} + + + https + + /api/certificate-mgt/v1.0/admin/certificates/qwe12-23fdf-2s332-53fv3-sfs34 + DELETE + false + false + true + false + HttpClient4 + false + + + + + + 404 + + Assertion.response_code + true + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + + + + false + 0 + = + true + offset + + + false + 100000 + = + true + limit + + + + ${host} + ${https_port} + + + https + + /api/certificate-mgt/v1.0/admin/certificates + GET + false + false + true + false + HttpClient4 + false + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/devices/android/d24f760f390352a31 + GET + true + false + true + false + HttpClient4 + false + + + + + + 404 + + Assertion.response_code + true + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/devices/android/d24f760f390352a31/applications + GET + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/devices/android/d24f760f390352a31/effective-policy + GET + true + false + true + false + HttpClient4 + false + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + + + + false + admin + = + true + owner + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/devices/android/d24f760f390352a31/operations + GET + true + false + true + false + HttpClient4 + false + + + + + + 500 + + Assertion.response_code + true + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/devices/android/d24f760f390352a31/compliance-data + GET + true + false + true + false + HttpClient4 + false + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + { + "id":101, + "name":"androiddevice1000${DeviceID}", + "type":"android", + "description":"this is an android device", + "deviceIdentifier":"d24f860f390352a31", + "enrolmentInfo":{ + "id":101, + "device":{ + + }, + "dateOfEnrolment":0, + "dateOfLastUpdate":0, + "ownership":"BYOD", + "status":"CREATED", + "owner":"admin" + } + "features":[ + { + "id":10, + "code":"aaaa1111", + "name":"newfeature1", + "description":"this is the new feature 1", + "deviceType":"android", + "metadataEntries":[ + { + "id":10, + "value":{ + + } + } + ] + } + ], + "properties":[ + { + "name":"property1", + "value":"value1" + } + ], + "deviceInfo":{ + "deviceModel":"S8", + "vendor":"SAMSUNG", + "osVersion":"5.1", + "batteryLevel":1, + "internalTotalMemory":32, + "internalAvailableMemory":24, + "externalTotalMemory":64, + "externalAvailableMemory":60, + "operator":"dialog", + "connectionType":"GSM", + "mobileSignalStrength":1, + "ssid":"picassowifi", + "cpuUsage":0, + "totalRAMMemory":2, + "availableRAMMemory":1, + "pluggedIn":false, + "location":{ + "deviceId":0, + "deviceIdentifier":{ + "id":"string", + "type":"string" + }, + "latitude":0, + "longitude":0, + "street1":"string", + "street2":"string", + "city":"string", + "state":"string", + "zip":"string", + "country":"string" + }, + "deviceDetailsMap":{ + + }, + "imei":"string", + "imsi":"string" + }, + "applications":[ + { + "id":0, + "platform":"string", + "category":"string", + "name":"string", + "locationUrl":"string", + "imageUrl":"string", + "version":"string", + "type":"string", + "appProperties":{ + + }, + "applicationIdentifier":"string", + "memoryUsage":0 + } + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/devices + POST + true + false + true + false + HttpClient4 + false + + A json parse error may get thrown on server side for this test. This is expected. + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 400 + + Assertion.response_code + true + 2 + + + + + true + + + + false + { + "id":1012, + "name":"androiddevice10001122", + "type":"android", + "description":"this is an android device", + "deviceIdentifier":"d24f760f390352a31", + "enrolmentInfo":{ + "id":1012, + "device":{ + + }, + "dateOfEnrolment":0, + "dateOfLastUpdate":0, + "ownership":"BYOD", + "status":"CREATED", + "owner":"admin" + }, + "features":[ + { + "id":10, + "code":"aaaa1111", + "name":"newfeature2", + "description":"this is the new feature 2", + "deviceType":"android", + "metadataEntries":[ + { + "id":10, + "value":{ + + } + } + ] + } + ], + "properties":[ + { + "name":"property1", + "value":"value1" + } + ], + "deviceInfo":{ + "deviceModel":"S8", + "vendor":"SAMSUNG", + "osVersion":"5.1", + "batteryLevel":1, + "internalTotalMemory":32, + "internalAvailableMemory":24, + "externalTotalMemory":64, + "externalAvailableMemory":60, + "operator":"dialog", + "connectionType":"GSM", + "mobileSignalStrength":1, + "ssid":"picassowifi", + "cpuUsage":0, + "totalRAMMemory":2, + "availableRAMMemory":1, + "pluggedIn":false, + "location":{ + "deviceId":0, + "deviceIdentifier":{ + "id":"string", + "type":"string" + }, + "latitude":0, + "longitude":0, + "street1":"string", + "street2":"string", + "city":"string", + "state":"string", + "zip":"string", + "country":"string" + }, + "deviceDetailsMap":{ + + }, + "imei":"string", + "imsi":"string" + }, + "applications":[ + { + "id":0, + "platform":"string", + "category":"string", + "name":"string", + "locationUrl":"string", + "imageUrl":"string", + "version":"string", + "type":"string", + "appProperties":{ + + }, + "applicationIdentifier":"string", + "memoryUsage":0 + } + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/devices/d24f760f390352a31 + PUT + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + [ + { + "id": 10, + "platform": "android", + "category": "Business", + "name": "Graphical", + "locationUrl": "string", + "imageUrl": "string", + "version": "1.0.0", + "type": "string", + "appProperties": {}, + "applicationIdentifier": "string", + "memoryUsage": 0 + } +] + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/android/v1.0/devices/d24f760f390352a31/applications + PUT + true + false + true + false + HttpClient4 + false + + + + + + 500 + + Assertion.response_code + true + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/devices/d24f760f390352a31/status + GET + true + false + true + false + HttpClient4 + false + + + + + + 404 + + Assertion.response_code + true + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + ["d24f760f390352a31"] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/applications + POST + true + false + true + false + HttpClient4 + false + + + + + + 400 + + Assertion.response_code + true + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + { + "operation": { + "lockCode": "0000" + }, + "deviceIDs": [ + "d24f760f390352a31" + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/change-lock-code + POST + true + false + true + false + HttpClient4 + false + + + + + + 400 + + Assertion.response_code + true + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + { + "operation": { + "lockCod": "0000" + }, + "deviceIDs": [ + "d24f860f390352a31" + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/change-lock-code + POST + true + false + true + false + HttpClient4 + false + + Changing the Lock Code on Android Device with Invalid payload valid dev ID + + + + + 400 + + Assertion.response_code + false + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + ["d24f760f390352a31"] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/clear-password + POST + true + false + true + false + HttpClient4 + false + + + + + + 400 + + Assertion.response_code + true + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + { + "operation": { + "ssid": "string", + "password": "string" + }, + "deviceIDs": [ + "d24f760f390352a31" + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/configure-wifi + POST + true + false + true + false + HttpClient4 + false + + + + + + 400 + + Assertion.response_code + true + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + { + "operation": { + "ssid": 1, + "password": 24 + }, + "deviceIDs": [ + "d24f860f390352a31" + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/configure-wifi + POST + true + false + true + false + HttpClient4 + false + + Configuring Wi-Fi on Android Device with invalid payload data types + + + + + 400 + + Assertion.response_code + false + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + { + "operation": { + "enabled": false + }, + "deviceIDs": [ + "d24f760f390352a31" + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/control-camera + POST + true + false + true + false + HttpClient4 + false + + + + + + 400 + + Assertion.response_code + true + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + { + "operation": { + "enabled": 59 + }, + "deviceIDs": [ + "d24f860f390352a31" + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/control-camera + POST + true + false + true + false + HttpClient4 + false + + Enabling or Disabling the Camera with Invalid Payload data types + + + + + 400 + + Assertion.response_code + true + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + { + "operation": { + "encrypted": false + }, + "deviceIDs": [ + "d24f760f390352a31" + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/encrypt-storage + POST + true + false + true + false + HttpClient4 + false + + + + + + 400 + + Assertion.response_code + true + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + { + "operation": { + "encrypt": 78 + }, + "deviceIDs": [ + "d24f760f390352a31" + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/encrypt-storage + POST + true + false + true + false + HttpClient4 + false + + + + + + 400 + + Assertion.response_code + true + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + ["d24f760f390352a31"] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/enterprise-wipe + POST + true + false + true + false + HttpClient4 + false + + + + + + 400 + + Assertion.response_code + true + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + ["d24f760f390352a31"] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/location + POST + true + false + true + false + HttpClient4 + false + + + + + + 400 + + Assertion.response_code + true + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + [1234567890] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/location + POST + true + false + true + false + HttpClient4 + false + + + + + + 400 + + Assertion.response_code + true + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + { + "deviceIDs": [ + "d24f760f390352a31" + ], + "operation": { + "message": "string", + "hardLockEnabled": false + } +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/lock-devices + POST + true + false + true + false + HttpClient4 + false + + + + + + 400 + + Assertion.response_code + true + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + { + "deviceIDs": [ + "d24f860f390352a31" + ], + "operation": { + "message": "string", + "hardLockEnabled": 56 + } +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/lock-devices + POST + true + false + true + false + HttpClient4 + false + + + + + + 400 + + Assertion.response_code + false + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + ["d24f760f390352a31"] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/mute + POST + true + false + true + false + HttpClient4 + false + + + + + + 400 + + Assertion.response_code + true + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + ["d24f760f390352a31"] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/reboot + POST + true + false + true + false + HttpClient4 + false + + + + + + 400 + + Assertion.response_code + true + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + ["d24f760f390352a31"] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/ring + POST + true + false + true + false + HttpClient4 + false + + + + + + 400 + + Assertion.response_code + true + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + { + "deviceIDs": [ + "d24f760f390352a31" + ], + "operation": { + "messageText": "string", + "messageTitle": "string" + } +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/send-notification + POST + true + false + true + false + HttpClient4 + false + + + + + + 400 + + Assertion.response_code + true + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + { + "operation": { + "maxFailedAttempts": 0, + "minLength": 0, + "pinHistory": 0, + "minComplexChars": 0, + "maxPINAgeInDays": 0, + "requireAlphanumeric": false, + "allowSimple": false + }, + "deviceIDs": [ + "d24f760f390352a31" + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/set-password-policy + POST + true + false + true + false + HttpClient4 + false + + + + + + 400 + + Assertion.response_code + true + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + { + "operation": { + "identity": "string", + "title": "string", + "type": "string" + }, + "deviceIDs": [ + "d24f760f390352a31" + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/set-webclip + POST + true + false + true + false + HttpClient4 + false + + + + + + 400 + + Assertion.response_code + true + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + ["d24f760f390352a31"] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/unlock-devices + POST + true + false + true + false + HttpClient4 + false + + + + + + 400 + + Assertion.response_code + true + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + { + "operation": { + "pin": "string" + }, + "deviceIDs": [ + "d24f760f390352a31" + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/wipe + POST + true + false + true + false + HttpClient4 + false + + + + + + 400 + + Assertion.response_code + true + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + ["d24f760f390352a31","d24f860f390352a31"] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/applications + POST + true + false + true + false + HttpClient4 + false + + + + + + 201 + + Assertion.response_code + true + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + { + "operation": { + "lockCode": "0000" + }, + "deviceIDs": [ + "d24f760f390352a31","d24f860f390352a31" + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/change-lock-code + POST + true + false + true + false + HttpClient4 + false + + + + + + 201 + + Assertion.response_code + false + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + ["d24f750f390352a31","d24f860f390352a31"] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/clear-password + POST + true + false + true + false + HttpClient4 + false + + + + + + 201 + + Assertion.response_code + false + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + { + "operation": { + "ssid": "string", + "password": "string" + }, + "deviceIDs": [ + "d24f760f390352a31","d24f860f390352a31" + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/configure-wifi + POST + true + false + true + false + HttpClient4 + false + + + + + + 201 + + Assertion.response_code + false + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + { + "operation": { + "enabled": false + }, + "deviceIDs": [ + "d24f760f390352a31","d24f860f390352a31" + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/control-camera + POST + true + false + true + false + HttpClient4 + false + + + + + + 201 + + Assertion.response_code + false + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + { + "operation": { + "encrypted": false + }, + "deviceIDs": [ + "d24f760f390352a31","d24f860f390352a31" + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/encrypt-storage + POST + true + false + true + false + HttpClient4 + false + + + + + + 201 + + Assertion.response_code + false + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + ["d24f760f390352a31","d24f860f390352a31"] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/enterprise-wipe + POST + true + false + true + false + HttpClient4 + false + + + + + + 201 + + Assertion.response_code + false + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + [1234567890,"d24f860f390352a31"] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/location + POST + true + false + true + false + HttpClient4 + false + + + + + + 201 + + Assertion.response_code + false + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + { + "deviceIDs": [ + "d24f760f390352a31","d24f860f390352a31" + ], + "operation": { + "message": "string", + "hardLockEnabled": false + } +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/lock-devices + POST + true + false + true + false + HttpClient4 + false + + + + + + 201 + + Assertion.response_code + false + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + ["d24f760f390352a31","d24f860f390352a31"] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/reboot + POST + true + false + true + false + HttpClient4 + false + + + + + + 201 + + Assertion.response_code + false + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + ["d24f760f390352a31","d24f860f390352a31"] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/ring + POST + true + false + true + false + HttpClient4 + false + + + + + + 201 + + Assertion.response_code + false + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + { + "deviceIDs": [ + "d24f760f390352a31","d24f860f390352a31" + ], + "operation": { + "messageText": "string", + "messageTitle": "string" + } +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/send-notification + POST + true + false + true + false + HttpClient4 + false + + + + + + 201 + + Assertion.response_code + false + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + { + "operation": { + "maxFailedAttempts": 0, + "minLength": 0, + "pinHistory": 0, + "minComplexChars": 0, + "maxPINAgeInDays": 0, + "requireAlphanumeric": false, + "allowSimple": false + }, + "deviceIDs": [ + "d24f760f390352a31","d24f860f390352a31" + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/set-password-policy + POST + true + false + true + false + HttpClient4 + false + + + + + + 201 + + Assertion.response_code + false + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + { + "operation": { + "identity": "string", + "title": "string", + "type": "string" + }, + "deviceIDs": [ + "d24f760f390352a31","d24f860f390352a31" + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/set-webclip + POST + true + false + true + false + HttpClient4 + false + + + + + + 201 + + Assertion.response_code + false + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + ["d24f760f390352a31","d24f860f390352a31"] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/unlock-devices + POST + true + false + true + false + HttpClient4 + false + + + + + + 201 + + Assertion.response_code + false + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + { + "operation": { + "pin": "string" + }, + "deviceIDs": [ + "d24f760f390352a31","d24f860f390352a31" + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/wipe + POST + true + false + true + false + HttpClient4 + false + + + + + + 201 + + Assertion.response_code + false + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + true + + + + false + ["d24f760f390352a31","d24f860f390352a31"] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/admin/devices/mute + POST + true + false + true + false + HttpClient4 + false + + + + + + 201 + + Assertion.response_code + false + 2 + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + Accept + application/json + + + + + + + false + + saveConfig + + + true + true + true + + true + true + true + true + false + true + true + false + false + false + true + false + false + false + true + 0 + true + true + true + + + + + + + + false + + saveConfig + + + true + true + true + + true + true + true + true + false + true + true + false + false + false + false + false + false + false + false + 0 + true + true + + + + assertion failures will be marked with a Response Assertion : Test failed msg. + + + + + diff --git a/modules/integration/tests-integration/src/test/resources/jmeter-scripts/GroupManagementAPI.jmx b/modules/integration/tests-integration/src/test/resources/jmeter-scripts/GroupManagementAPI.jmx new file mode 100644 index 00000000..338b9e13 --- /dev/null +++ b/modules/integration/tests-integration/src/test/resources/jmeter-scripts/GroupManagementAPI.jmx @@ -0,0 +1,2032 @@ + + + + + + false + false + + + + host + 172.17.0.1 + = + + + http_port + 9763 + = + + + https_port + 9443 + = + + + + + + + + 9999 + 100 + + false + + randAppNum + + + + + + host + localhost + = + + + https_port + 8243 + = + + + http_port + 8280 + = + + + token_ep_host + localhost + = + + + token_ep_port + 8280 + = + + + group_name + Group 2 + = + + + new_group_name + New Group + = + + + role_name + group_sharing + = + + + DeviceID + 1 + = + + + DeviceIdentifier + group_device + = + + + + + + continue + + false + 1 + + 1 + 1 + 1465464058000 + 1465464058000 + false + + + + + + true + + + + false + { + "applicationName":"app_${randAppNum}", + "isAllowedToAllDomains":false, + "tags":["android", "device_management"], + "isMappingAnExistingOAuthApp":false +} + = + + + + ${host} + ${https_port} + + + https + + /api-application-registration/register + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Basic YWRtaW46YWRtaW4= + + + Host + localhost:9763 + + + Content-Type + application/json + + + + + + false + clientId + "client_id":"(.+?)" + $1$ + 0 + 1 + + + + false + clientSecret + "client_secret":"(.+?)" + $1$ + 0 + 1 + + + + + + clientId,clientSecret + false + import org.apache.commons.codec.binary.Base64; + +String clientId= vars.get("clientId"); +String clientSecret = vars.get("clientSecret"); +String toEncode = clientId + ":" + clientSecret; + +byte[] encryptedId = Base64.encodeBase64(toEncode.getBytes()); +vars.put("base64encodedId",new String(encryptedId)); + + + + + + + false + admin + = + true + username + + + false + admin + = + true + password + + + false + password + = + true + grant_type + + + false + perm:android:enroll perm:android:wipe perm:android:ring perm:android:lock-devices perm:android:configure-vpn perm:android:configure-wifi perm:android:enroll perm:android:uninstall-application perm:android:manage-configuration perm:android:location perm:android:install-application perm:android:mute perm:android:change-lock-code perm:android:blacklist-applications perm:android:set-password-policy perm:android:encrypt-storage perm:android:clear-password perm:android:enterprise-wipe perm:android:info perm:android:view-configuration perm:android:upgrade-firmware perm:android:set-webclip perm:android:send-notification perm:android:disenroll perm:android:update-application perm:android:unlock-devices perm:android:control-camera perm:android:reboot perm:android:logcat appm:subscribe perm:sign-csr perm:admin:devices:view perm:roles:add perm:roles:add-users perm:roles:update perm:roles:permissions perm:roles:details perm:roles:view perm:roles:create-combined-role perm:roles:delete perm:dashboard:vulnerabilities perm:dashboard:non-compliant-count perm:dashboard:non-compliant perm:dashboard:by-groups perm:dashboard:device-counts perm:dashboard:feature-non-compliant perm:dashboard:count-overview perm:dashboard:filtered-count perm:dashboard:details perm:get-activity perm:devices:delete perm:devices:applications perm:devices:effective-policy perm:devices:compliance-data perm:devices:features perm:devices:operations perm:devices:search perm:devices:details perm:devices:update perm:devices:view perm:view-configuration perm:manage-configuration perm:policies:remove perm:policies:priorities perm:policies:deactivate perm:policies:get-policy-details perm:policies:manage perm:policies:activate perm:policies:update perm:policies:changes perm:policies:get-details perm:users:add perm:users:details perm:users:count perm:users:delete perm:users:roles perm:users:user-details perm:users:credentials perm:users:search perm:users:is-exist perm:users:update perm:users:send-invitation perm:admin-users:view perm:groups:devices perm:groups:update perm:groups:add perm:groups:device perm:groups:devices-count perm:groups:remove perm:groups:groups perm:groups:groups-view perm:groups:share perm:groups:count perm:groups:roles perm:groups:devices-remove perm:groups:devices-add perm:groups:assign perm:device-types:features perm:device-types:types perm:applications:install perm:applications:uninstall perm:admin-groups:count perm:admin-groups:view perm:notifications:mark-checked perm:notifications:view perm:admin:certificates:delete perm:admin:certificates:details perm:admin:certificates:view perm:admin:certificates:add perm:admin:certificates:verify perm:ios:enroll perm:ios:view-device perm:ios:apn perm:ios:ldap perm:ios:enterprise-app perm:ios:store-application perm:ios:remove-application perm:ios:app-list perm:ios:profile-list perm:ios:lock perm:ios:enterprise-wipe perm:ios:device-info perm:ios:restriction perm:ios:email perm:ios:cellular perm:ios:applications perm:ios:wifi perm:ios:ring perm:ios:location perm:ios:notification perm:ios:airplay perm:ios:caldav perm:ios:cal-subscription perm:ios:passcode-policy perm:ios:webclip perm:ios:vpn perm:ios:per-app-vpn perm:ios:app-to-per-app-vpn perm:ios:app-lock perm:ios:clear-passcode perm:ios:remove-profile perm:ios:get-restrictions perm:ios:wipe-data perm:admin perm:android:applications + = + true + scope + + + false + + = + true + + + + + ${host} + ${https_port} + + + https + + /token + POST + true + false + true + false + HttpClient4 + false + + + + + + + Authorization + Basic ${base64encodedId} + + + Content-Type + application/x-www-form-urlencoded + + + + + + false + access_token + "access_token":"(.+?)" + $1$ + no_token + 1 + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups/count + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + 0 + + Assertion.response_data + false + 16 + + + + + true + + + + false + + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + "count":0 + + Assertion.response_data + false + 2 + + + + + true + + + + false + { + "id" : 2, + "description" : "This is a test group", + "name" : "${group_name}" + } + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups + POST + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 201 + + Assertion.response_code + false + 2 + + + + + true + + + + false + { + "id" : 2, + "description" : "This is a test group", + "name" : "${group_name}" + } + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups + POST + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 409 + + Assertion.response_code + true + 2 + + + + + true + + + + false + + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + "name":"Group 2" + + Assertion.response_data + false + 16 + + + + + "count":1 + + Assertion.response_data + false + 16 + + + + false + groupId + "id":(.+?) + $1$ + no_token + 1 + + + + + + + + false + false_group + = + true + name + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + "deviceGroups":[] + + Assertion.response_data + false + 16 + + + + + + + + false + admin + = + true + owner + + + true + Group 2 + = + true + name + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + "name":"Group 2" + + Assertion.response_data + false + 16 + + + + + "count":1 + + Assertion.response_data + false + 16 + + + + + + + + false + admin + = + true + owner + + + false + dadad + = + true + name + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + "deviceGroups":[] + + Assertion.response_data + false + 16 + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups/count + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + 1 + + Assertion.response_data + false + 16 + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups/id/${groupId} + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + "description":"This is a test group" + + Assertion.response_data + false + 2 + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups/id/3333 + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 404 + + Assertion.response_code + true + 2 + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups/id/hello + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 404 + + Assertion.response_code + true + 2 + + + + + true + + + + false + { + "id" : "${groupId}", + "description" : "This is a new test group", + "name" : "${group_name}" + } + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/v1.0/groups/id/10000 + PUT + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 409 + + Assertion.response_code + true + 2 + + + + + true + + + + false + { + "id" : "${groupId}", + "description" : "This is a new test group", + "name" : "${new_group_name}" + } + = + + + + ${host} + ${https_port} + + + https + UTF-8 + /api/device-mgt/v1.0/groups/id/${groupId} + PUT + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups/id/${groupId} + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + "description":"This is a new test group" + + Assertion.response_data + false + 2 + + + + + true + + + + false + { + "roleName": "${role_name}", + "users" : ["admin"] +} + + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/roles + POST + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 201 + + Assertion.response_code + false + 2 + + + + + true + + + + false + ["${role_name}"] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups/id/${groupId}/share + POST + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups/id/${groupId}/roles + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + "count":1 + + Assertion.response_data + false + 2 + + + + + "${role_name}" + + Assertion.response_data + false + 2 + + + + + true + + + + false + { + "id":1000${DeviceID}, + "name":"androiddevice${DeviceID}", + "type":"android", + "description":"this is an android device", + "deviceIdentifier":"${DeviceIdentifier}", + "enrolmentInfo":{ + "id":1000${DeviceID}, + "device":{ + + }, + "dateOfEnrolment":0, + "dateOfLastUpdate":0, + "ownership":"BYOD", + "status":"CREATED", + "owner":"admin" + }, + "features":[ + { + "id":10, + "code":"aaaa1111", + "name":"newfeature1", + "description":"this is the new feature 1", + "deviceType":"android", + "metadataEntries":[ + { + "id":10, + "value":{ + + } + } + ] + } + ], + "properties":[ + { + "name":"property1", + "value":"value1" + } + ], + "deviceInfo":{ + "deviceModel":"S6", + "vendor":"SAMSUNG", + "osVersion":"5.1", + "batteryLevel":1, + "internalTotalMemory":32, + "internalAvailableMemory":24, + "externalTotalMemory":64, + "externalAvailableMemory":60, + "operator":"dialog", + "connectionType":"GSM", + "mobileSignalStrength":1, + "ssid":"picassowifi", + "cpuUsage":0, + "totalRAMMemory":2, + "availableRAMMemory":1, + "pluggedIn":false, + "location":{ + "deviceId":0, + "deviceIdentifier":{ + "id":"string", + "type":"string" + }, + "latitude":0, + "longitude":0, + "street1":"string", + "street2":"string", + "city":"string", + "state":"string", + "zip":"string", + "country":"string" + }, + "deviceDetailsMap":{ + + }, + "imei":"string", + "imsi":"string" + }, + "applications":[ + { + "id":0, + "platform":"string", + "category":"string", + "name":"string", + "locationUrl":"string", + "imageUrl":"string", + "version":"string", + "type":"string", + "appProperties":{ + + }, + "applicationIdentifier":"string", + "memoryUsage":0 + } + ] +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/android/v1.0/devices + POST + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + true + + + + false + [{"id":"${DeviceIdentifier}", "type":"android"}] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups/id/${groupId}/devices/add + POST + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + true + + + + false + + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups/id/${groupId}/devices/ + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + "count":1 + + Assertion.response_data + false + 2 + + + + + true + + + + false + + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups/id/${groupId}/devices/count + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + 1 + + Assertion.response_data + false + 8 + + + + + + + + false + ${DeviceIdentifier} + = + true + deviceId + + + false + android + = + true + deviceType + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups/device + GET + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 2 + + + + + "${new_group_name}" + + Assertion.response_data + false + 2 + + + + + true + + + + false + { + "deviceGroupIds" : [${groupId}], + "deviceIdentifier" : {"id":"${DeviceIdentifier}", "type":"android"} +} + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups/device/assign + POST + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 8 + + + + + true + + + + false + [{"id":"${DeviceIdentifier}", "type":"android"}] + = + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups/id/${groupId}/devices/remove + POST + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 8 + + + + + + + + ${host} + ${https_port} + + + https + + /api/device-mgt/v1.0/groups/id/${groupId} + DELETE + false + false + true + false + HttpClient4 + false + + + + + + + Authorization + Bearer ${access_token} + + + Content-Type + application/json + + + + + + + 200 + + Assertion.response_code + false + 8 + + + + + + false + + saveConfig + + + true + true + true + + true + true + true + true + false + true + true + false + false + false + false + false + false + false + false + 0 + true + true + + + + + + + true + true + true + + true + true + true + true + false + true + true + false + false + false + false + false + false + false + false + 0 + true + true + + + + + + + false + + saveConfig + + + true + true + true + + true + true + true + true + false + true + true + false + false + false + false + false + false + false + false + 0 + true + true + + + + + + + true + true + true + + true + true + true + true + false + true + true + false + false + false + false + false + false + false + false + 0 + true + true + + + + + + + Results + true + false + true + false + + + + false + + saveConfig + + + true + true + true + + true + true + true + true + false + true + true + false + false + false + false + false + false + false + false + 0 + true + true + + + + + + + true + true + true + + true + true + true + true + false + true + true + false + false + false + false + false + false + false + false + 0 + true + true + + + + + + + + diff --git a/modules/integration/tests-integration/src/test/resources/testng.xml b/modules/integration/tests-integration/src/test/resources/testng.xml index 5b704d39..2d8e6ec9 100644 --- a/modules/integration/tests-integration/src/test/resources/testng.xml +++ b/modules/integration/tests-integration/src/test/resources/testng.xml @@ -64,14 +64,14 @@ - - - + + + - - - + + + @@ -79,30 +79,41 @@ - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + + + + + + + + + + + + From fb5d73ecbee4cf5c5eb9a65c89f92e6d7f14253a Mon Sep 17 00:00:00 2001 From: megala21 Date: Thu, 27 Apr 2017 10:33:45 +0530 Subject: [PATCH 2/2] Improving scripts --- ...iceManagementAPIAdditionalPermutations.jmx | 33 ++- .../jmeter-scripts/GroupManagementAPI.jmx | 266 ++++++++++++++++-- 2 files changed, 266 insertions(+), 33 deletions(-) diff --git a/modules/integration/tests-integration/src/test/resources/jmeter-scripts/AndroidDeviceManagementAPIAdditionalPermutations.jmx b/modules/integration/tests-integration/src/test/resources/jmeter-scripts/AndroidDeviceManagementAPIAdditionalPermutations.jmx index 9415a4fa..34738b5d 100644 --- a/modules/integration/tests-integration/src/test/resources/jmeter-scripts/AndroidDeviceManagementAPIAdditionalPermutations.jmx +++ b/modules/integration/tests-integration/src/test/resources/jmeter-scripts/AndroidDeviceManagementAPIAdditionalPermutations.jmx @@ -1,5 +1,5 @@ - + @@ -45,12 +45,12 @@ https_port - 9443 + 8243 = http_port - 9763 + 8280 = @@ -60,7 +60,12 @@ token_ep_port - 9763 + 8280 + = + + + https_management_port + 9443 = @@ -108,7 +113,7 @@ - https://${host}:${https_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/ + https://${host}:${https_management_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aut="http://authentication.services.core.carbon.wso2.org"> <soapenv:Header/> <soapenv:Body> @@ -136,7 +141,7 @@ - https://${host}:${https_port}/services/UserAdmin.UserAdminHttpsSoap11Endpoint/ + https://${host}:${https_management_port}/services/UserAdmin.UserAdminHttpsSoap11Endpoint/ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://org.apache.axis2/xsd" xmlns:xsd1="http://common.mgt.user.carbon.wso2.org/xsd"> <soapenv:Header/> <soapenv:Body> @@ -162,7 +167,7 @@ - https://${host}:${https_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/ + https://${host}:${https_management_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aut="http://authentication.services.core.carbon.wso2.org"> <soapenv:Header/> <soapenv:Body> @@ -189,7 +194,7 @@ - https://${host}:${https_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/ + https://${host}:${https_management_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aut="http://authentication.services.core.carbon.wso2.org"> <soapenv:Header/> <soapenv:Body> @@ -217,7 +222,7 @@ - https://${host}:${https_port}/services/UserAdmin.UserAdminHttpsSoap11Endpoint/ + https://${host}:${https_management_port}/services/UserAdmin.UserAdminHttpsSoap11Endpoint/ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://org.apache.axis2/xsd" xmlns:xsd1="http://common.mgt.user.carbon.wso2.org/xsd"> <soapenv:Header/> <soapenv:Body> @@ -243,7 +248,7 @@ - https://${host}:${https_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/ + https://${host}:${https_management_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aut="http://authentication.services.core.carbon.wso2.org"> <soapenv:Header/> <soapenv:Body> @@ -264,7 +269,7 @@ - https://${host}:${https_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/ + https://${host}:${https_management_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aut="http://authentication.services.core.carbon.wso2.org"> <soapenv:Header/> <soapenv:Body> @@ -292,7 +297,7 @@ - https://${host}:${https_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/ + https://${host}:${https_management_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aut="http://authentication.services.core.carbon.wso2.org"> <soapenv:Header/> <soapenv:Body> @@ -12420,9 +12425,9 @@ vars.put("base64encodedId",new String(encryptedId)); - + Results - false + true false false false diff --git a/modules/integration/tests-integration/src/test/resources/jmeter-scripts/GroupManagementAPI.jmx b/modules/integration/tests-integration/src/test/resources/jmeter-scripts/GroupManagementAPI.jmx index 338b9e13..7324ba2e 100644 --- a/modules/integration/tests-integration/src/test/resources/jmeter-scripts/GroupManagementAPI.jmx +++ b/modules/integration/tests-integration/src/test/resources/jmeter-scripts/GroupManagementAPI.jmx @@ -1,28 +1,12 @@ - + - + false false - - - host - 172.17.0.1 - = - - - http_port - 9763 - = - - - https_port - 9443 - = - - + @@ -88,9 +72,253 @@ group_device = + + tenant_user_name + admin + Name of Tenant + = + + + domain_name + wso2.com + Name of Domain + = + + + password + admin + Password + = + + + email + abc@wso2.com + Email + = + + + firstName + firstName + First Name + = + + + lastName + lastName + Last Name + = + + + usagePlan + Demo + Usage Plan + = + + + createdDate + 2013-02-22T08:22:35+)5:30 + Created Date + = + + + management_https_port + 9443 + Port for carbon management console + = + + + continue + + false + 1 + + 1 + + 1342532280000 + 1342532280000 + false + + + + + + + false + rfc2109 + + + + + + + https://${host}:${management_https_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/ + <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aut="http://authentication.services.core.carbon.wso2.org"> + <soapenv:Header/> + <soapenv:Body> + <aut:login> + <!--Optional:--> + <aut:username>admin</aut:username> + <!--Optional:--> + <aut:password>admin</aut:password> + <!--Optional:--> + <aut:remoteAddress>127.0.0.1</aut:remoteAddress> + </aut:login> + </soapenv:Body> +</soapenv:Envelope> + + urn:login + true + false + + + + + + + https://${host}:${management_https_port}/services/TenantMgtAdminService.TenantMgtAdminServiceHttpsSoap11Endpoint/ + <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.mgt.tenant.carbon.wso2.org"> + <soapenv:Header/> + <soapenv:Body> + <ser:getTenant> + <!--Optional:--> + <ser:tenantDomain>${domain_name}</ser:tenantDomain> + </ser:getTenant> + </soapenv:Body> +</soapenv:Envelope> + + urn:getTenant + true + false + + + + undefined + tenant_exists + //*[local-name()='active']/text() + false + false + true + tenant_exists + + + + false + true + true + false + + + + + ${tenant_exists}==false + false + + + + + + + https://${host}:${management_https_port}/services/TenantMgtAdminService.TenantMgtAdminServiceHttpsSoap11Endpoint/ + <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.mgt.tenant.carbon.wso2.org" xmlns:xsd="http://beans.common.stratos.carbon.wso2.org/xsd"> + <soapenv:Header/> + <soapenv:Body> + <ser:addTenant> + <!--Optional:--> + <ser:tenantInfoBean> + <!--Optional:--> + <xsd:active>1</xsd:active> + <!--Optional:--> + <xsd:admin>${tenant_user_name}</xsd:admin> + <!--Optional:--> + <xsd:adminPassword>${password}</xsd:adminPassword> + <!--Optional:--> + <xsd:createdDate>${createdDate}</xsd:createdDate> + <!--Optional:--> + <xsd:email>${email}</xsd:email> + <!--Optional:--> + <xsd:firstname>${firstName}</xsd:firstname> + <!--Optional:--> + <xsd:lastname>${lastName}</xsd:lastname> + <!--Optional:--> + <xsd:tenantDomain>${domain_name}</xsd:tenantDomain> + <!--Optional:--> + <xsd:tenantId>0</xsd:tenantId> + <!--Optional:--> + <xsd:usagePlan>${usagePlan}</xsd:usagePlan> + </ser:tenantInfoBean> + </ser:addTenant> + </soapenv:Body> +</soapenv:Envelope> + + urn:addTenant + true + false + + + + + + + + https://${host}:${management_https_port}/services/AuthenticationAdmin.AuthenticationAdminHttpsSoap11Endpoint/ + <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aut="http://authentication.services.core.carbon.wso2.org"> + <soapenv:Header/> + <soapenv:Body> + <aut:logout/> + </soapenv:Body> +</soapenv:Envelope> + + urn:logout + true + false + + + + + 202 + + Assertion.response_code + false + 1 + + + + + false + + saveConfig + + + true + true + true + + true + true + true + true + false + true + true + false + false + true + false + false + false + false + false + 0 + true + + + /home/ace/Desktop/results_multi_user_multi_tenancy.jtl + + + continue