aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGwenael Lambrouin <gwenael.lambrouin@orange.com>2021-07-13 18:27:51 +0200
committerGwenael Lambrouin <gwenael.lambrouin@orange.com>2021-07-22 17:07:51 +0200
commit67c8e918e97c91be16de253a8f0bcaddf285524a (patch)
tree466f6ce7d959a8ffac3515f903a45dcd6931ae24
parent93d8fc2cd18822136a4d848c38d934203e53c034 (diff)
behave_tests: configure nfvbench ip/port with env vars
It is now possible to configure nfvbench server IP address and port number with environment variables: NFVBENCH_SERVER_HOST and NFVBENCH_SERVER_PORT. It is still possible to configure them in feature files, and the values found in feature files take precedence. This allows to have behave tests and nfvbench server running on different machines without changing feature files, which is especially useful for testing. Signed-off-by: Gwenael Lambrouin <gwenael.lambrouin@orange.com> Change-Id: I98dc7f87a1a233b90b44dfc8b26a1e63961fff3c
-rw-r--r--behave_tests/features/environment.py4
-rw-r--r--behave_tests/features/steps/steps.py20
2 files changed, 17 insertions, 7 deletions
diff --git a/behave_tests/features/environment.py b/behave_tests/features/environment.py
index ee1aa17..12cd4cc 100644
--- a/behave_tests/features/environment.py
+++ b/behave_tests/features/environment.py
@@ -34,6 +34,10 @@ def before_all(context):
context.data['NODE_NAME'] = os.getenv('NODE_NAME', 'nfvbench')
context.data['BUILD_TAG'] = os.getenv('BUILD_TAG')
+ # NFVbench server host and port
+ context.host_ip = os.getenv('NFVBENCH_SERVER_HOST', '127.0.0.1')
+ context.port = int(os.getenv('NFVBENCH_SERVER_PORT', '7555'))
+
def before_feature(context, feature):
context.rates = {}
diff --git a/behave_tests/features/steps/steps.py b/behave_tests/features/steps/steps.py
index 965b0c8..8d2c83f 100644
--- a/behave_tests/features/steps/steps.py
+++ b/behave_tests/features/steps/steps.py
@@ -25,6 +25,7 @@ import json
import requests
import subprocess
from subprocess import DEVNULL
+from typing import Optional
from nfvbench.summarizer import Formatter
from nfvbench.traffic_gen.traffic_utils import parse_rate_str
@@ -141,21 +142,26 @@ def add_percentage_rate(context, percentage_rate):
@when('NFVbench API is ready')
@when('NFVbench API is ready on host {host_ip}')
@when('NFVbench API is ready on host {host_ip} and port {port:d}')
-def start_server(context, host_ip="127.0.0.1", port=7555):
- context.host_ip = host_ip
- context.port = port
+def start_server(context, host_ip: Optional[str]=None, port: Optional[int]=None):
+ # NFVbench server host IP and port number have been setup from environment variables (see
+ # environment.py:before_all()). Here we allow to override them from feature files:
+ if host_ip is not None:
+ context.host_ip = host_ip
+ if port is not None:
+ context.port = port
+
try:
# check if API is already available
requests.get(
"http://{host_ip}:{port}/status".format(host_ip=context.host_ip, port=context.port))
except RequestException:
cmd = ["nfvbench", "-c", context.data['config'], "--server"]
- if host_ip != "127.0.0.1":
+ if context.host_ip != "127.0.0.1":
cmd.append("--host")
- cmd.append(host_ip)
- if port != 7555:
+ cmd.append(context.host_ip)
+ if context.port != 7555:
cmd.append("--port")
- cmd.append(port)
+ cmd.append(str(context.port))
subprocess.Popen(cmd, stdout=DEVNULL, stderr=subprocess.STDOUT)