feat: make testcase with weight

This commit is contained in:
debugtalk
2020-06-18 18:46:34 +08:00
parent e248ba77f6
commit da079fc318
14 changed files with 26 additions and 11 deletions

View File

@@ -1,7 +1,8 @@
__version__ = "3.1.0"
__description__ = "One-stop solution for HTTP(S) testing."
from httprunner.ext.locust import main_locusts # import firstly for monkey patch if needed
# import firstly for monkey patch if needed
from httprunner.ext.locust import main_locusts
from httprunner.runner import HttpRunner
from httprunner.testcase import Config, Step, RunRequest, RunTestCase

View File

@@ -30,6 +30,7 @@ def is_httprunner_testcase(item):
""" check if a variable is a HttpRunner testcase class
"""
from httprunner import HttpRunner
# TODO: skip referenced testcase
return bool(
inspect.isclass(item)
@@ -89,6 +90,7 @@ def main_locusts():
sys.exit(1)
from httprunner.make import main_make
global pytest_files
testcase_file_path = sys.argv[testcase_index]
pytest_files = main_make([testcase_file_path])

View File

@@ -12,8 +12,7 @@ class HttpRunnerUser(HttpUser):
def on_start(self):
locust_tests = prepare_locust_tests()
self.testcase_runners = [
testcase().with_session(self.client)
for testcase in locust_tests
testcase().with_session(self.client) for testcase in locust_tests
]
@task

View File

@@ -184,6 +184,9 @@ def make_config_chain_style(config: Dict) -> Text:
if "export" in config:
config_chain_style += f'.export(*{config["export"]})'
if "weight" in config:
config_chain_style += f'.locust_weight({config["weight"]})'
return config_chain_style
@@ -442,6 +445,10 @@ def make_testsuite(testsuite: Dict) -> NoReturn:
)
testcase_dict["config"]["variables"].update(testcase_variables)
# override weight
weight = testcase.get("weight", 1)
testcase_dict["config"]["weight"] = weight
# make testcase
testcase_pytest_path = make_testcase(testcase_dict, testsuite_dir)
pytest_files_run_set.add(testcase_pytest_path)