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 /behave_tests/features/steps | |
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
Diffstat (limited to 'behave_tests/features/steps')
-rw-r--r-- | behave_tests/features/steps/steps.py | 20 |
1 files changed, 13 insertions, 7 deletions
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) |