news 2026/11/2 21:55:38

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
接口测试传参用到的空字符串的错误处理

在做接口测试时,接口请求参数用占位符来替换,但是因为代码的错误处理会带来错误的参数传递。

具体是这样的,传参是username=&password=*{password3},

写了个变量替换方法

def regi_var_substitute(params): #10132026 要注意:当参数是username=&password=*{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

结果,运行测试脚本总是报错,

NoneuNonesNoneeNonerNonenNoneaNonemNoneeNone=None&NonepNoneaNonesNonesNonewNoneoNonerNonedNone=None*None{NonepNoneaNonesNonesNonewNoneoNonerNonedNone3None}None
出现以上这样的问题。

问了DS,才知道问题出现在哪。

问题1:代码if v is None:

对username=做split('=')后,得到的是('username',''),这里的v是空字符串(''),而不是None

用这个逻辑去判断,永远会走else分支

else:

real_value=str(regi_dict.get('') # get('')->None->str(None)->'None'

params = params.replace('', 'None') # 这就是灾难

str.replace('','None')会把'None'插入到每个字符之间

username=&password=*{password3} ->NoneuNonesNoneeNoner...(每个字符缝里都塞上None)

不得不说,代码里的问题太多了,一不留神就出错了。

正确判断应该用:

if v == '' or v is None:

continue # 空值直接跳过,不要做任何replace

问题2:real_value=regi_dict.get(v)没有判空

变量名没找到时返回None, str(None)='None'被写进参数,接口收到的就是字符串"None",而不是空。

总结:代码要很仔细的写,否则就会带来意料之外的问题。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/3 6:40:59

SSM学校食堂管理系统:Spring+SpringMVC+MyBatis实战项目源码解析

你有没有见过学校食堂饭点排长队的场面?窗口前里三层外三层,刷卡机前挤成一团,打饭阿姨一边打菜还要一边盯着账目,漏记错记时有发生。这种混乱背后,往往不是师傅手脚慢,而是整个食堂缺乏一套清晰的信息化管…

作者头像 李华
网站建设 2026/10/25 1:28:54

【单片机课设毕设项目】基于单片机的婴儿床哭泣尿床PM2.5监测与联动系统设计 基于WIFI的智能婴儿监护环境监测与远程提醒装置设计(032706)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

作者头像 李华
网站建设 2026/10/25 7:02:11

图像频域处理实战:从傅里叶变换到频谱滤波的工程落地

1. 这不是数学课,是图像处理的“透视眼”训练手册你有没有试过把一张模糊的照片拉到最大,想看清车牌号或人脸细节,结果只看到一片马赛克?或者在修图软件里调“锐化”滑块时,明明拉高了却让边缘泛起奇怪的白边&#xff…

作者头像 李华
网站建设 2026/10/25 2:40:50

面试题 - 什么是自举电容

自举电容 是一种巧妙的电路技巧,用于在电路中临时“抬高”某一点的电压,从而解决一个关键难题:如何高效、低成本地驱动一个高端(High-side)的N型功率开关管(如NMOS或NPN晶体管) 如上图,下管导通很容易, Vg 大于Vs ,Vs一直在低电平,所以很容易导通 上管第一次导通,V…

作者头像 李华
网站建设 2026/10/25 0:35:15

单片机计算机毕设之基于STM32的婴儿床尿床哭泣检测与生理参数监护装置设计 基于WIFI的智能婴儿床生理监测与远程喂奶提醒系统设计(032704)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

作者头像 李华