1. 程式人生 > 其它 >httprunner引數化問題

httprunner引數化問題

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