Merge branch 'master' into master

This commit is contained in:
debugtalk
2019-09-19 00:42:24 +08:00
committed by GitHub
13 changed files with 138 additions and 369 deletions

View File

@@ -111,3 +111,10 @@ def alter_response(response):
def alter_response_error(response):
# NameError
not_defined_variable
def gen_variables():
return {
"var_a": 1,
"var_b": 2
}

View File

@@ -1,5 +1,4 @@
import os
import re
import time
import unittest
@@ -561,7 +560,6 @@ class TestParserBasic(unittest.TestCase):
)
def test_parse_data_functions(self):
import random, string
functions_mapping = {
"gen_random_string": gen_random_string
}

View File

@@ -336,4 +336,47 @@ class TestRunner(ApiServerUnittest):
parsed_testcases = parser.parse_tests(tests_mapping)
parsed_testcase = parsed_testcases[0]
test_runner = runner.Runner(parsed_testcase["config"])
test_runner.run_test(parsed_testcase["teststeps"][0])
test_runner.run_test(parsed_testcase["teststeps"][0])
def test_run_testcase_config_variables_parsed_from_function(self):
testcases = [
{
"config": {
"name": "basic test with httpbin",
"base_url": HTTPBIN_SERVER,
"variables": "${gen_variables()}"
},
"teststeps": [
{
"name": "modify request headers",
"base_url": HTTPBIN_SERVER,
"request": {
"url": "/anything",
"method": "POST",
"headers": {
"user_agent": "iOS/10.3",
"os_platform": "ios"
},
"data": "a=1&b=2"
},
"validate": [
{"check": "status_code", "expect": 200}
]
}
]
}
]
tests_mapping = {
"project_mapping": {
"functions": self.debugtalk_functions
},
"testcases": testcases
}
parsed_testcases = parser.parse_tests(tests_mapping)
parsed_testcase = parsed_testcases[0]
test_runner = runner.Runner(parsed_testcase["config"])
test_runner.run_test(parsed_testcase["teststeps"][0])
test_variables_mapping = test_runner.session_context.test_variables_mapping
self.assertEqual(test_variables_mapping["var_a"], 1)
self.assertEqual(test_variables_mapping["var_b"], 2)
self.assertEqual(test_variables_mapping["request"]["data"], "a=1&b=2")