Platform Operations
Load Testing
Applications
Duarte Santos
Head of Platform Ops & Cloud
@ [email protected]
in /duarte-pessanha-santos-23a19366/
2 Platform Operations
About me
Background in system administration
Worked with VoIP / IPTV Telcos
In OutSystems:
IT Infrastructure Team Lead
Expert Services
Head of Ops & Cloud
3 Platform Operations
Topics
1. Operations Awareness
a. What is a Load Test
b. Why?
c. OutSystems Applications
i. Web
ii. Mobile
d. Field Reports
e. FAQ
4 Platform Operations
Load Test
Global Definition
5 Platform Operations
Google “What is Load Testing”
Load testing is a kind of Performance Testing which determines a system's performance under
“real-life load" conditions.
This testing helps determine how the application behaves when multiple users access it
simultaneously.
This testing usually identifies - The maximum operating capacity of an application.
( don’t you just hate to read in presentations? )
6 Platform Operations
Load Patterns
Dead
Pressure Type of Test
High Stress
Sustainable / Endurance Load
Volume Performance
Load
Light Functional
7 Platform Operations
Idle
Fundamental Topics
● How many users can the system handle before it gets slow
● Sustainable number of users
● Software design Issues
● Server configuration Issues
● Dry-run infrastructure scalability
● Check for concurrency sanity
8 Platform Operations
Why Load Test Apps?
9 Platform Operations
You think there's no such thing as bad publicity?
Mobile app
launched…….
Slow, unusable
and buggy!!!
10 Platform Operations
Go-To Market
11 Platform Operations
B2C Revenue Apps
YOU
12 Platform Operations
B2C / B2E / B2G Critical Apps
Money
talks,
bul$hit
walks
13 Platform Operations
When DevOps Lands in Your Hive
14 Platform Operations
And There’s a Pipeline
Continuous Delivery Pipeline
Automatic Deployment Lane
OutSystems
DEV REG ACC PRE PRD
Infrastructure and data alike Production
PERF
15 Recommended places for Load Tests Platform Operations
OutSystems Applications
16 Platform Operations
Magic
OutSystems applications don’t come from a black box and dark magic.
➔ Data is on a relational database
➔ The framework is .NET
➔ React Js for mobile apps
➔ We accelerate development and deployment
➔ We facilitate the release management
➔ Extended logging
➔ Compiled code is in Microsoft IIS
➔ Mobile apps are installed in devices
➔ Applications are delivered by network
17 Platform Operations
Don’t be Scared
Test OutSystems applications like all the others, with the supporting technology in mind
Application Delivery (LB)
Network
Application Server (IIS)
Application Server (IIS)
Integrations
18 Platform Operations
Web / Mobile Web Mobile 10+
App Updates
HTML
(resources, etc...)
HTTP Get HTTP Post
CSS JSon
HTTP Post (that can include
Javascript
Ajax resources)
Binaries
…
19 Platform Operations
Methodology
Tipping
Endurance 90 minutes
2000 test run
1500
45 minutes
1000
Concurrency
15 minutes
● Ramp Up Load 500
15 minutes
● Random Think Time
Users 100 15 minutes
● Seed Data Feeding
Concurrency Test Period Example - 25 minutes
20 Platform Operations
Mobile Apps
21 Platform Operations
5G Impact on Mobile Apps
22 Platform Operations
| Load Testing OutSystems Mobile Applications
What to Load Test in a Mobile App?
Server Side
● Synchronization
● Backend Performance
rk
two
■ Frontends
Ne
■ Database
■ Integrations
Simulation
● Mobile Performance
● UI
Mobile Device
Mobile 10+
Changes when a different version of the
Module is published and the logic is changed
{"versionInfo":{"moduleVersion":"FfvdsgF6","apiVersion":"FPw9rM"}
Endpoint
Changes when a different version of the To cope with theses changes and avoid
Module is published. rewriting the whole test battery,
variables must you must create:
● Globally, in the load test
application and manually set.
● Automatically, you must caught
them in the beginning of the test
24 Platform Operations
Mobile 10+
{"versionInfo":{"moduleVersion":"FfvdsgF6","apiVersion":"FPw9rM",
"EventName":"","EventCountry":"","EventCity":"Abrantes",
"EventLocation":"",”EventStartDate":"1921-05-06",
"EventEndDate":"1922-05-07", "EventListId":"0","UTCOffSet":0}
Endpoint
Example of Dynamic Post Parameters
Post parameters can be configured with
functions to simulate real life scenarios:
● "EventCity":${CITY}
● “EventStartDate":${RAND_DATE_FUNC}
25 Platform Operations
Web Apps
26 Platform Operations
Monitoring
Platform Operations
Mobile 10+
JMeter Simulation: Service Center Logs / Reports:
● Active Threads ● Mobile Requests
● Response Time ● Slow SQL
Endpoint
● Response Over Time ● Extensions
● Server Hits/s
● Bytes Throughput. Database Metrics: Frontend Metrics:
● Request Errors
● Query Performance ● Resources
● Index Usage ● IIS Contention
● Deadlocks ● IIS App Pool
● Buffer Cache
● Literal SQL parsing
28 Platform Operations
Response Time Graph
29 Platform Operations
Service Center Reports
30 Platform Operations
Database CPU Resources
31 Platform Operations
Field Reports
32 Platform Operations
FAQ
33 Platform Operations
Platform Operations
Thank You!