Manual testing with Postman
Build cps-and-ncmp docker image for version to be tested. Run maven from cps repo directory:
mvn clean install -Pcps-ncmp-docker
Edit docker-compose/docker-compose.yml to filter notifications: set NOTIFICATION_DATASPACE_FILTER_PATTERNS to NON-EXISTING-DATASPACE
cps-and-ncmp: environment: notification.enabled: 'true' NOTIFICATION_DATASPACE_FILTER_PATTERNS: 'NON-EXISTING-DATASPACE'
Start docker-compose with DMI plugin stub and monitoring enabled:
docker-compose -f docker-compose/docker-compose.yml --profile dmi-stub --profile monitoring up
Wait for CPS to start. Console output will show:
cps-and-ncmp | {"logTimeStamp":"2023-03-24T16:20:36.705Z","logLevel":"INFO","principalId":"cpsuser","serviceName":"cps-application","message":"Started Application in 47.336 seconds (JVM running for 48.444)","processId":"1","threadName":"main","class":"org.onap.cps.Application"}
- Test using Postman
- Start Postman, and import the NCMP de-register performance postman collection. (This step only needs to be done once.)
- Click the new collection, and open the "Variables" tab
- Change the current value of TOTAL_CMHANDLES to the desired value, e.g. 10000, and click the "Save" button. This is the number of CM handles that will be registered (and later de-registered).
- Select "Register CM handles", and click "Send". (The Postman collection will use a script to automatically create the request body with 10000 CM handles.)
- Wait until all CM handles are in READY state. This can take a while, especially with lot of handles.
We can check how many handles are ready by running a query on the database. Here are instructions using the Postgres command line interface (psql), but you may alternatively use the Postgres GUI client.Open a new terminal window, and install postgres-client if needed:
$ sudo apt install postgresql-client Reading package lists... Done Building dependency tree... Done Reading state information... Done postgresql-client is already the newest version (14+238). 0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.
Run psql command to connect to the database (default password is cps):
$ psql -h localhost -p 5432 cpsdb cps Password for user cps: psql (14.6 (Ubuntu 14.6-0ubuntu0.22.04.1), server 14.1) Type "help" for help. cpsdb=#
Run the following query to count the number of handles in the READY state. You will need to repeat this command, until all are ready (e.g. 10000).
cpsdb=# SELECT count(*) FROM public.fragment where attributes @> '{"cm-handle-state": "READY"}'; count ------- 3540 (1 row) cpsdb=# SELECT count(*) FROM public.fragment where attributes @> '{"cm-handle-state": "READY"}'; count ------- 10000 (1 row)
- Now that all CM handles are ready, we can proceed to test de-registration. Go back to Postman.
- In Postman, select "De-Register CM handles", and click "Send".
- Record the time taken (54.91 s in this case).
- Start Postman, and import the NCMP de-register performance postman collection. (This step only needs to be done once.)
Stop docker-compose:
docker-compose -f docker-compose/docker-compose.yml down
Clean up docker containers and volumes:
docker container prune -f && docker volume prune -f
Automated testing
There is a script in the cps repo for automatic testing of NCMP handle de-registration.
$ ./test-tools/test-deregistration.sh