xref: /openbmc/openbmc-test-automation/extended/test_bmc_stress_buster.robot (revision f133e8b61580620f1285d5a0413cbea7f078a05f)
1***Settings***
2Documentation   Generic REST/SSH/IPMI stress buster program.
3
4Library        ../lib/jobs_processing.py
5Resource       ../lib/rest_client.robot
6Resource       ../lib/connection_client.robot
7Resource       ../lib/ipmi_client.robot
8Resource       ../lib/utils.robot
9Resource       ../lib/openbmc_ffdc.robot
10
11Test Teardown  FFDC On Test Case Fail
12
13***Variables***
14
15# Caller can specify a value for the following using -v parms
16# Currently REST/SSH/IPMI session allowed.
17${REST_BUSTER_MAX}    ${16}
18${SSH_BUSTER_MAX}     ${16}
19${IPMI_BUSTER_MAX}    ${5}
20
21***Test Cases***
22
23Stress BMC REST Server
24    [Documentation]  Execute maximum allowed REST operation.
25    [Tags]  Stress_BMC_REST_Server
26
27    Log To Console  REST call request burst ${REST_BUSTER_MAX}
28    ${dict}=  Execute Process
29    ...  ${REST_BUSTER_MAX}  REST Enumerate Request On BMC
30    Dictionary Should Not Contain Value  ${dict}  False
31    ...  msg=One or more REST operations has failed.
32
33
34Stress BMC SSH Server
35    [Documentation]  Execute maximum allowed SSH operation.
36    [Tags]  Stress_BMC_SSH_Server
37
38    Log To Console  SSH call request burst ${SSH_BUSTER_MAX}
39    ${dict}=  Execute Process
40    ...  ${SSH_BUSTER_MAX}  SSH Connect And Execute Command
41    Dictionary Should Not Contain Value  ${dict}  False
42    ...  msg=One or more SSH operations has failed.
43
44
45Stress BMC IPMI Server
46    [Documentation]  Execute maximum allowed IPMI operation.
47    [Tags]  Stress_BMC_IPMI_Server
48
49    Log To Console  IPMI call request burst ${IPMI_BUSTER_MAX}
50    ${dict}=  Execute Process  ${IPMI_BUSTER_MAX}  IPMI Check Status
51    Dictionary Should Not Contain Value  ${dict}  False
52    ...  msg=One or more IPMI operations has failed.
53
54***Keywords***
55
56REST Enumerate Request On BMC
57    [Documentation]  Execute REST GET operation.
58
59    # Create REST session.
60    Create Session  openbmc  ${AUTH_URI}
61    ${headers}=  Create Dictionary  Content-Type=application/json
62    @{credentials}=  Create List  ${rest_username}  ${rest_password}
63    ${data}=  Create Dictionary  data=@{credentials}
64    ${resp}=  POST On Session  openbmc  /login  json=${data}  headers=${headers}
65    Should Be Equal As Strings  ${resp.status_code}  ${HTTP_OK}
66
67    # Trigger GET REST enumeration.
68    ${resp}=  GET On Session  openbmc  /redfish/v1/Managers/${MANAGER_ID}  expected_status=any
69    Log To Console  GET Request /redfish/v1/Managers/${MANAGER_ID}
70    Should Be Equal As Strings  ${resp.status_code}  ${HTTP_OK}
71    Delete All Sessions
72
73
74SSH Connect And Execute Command
75    [Documentation]  Execute SSH command execution operation.
76    BMC Execute Command  df -h
77
78
79IPMI Check Status
80    [Documentation]  Execute IPMI command execution operation.
81    Run IPMI Standard Command  chassis status
82