[stress-tests] Adapt for NC 25

This still supports NC24

While there, configure JMeter to restart threads instead of stopping them.

This keeps the load on the target server.
main
Evilham 2023-03-31 10:16:22 +02:00 committed by elena
parent 4a785009c5
commit d90b432e06
2 changed files with 12 additions and 8 deletions

View File

@ -139,7 +139,7 @@
</ConfigTestElement>
<hashTree/>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="SAML Login Method" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">stopthread</stringProp>
<stringProp name="ThreadGroup.on_sample_error">startnextloop</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">false</boolProp>
<intProp name="LoopController.loops">-1</intProp>
@ -192,8 +192,8 @@
<stringProp name="TestPlan.comments">Send response from login to SP for processing</stringProp>
</ModuleController>
<hashTree/>
<ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report 20 users" enabled="true">
<boolProp name="ResultCollector.error_logging">false</boolProp>
<ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report N users" enabled="true">
<boolProp name="ResultCollector.error_logging">true</boolProp>
<objProp>
<name>saveConfig</name>
<value class="SampleSaveConfiguration">
@ -230,7 +230,7 @@
</ResultCollector>
<hashTree/>
<ResultCollector guiclass="RespTimeGraphVisualizer" testclass="ResultCollector" testname="Response Time Graph" enabled="true">
<boolProp name="ResultCollector.error_logging">false</boolProp>
<boolProp name="ResultCollector.error_logging">true</boolProp>
<objProp>
<name>saveConfig</name>
<value class="SampleSaveConfiguration">

View File

@ -20,6 +20,9 @@ from selenium.webdriver.chrome.options import Options as ChromeOptions
from typing import Any, Dict, Iterable, List
STEP_TIMEOUT_SECONDS = 40
class DDSession:
driver: webdriver.Chrome
@ -28,7 +31,7 @@ class DDSession:
instance: str,
users_file: str,
out_dir: pathlib.Path,
stepTimeoutSeconds: int = 20,
stepTimeoutSeconds: int = STEP_TIMEOUT_SECONDS,
):
self.instance = instance
self.users_file = [
@ -177,6 +180,7 @@ class DDSession:
lambda d: (
d.find_elements(By.ID, "kc-form-login")
+ d.find_elements(By.ID, "menu-apps-icon")
+ d.find_elements(By.ID, "menu-apps-btn")
)
)
@ -213,7 +217,7 @@ class DDSession:
self.screenshot("OnlyOffice", "Opening")
# Wait for OnlyOffice to start loading
oofCSS = "div.app-onlyoffice #app iframe"
oofCSS = ".app-onlyoffice #app iframe"
WebDriverWait(self.driver, timeout=self.stepTimeoutSeconds).until(
lambda d: d.find_elements(By.CSS_SELECTOR, oofCSS)
)
@ -292,13 +296,13 @@ def main_test(
users_file: io.TextIOWrapper,
out_dir: pathlib.Path,
duration: int,
stepTimeoutSeconds: int = 20,
stepTimeoutSeconds: int = STEP_TIMEOUT_SECONDS,
) -> DDSession:
session = DDSession(
instance=instance,
users_file=users_file.read(),
out_dir=out_dir,
stepTimeoutSeconds=20,
stepTimeoutSeconds=stepTimeoutSeconds,
)
first_run = True