本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/18033074
实现目标
如果后续有请求依赖本次请求的响应结果,那么把依赖数据保存到全局变量,比如token
安装模块
jsonpath用于解析json数据
pip install jsonpath
修改工具类
global_variable_tool.py添加方法,用于保存依赖数据
def setVar(self,key,value): '''添加全局变量''' self.globalVars[key] = value logger.info(f"当前全局变量:{self.globalVars}") def save_global_variable(self, globalVariable, res): '''保存被依赖数据到全局变量中''' import jsonpath for globalv in globalVariable.split(";"): g = globalv.strip() if g: key = g.split('=')[0].strip() value_expr = g.split('=')[1].strip() # print("key:", key) # print("value_expr:", value_expr) logger.info(f"key={key}, value_expr={value_expr}") value = jsonpath.jsonpath(json.loads(res),value_expr)[0] # 返回列表,取第一个 self.setVar(key,value) # 打印当前所有全局变量 logger.info("当前所有全局变量:{}".format(self.getVars() ))
修改测试类
http请求前定义res
res = None
http请求后添加保存全局变量逻辑:
globalVariables = casedata["globalVariables"] # logger.info(">>>>>globalVariables:{}".format(globalVariables)) # 如果有需要被后续请求用的变量数据 if globalVariables: gv.save_global_variable(globalVariables, res.text)
运行结果
先看下测试数据:
- 登录成功后需要保存token
- 添加商品需要传token
运行结果中可以看到,token保存并替换成功,依赖token的接口请求也成功了
标签:10,python,expr,self,value,key,globalVariables,全局变量 From: https://www.cnblogs.com/uncleyong/p/18050189