httprunner引數化問題
阿新 • • 發佈:2021-07-21
htprunner3.1.5版本的引數化傳參無法解析引數問題
比如
class Test_add(HttpRunner):
@pytest.mark.parametrize('param',Parameters({'age':['$myage']}))
def test_start(self, param):
super().test_start(param)
上例中引數化時用到teststeps中step1提取的返回結果,動態入參到引數化$myage,執行會報錯myage未定義,實際上日誌也確實打印出了提取成功,
因為在引數解析時原始碼有bug需要修改parser.py文件鐘的parse_string函式,對應部分修改如下
# search variable like ${var} or $var var_match = variable_regex_compile.match(raw_string, match_start_position) if var_match: var_name = var_match.group(1) or var_match.group(2) var_value = get_mapping_variable(var_name, variables_mapping) #llf解析引數化時上一個介面返回的引數 while True: try: match_start_position = var_value.index("$", 0) var_value = parse_data(var_value, variables_mapping, functions_mapping) except: break return var_value if f"${var_name}" == raw_string or "${" + var_name + "}" == raw_string: # raw_string is a variable, $var or ${var}, return its value directly # res=get_mapping_variable(var_value,variables_mapping) return var_value # return res