blob: f54f3912ba8b8578568ad059c63e2d6631c2cf26 [file] [log] [blame]
# Copyright 2018 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
from autotest_lib.server.cros.cfm.configurable_test.dsl import *
AUTHOR = "dtosic@google.com, chromeos-meetings@google.com"
NAME = "enterprise_CFM_MeetingRoomScenario.join_leave_meeting_with_bots"
PURPOSE = "Tests what happens when CfM repeatedly joins and leaves a meeting."
CRITERIA = "No unexpected resource leaks."
ATTRIBUTES = "suite:hotrod"
DEPENDENCIES = "meet_app"
TIME = "LONG"
TEST_CATEGORY = "Performance"
TEST_CLASS = "enterprise"
TEST_TYPE = "server"
DOC = """
Repeat for 6 cycles:
1) Join an existing meeting with 7 speaking bot participants.
2) Idle in the meeting for 5 minutes
3) Leave the meeting
The total test duration is ~30 minutes.
"""
IN_CALL_IDLE_DURATION_SEC = 5 * 60
IDLE_ON_LANDING_PAGE_SEC = 30
REPETITION_COUNT = 6
BOT_COUNT = 7
BOT_TTL_MIN = ((IN_CALL_IDLE_DURATION_SEC + IDLE_ON_LANDING_PAGE_SEC) * REPETITION_COUNT + 60) / 60
cfm_test = CfmTest(
scenario=Scenario(
CreateMeetingWithBots(BOT_COUNT, BOT_TTL_MIN, muted=False),
WaitForMeetingsLandingPage(),
StartPerfMetricsCollection(),
RepeatTimes(REPETITION_COUNT,
Scenario(
JoinMeetingWithBots(),
Sleep(IN_CALL_IDLE_DURATION_SEC),
LeaveMeeting(),
# Idle a bit after leaving a call.
# This is closer to real-user behaviour.
Sleep(IDLE_ON_LANDING_PAGE_SEC),
)),
StopPerfMetricsCollection(),
UploadPerfMetrics(),
),
)
def run_test(machine):
job.run_test("enterprise_CFM_MeetingRoomScenario",
cfm_test = cfm_test,
tag = 'join_leave_meeting_with_bots',
host = hosts.create_host(machine))
parallel_simple(run_test, machines)