citizenM

200% occupancy simulated on production

Performance Testing · Hospitality · Production

Load testing a live citizenM hotel at 200% occupancy

citizenM guests book, check in and control their room through one app. spriteCloud load tested that entire journey at simulated 200 percent occupancy, on production, in a real hotel.

A hotel you operate from your phone

citizenM built its hotels around self-service. Guests book a room, check in, control the lights and media, and check out, all through the mobile app. As the app gained features, its performance became inseparable from the guest experience. A light switch that responds after three seconds is a broken light switch, whether 10 guests are using the app or 100.

Two questions, no staging hotel

citizenM asked spriteCloud to test the performance limits of the complete production landscape behind the app. First, the room controls: what happens to response times when every guest in the building changes their lights at once? Second, the booking flow: at what booking rate does the system slow down, if every available room gets booked through the app?

The hard part: the final tests had to run on production. Real hotel, real rooms, real infrastructure, no room for error. You cannot spin up a staging copy of a building.

Three parties, one test plan

spriteCloud worked with the app's development partner to define the load models, and with the middleware party for API access and real-time monitoring during execution.

The scenarios were unusually stateful. Creating a booking requires a user without an open booking. Checking in requires a room that is available and cleaned. The scripts needed admin-level API access to set rooms and statuses to the right state before each run, which made the load model considerably more involved than firing requests at an endpoint.

From acceptance environment to a real hotel floor

The work ran in deliberate rounds. Scripts for the full guest journey, from booking through check-in, room controls and check-out to cleanup, were built and tuned on the acceptance environment. Light, isolated tests followed on a handful of production rooms, with spriteCloud staff physically in the hotel watching whether the controls behaved.

Then the full tests: two days in one hotel, multiple floors emptied for the purpose, simulating 100 and 200 percent occupancy across all rooms while all parties monitored server response in real time. The engagement closed with a full test report and analysis.

Measured limits, beyond a full house

citizenM got what it asked for: measured limits of its production landscape under loads beyond full occupancy, and the confidence to keep building the guest experience on top of the app. The collaboration across citizenM, the development partner and the middleware party ran smoothly enough that all three monitored the production runs together.

To ensure the smooth operation of all systems, we decided to stress and load test our digital and on-premise infrastructure. We took relevant guest journeys and tried to simulate 100% and 200% occupancy. To do this properly you need a good engineering partner like spriteCloud to be able to model this.

Bojan Pavicic

Director Technology & Digital, citizenM

Ready to start?

Let’s build your
automation story

Every team has a regression problem. Let’s fix yours in 8 weeks.

Start the conversationSee more case studies