diff options
author | Gwenael Lambrouin <gwenael.lambrouin@orange.com> | 2021-07-13 18:27:51 +0200 |
---|---|---|
committer | Gwenael Lambrouin <gwenael.lambrouin@orange.com> | 2021-07-22 17:07:51 +0200 |
commit | 67c8e918e97c91be16de253a8f0bcaddf285524a (patch) | |
tree | 466f6ce7d959a8ffac3515f903a45dcd6931ae24 | |
parent | 93d8fc2cd18822136a4d848c38d934203e53c034 (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.py | 4 | ||||
-rw-r--r-- | behave_tests/features/steps/steps.py | 20 |
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) |