Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Tested with UCCX 12-5 for ST 13.5

HW specs of the tested VM

VM

CPU

RAM

Disk Size

VM (ST deployed)

2

...

4GB

...

100GB

...

SQL VM

4 vcpu

8GB

145GB

Uploading CSV Files (Diff callers volume) in Caller List (Performance Testing):

Caller list

Upload time

Uploaded

Failed

Total in db

File size

Delete through generic clear list (Time)

200k

2 mins

200k

0

200k

4-5 mins

300k

8-9 mins

300k

0

300k

7-8 mins

200k

3 mins

200k

0

200k

8064kb

ptcl sample data

-

200k

1 min

99999

100001

99999

5913kb

ptcl sample data

178845

57 sec

99999

78846

5407kb

ptcl sample data

100k

53 sec

98784

1216

4677kb

ptcl sample data

100k

3 mins

100k

0

100k

3994kb

25k

34 sec

25k

25k

64 secs

25k

34 sec

25k

50k

24 sec

50k

0

50k

image-20240319-065545.pngImage Removed

Load Test:

Software for load test: Apache JMeter

  • Why is it needed?

  1. User need to know about the load testing of Supervisor tool. User have a call volume of over 100k on some helpline in PTCL and User will call supervisor tool caller list before those helplines. User need to know many hits can supervisor tool handle easily?

  2. User can use a single caller list for all the helplines or separate for each helpline? How many data user can add into a callerlist with affecting the response?

API for Load test

API load testing is done for caller list, Easy Announcement, Business Calendar

  • API for Easy announcement is used to get announcement(s) of type “General”. This gives the details of an easy announcement, including id, name and prompts string within the easy announcement.

  • API for caller list to check whether a specific caller exist in the list or not. It also returns the prompts associated to a particular caller list

  • The Service Status API for Business calendar checks the status of a calendar, i.e. if the agency is Opened, Closed, has a Holiday or an Exceptional opening or closing. For more detail visit

Load test result is given with the following configuration:

Throughput in sample per unit: 70

Number of threads (users): 1

Ramp up period : 1 sec

Loop count: 100k

Thread Lifetime: 86400 secs (24 hr)

...

194817

182 secs (also a delay of callers visibility

594817

708 sec ( some delay in callers visibility in caller list)

300k (latest)

324 sec

(5-6 min)

300k

200k (latest)

138 secs

(2-3 min)

200k

178k (latest)

60 sec

(1min)

99999

78846

178k

178 sec

99999

78846

178k

89 sec

178k

5636kb

300k (latest)

239 sec

300k

13954kb

178k

79 sec

5636 kb

300k

108 sec

650k

249 sec ( 5-7 mins delay in visibility of callers in caller list)

Note: A delay of approximately 5 to 8 minutes occurs after uploading the CSV on the UI before callers become visible in the caller list.

Load Test Result for Caller List:

  • Loop count: 100,000

  • Total callers in db 463948

  • Tested Scenarios:

    1. Checking if a provided calling number exists in a caller list containing 463,948 callers.

    2. Verifying if a calling number exists in a caller list of 100,000 callers.

Thread Group 1:

Sr.no

API

Duration

Constant Throughput Timer

Threads (users)

Ramp up

(sec)

Number of

sample( total http request hits)

Response Time(sec)

GET API

Benchmark

Result

Min

Max

Avg

Response time for GET API

should not be more than 10 sec

GET

API

24 hr

(86400 sec)

70

1

1

60409

0.05 sec

187 sec

0.7

sec

2.74 % ( 1657 request 10 sec)

1836 request (5 sec) 3.03%

Fail

This table summarizes the test result for all callers List total callers 463948 in callers.

Observations:

  • The test successfully processed 60,409 HTTP requests within the specified duration (24 hr).

  • The response time ranged from 0.05 seconds to 187 seconds, with an average response time of 0.7 seconds.

  • A small percentage (2.74%) of requests experienced response times exceeding the threshold of 10 seconds.

Recommendation:

  • Investigate and optimize the performance of the API to reduce the occurrences of response times exceeding 10 seconds.

Thread Group 2:

Sr.no

API

Duration

Constant Throughput Timer

Threads (users)

Ramp up

(sec)

Number of

sample( total http request hits)

Response Time(sec)

GET API

Benchmark

Result

Min

Max

Avg

Response time for GET API

should not be more than 10 sec

GET

API

24 hr

(86400 sec)

70

1

1

60393

0.055

sec

187 sec

0.7

sec

2.74 % (1659 request 10 sec)

3.03(1835 request 5 sec)

Fail

This table summarizes the test result for a caller List having 100k caller in the caller list

Observations:

  • The test successfully processed 60,393 HTTP requests within the specified duration (24 hr).

  • The response time ranged from 0.05 seconds to 187 seconds, with an average response time of 0.7 seconds.

  • A small percentage (2.74%) of requests experienced response times exceeding the threshold of 10 seconds.

Recommendation:

  • Investigate and optimize the performance of the API to reduce the occurrences of response times exceeding 10 seconds.

Different load test scenarios for caller list:

Scenario 1:

The load test result is run with the following configuration:

  1. Loop count for 3600 duration: 4167

  2. Loop count for 900 duration: 900

*one thing noticeable thread for caller list having 100k callers elapsed time is more than the all caller (Elapsed time for 900 duration: 4 min 17 sec (single caller list) 2 mins (all caller list)).

Total callers in db 874140

Thread Group 1:

http://Sr.no

API

Duration

Threads (users)

Ramp up

(sec)

Number of

sample( total http request hits)

Response Time(sec)

GET API

Benchmark

Result

Min

Max

Avg

Response time for GET API

should not be more than 2 sec

1.

GET

API

3600

1

1

4167

0.171

sec

2.98 sec

0.20

sec

0.02 % (1 request)

pass

2.

GET

API

900

1

1

900

0.17

sec

0.66 sec

0.20

sec

0.00 % (0 request)

pass

This table summarize the test result for All caller (874140)

Thread Group 2:

Total callers in db 874140

http://Sr.no

API

Duration

Threads (users)

Ramp up

(sec)

Number of

sample( total http request hits)

Response Time(sec)

GET API

Benchmark

Result

Min

Max

Avg

Response time for GET API

should not be more than 2 sec

1.

GET

API

3600

1

1

4167

0.22

sec

2.20 sec

0.271

sec

0.02 % (1 request)

pass

2.

GET

API

900

1

1

900

0.22

sec

4.8 sec

0.271

sec

0.22 % (2 request)

pass

This table summarize the test result for a caller List having 100k caller in caller list

Following are the load test result for different number of thread(users)

Ramp-up Period (secs)

Number of Threads (Users)

Elapsed time of current running test

Response on UI

Loop Count

1

20

2 sec

Callers are visible

1

1

50

6

3 sec

Callers are visible in caller list

1

1

1

7 sec

Callers are visible in caller list

50

1

100

8 sec

Callers are not visible in caller list during load test

1

1

1

13 sec

Callers are visible in caller list

100

1

200

16 sec

Callers are not visible in caller list during load test

1

1

1

26 sec

Callers are visible in caller list

200

1

300

29 sec

Callers are not visible in caller list during load test

1

1

500

50 sec

Callers are not visible in caller list during load test

1

1

1

1 min 9 sec

Callers are visible in caller list

500

5

500

47 sec

Callers are not visible in caller list during load test

1

60

500

1 min 12 sec

Callers are visible in caller list during load test with delay of 5 to 6 secs

1

100

500

1 min 39 sec

callers are not visible during load test

1

1

1000

1 min 35 sec

Callers are not visible in caller list during load test

1

1

2000

02 min 39 sec

Callers are not visible in caller list during load test

1

1

100k

1hour 52 mins

Callers and caller list are not visible after the load test. Container of caller list goes into unhealthy state.

1

Later tested Again with different calling number Results are given

...

image-20240318-102116.pngImage Removed

image-20240318-102353.pngImage Removed

...

Note: this result Elapsed time of current running test can varies depending on configuration in jmeter, network latency, server performance/load.

Load Test Result for Easy Announcement and Business Calendar:

Easy announcement:

Thread Group 3:

http://Sr.no

API

Duration

Constant Throughput Timer

Threads (users)

Ramp up

(sec)

Number of

sample( total http request hits)

Response Time(sec)

GET API

Benchmark

Result

Min

Max

Avg

Response time for GET API

should not be more than 10 sec

1.

GET

API

24 hr

(86400)

70

1

1

100k

0.027

sec

5.9

sec

0.05

sec

0.00 %

Pass

This table summarizes the test result for Easy Announcement

Observations:

  • The test successfully processed 100k HTTP requests within the specified duration (24 hr).

  • The response time ranged from 0.02 seconds to 5.9 seconds, with an average response time of 0.05 seconds.

  • A percentage (0.00%) of requests experienced response times exceeding the threshold of 10 seconds.

Thread Group 4:

Business calendar:

http://Sr.No

API

Duration

Constant Throughput Timer

Threads (users)

Ramp up

(sec)

Number of

sample( total http request hits)

Response Time(sec)

GET API

Benchmark

Result

Min

Max

Avg

Response time for GET API

should not be more than 10 sec

1.

GET

API

24 hr (86400 sec)

70

1

1

100k

0.033 sec

25 sec

0.06 sec

0.002 %

pass

This table summarizes the test results for the Business Calendar

Observations:

  • The test successfully processed 100k HTTP requests within the specified duration (24 hr.)

  • The response time ranged from 0.03 seconds to 25 seconds, with an average response time of 0.002 seconds.

  • A percentage (0.00%) of requests experienced response times exceeding the threshold of 10 seconds.