fix: extend with testcase reference in format version 2

This commit is contained in:
debugtalk
2019-06-25 15:51:24 +08:00
parent 22b2ba66d5
commit 7fc3280584
6 changed files with 45 additions and 6 deletions

View File

@@ -1,5 +1,11 @@
# Release History # Release History
## 2.2.1 (2019-06-25)
**Bugfixes**
- fix extend with testcase reference in format version 2
## 2.2.0 (2019-06-24) ## 2.2.0 (2019-06-24)
**Features** **Features**

View File

@@ -1,7 +1,7 @@
__title__ = 'HttpRunner' __title__ = 'HttpRunner'
__description__ = 'One-stop solution for HTTP(S) testing.' __description__ = 'One-stop solution for HTTP(S) testing.'
__url__ = 'https://github.com/HttpRunner/HttpRunner' __url__ = 'https://github.com/HttpRunner/HttpRunner'
__version__ = '2.2.0' __version__ = '2.2.1'
__author__ = 'debugtalk' __author__ = 'debugtalk'
__author_email__ = 'mail@debugtalk.com' __author_email__ = 'mail@debugtalk.com'
__license__ = 'Apache-2.0' __license__ = 'Apache-2.0'

View File

@@ -332,7 +332,18 @@ def __extend_with_testcase_ref(raw_testinfo):
project_mapping["PWD"], project_mapping["PWD"],
*testcase_path.split("/") *testcase_path.split("/")
) )
testcase_dict = load_testcase(load_file(testcase_path)) loaded_testcase = load_file(testcase_path)
if isinstance(loaded_testcase, list):
# make compatible with version < 2.2.0
testcase_dict = load_testcase(loaded_testcase)
elif isinstance(loaded_testcase, dict) and "teststeps" in loaded_testcase:
# format version 2, implemented in 2.2.0
testcase_dict = load_testcase_v2(loaded_testcase)
else:
raise exceptions.FileFormatError(
"Invalid format testcase: {}".format(testcase_path))
tests_def_mapping[testcase_path] = testcase_dict tests_def_mapping[testcase_path] = testcase_dict
else: else:
testcase_dict = tests_def_mapping[testcase_path] testcase_dict = tests_def_mapping[testcase_path]

View File

@@ -0,0 +1,22 @@
config:
name: "create user and check result."
id: create_user
base_url: "http://127.0.0.1:5000"
variables:
uid: 9001
device_sn: "TESTCASE_CREATE_XXX"
output:
- session_token
teststeps:
-
name: setup and reset all (override) for $device_sn.
testcase: testcases/setup.yml
output:
- session_token
-
name: create user and check result.
variables:
token: $session_token
testcase: testcases/deps/check_and_create.yml

View File

@@ -11,7 +11,7 @@
"testcases": [ "testcases": [
{ {
"name": "create user 1000 and check result.", "name": "create user 1000 and check result.",
"testcase": "testcases/create_user.yml", "testcase": "testcases/create_user.v2.yml",
"variables": { "variables": {
"var_d": "$var_c", "var_d": "$var_c",
"var_c": "${gen_random_string(5)}", "var_c": "${gen_random_string(5)}",
@@ -20,7 +20,7 @@
}, },
{ {
"name": "create user 1001 and check result.", "name": "create user 1001 and check result.",
"testcase": "testcases/create_user.yml", "testcase": "testcases/create_user.v2.yml",
"variables": { "variables": {
"var_d": "$var_c", "var_d": "$var_c",
"var_c": "${gen_random_string(5)}", "var_c": "${gen_random_string(5)}",

View File

@@ -9,7 +9,7 @@ config:
testcases: testcases:
- -
name: create user 1000 and check result. name: create user 1000 and check result.
testcase: testcases/create_user.yml testcase: testcases/create_user.v2.yml
variables: variables:
uid: 1000 uid: 1000
var_c: ${gen_random_string(5)} var_c: ${gen_random_string(5)}
@@ -17,7 +17,7 @@ testcases:
- -
name: create user 1001 and check result. name: create user 1001 and check result.
testcase: testcases/create_user.yml testcase: testcases/create_user.v2.yml
variables: variables:
uid: 1001 uid: 1001
var_c: ${gen_random_string(5)} var_c: ${gen_random_string(5)}