You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by cm...@apache.org on 2024/04/26 15:24:45 UTC
(trafficserver) 02/10: txn_box ramp autest reliability improvements (#11243)
This is an automated email from the ASF dual-hosted git repository.
cmcfarlen pushed a commit to branch 10.0.x
in repository https://gitbox.apache.org/repos/asf/trafficserver.git
commit 847830b4dff637e4ab7bb66195852344e5319862
Author: Brian Neradt <br...@gmail.com>
AuthorDate: Mon Apr 22 17:38:30 2024 -0500
txn_box ramp autest reliability improvements (#11243)
This updates the ramp test to actually ramp traffic to a dedicated
"staging" server. It also reduces the number of transactions to 100.
Both of these changes makes the test more reliable against spurious
connection issues that caused the test to be flakey, especially in CI.
Fixes: #11131
(cherry picked from commit bac906de9c3733bb553808c10cb167044ea0a4b5)
---
.../pluginTest/txn_box/ramp/ramp.replay.yaml | 4 ++-
.../pluginTest/txn_box/ramp/ramp.test.py | 31 +++++++++++++++-------
2 files changed, 25 insertions(+), 10 deletions(-)
diff --git a/tests/gold_tests/pluginTest/txn_box/ramp/ramp.replay.yaml b/tests/gold_tests/pluginTest/txn_box/ramp/ramp.replay.yaml
index 99540faf85..5e22948c92 100644
--- a/tests/gold_tests/pluginTest/txn_box/ramp/ramp.replay.yaml
+++ b/tests/gold_tests/pluginTest/txn_box/ramp/ramp.replay.yaml
@@ -7,7 +7,9 @@ meta:
select:
- lt: 300
do:
- ua-req-host: "ex.two"
+ - ua-req-url-host: "ex.two"
+ - ua-req-url-port: {server_port}
+ - ua-req-scheme: "http"
blocks:
- base_request: &base_request
diff --git a/tests/gold_tests/pluginTest/txn_box/ramp/ramp.test.py b/tests/gold_tests/pluginTest/txn_box/ramp/ramp.test.py
index 3d42fe6190..7f44498b2e 100644
--- a/tests/gold_tests/pluginTest/txn_box/ramp/ramp.test.py
+++ b/tests/gold_tests/pluginTest/txn_box/ramp/ramp.test.py
@@ -18,7 +18,9 @@
#
# Copyright 2020, Verizon Media
#
+
import os.path
+import tempfile
Test.Summary = '''
Test traffic ramping.
@@ -26,19 +28,30 @@ Test traffic ramping.
Test.SkipUnless(Condition.PluginExists("txn_box.so"))
-RepeatCount = 1000
+RepeatCount = 100
+replay_file = 'ramp.replay.yaml'
+
+# Make a server representing a staging host to which we can ramp.
+server_ramp = Test.MakeVerifierServerProcess('pv-server-staging', replay_file)
+# Make it so that server-ramp is used in the txn_box config.
+orig_replay_file = os.path.join(Test.TestDirectory, replay_file)
+old_replay_content = open(orig_replay_file).read()
+new_replay_content = old_replay_content.replace('{server_port}', str(server_ramp.Variables.http_port))
+# There's no need to delete temp_replay because it will be cleaned up with the TestDirectory.
+temp_replay = tempfile.NamedTemporaryFile(dir=Test.RunDirectory, delete=False)
+# Reference this new replay file for all other TestRun processes.
+replay_file = temp_replay.name
+open(replay_file, 'w').write(new_replay_content)
tr = Test.TxnBoxTestAndRun(
"Ramping",
- "ramp.replay.yaml",
- remap=[('http://one.ex', 'http://three.ex', ('--key=meta.txn_box.remap', 'ramp.replay.yaml'))],
- verifier_client_args="--verbose diag --repeat {}".format(RepeatCount))
-
-with open(f"{tr.TestDirectory}/multi_ramp_common.py") as f:
- code = compile(f.read(), "multi_ramp_common.py", 'exec')
- exec(code)
+ replay_file,
+ remap=[('http://one.ex', 'http://three.ex', ('--key=meta.txn_box.remap', replay_file))],
+ verifier_client_args=f"--verbose diag --repeat {RepeatCount}",
+ verifier_server_args=f"--verbose diag")
ts = tr.Variables.TS
-ts.Setup.Copy("ramp.replay.yaml", ts.Variables.CONFIGDIR)
+ts.StartBefore(server_ramp)
+ts.Setup.Copy(replay_file, ts.Variables.CONFIGDIR)
ts.Setup.Copy("ramp.logging.yaml", os.path.join(ts.Variables.CONFIGDIR, "logging.yaml"))
ts.Disk.records_config.update({'proxy.config.log.max_secs_per_buffer': 1})