资讯动态

接口测试传参用到的空字符串的错误处理

发布时间:2026/10/17 3:23:27 来源:尧图企业网站定制
在做接口测试时接口请求参数用占位符来替换但是因为代码的错误处理会带来错误的参数传递。具体是这样的传参是usernamepassword*{password3},写了个变量替换方法def regi_var_substitute(params): #10132026 要注意当参数是usernamepassword*{password3},这里的参数替换不能让username后面的空值变成None regi_dict excel_util.load_vars_to_dict(FILE_PATH, REGIS_DATA_SHEET) if params and in params: param_pair params.split() for pair in param_pair: k, v pair.split() if v is None: params params.replace(v, ) print(after subs: , params) else: real_value str(regi_dict.get(v)) print(real value: , real_value) params params.replace(v, real_value) elif not in params: k, v params.split() real_value regi_dict.get(v) params params.replace(v, real_value) else: print(参数为空无需替换) return params结果运行测试脚本总是报错NoneuNonesNoneeNonerNonenNoneaNonemNoneeNoneNoneNonepNoneaNonesNonesNonewNoneoNonerNonedNoneNone*None{NonepNoneaNonesNonesNonewNoneoNonerNonedNone3None}None出现以上这样的问题。问了DS才知道问题出现在哪。问题1代码if v is None:对username做split()后得到的是(username,)这里的v是空字符串(),而不是None用这个逻辑去判断永远会走else分支else:real_valuestr(regi_dict.get() # get()-None-str(None)-Noneparams params.replace(, None) # 这就是灾难str.replace(,None)会把None插入到每个字符之间usernamepassword*{password3} -NoneuNonesNoneeNoner...每个字符缝里都塞上None)不得不说代码里的问题太多了一不留神就出错了。正确判断应该用if v or v is None:continue # 空值直接跳过不要做任何replace问题2real_valueregi_dict.get(v)没有判空变量名没找到时返回None, str(None)None被写进参数接口收到的就是字符串None,而不是空。总结代码要很仔细的写否则就会带来意料之外的问题。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑