Robot Framework报错TypeError: get_on_session()缺少必填位置参数alias
TypeError报错排查与修复方案
报错根因
你使用的Robot Framework RequestsLibrary中,Get On Session关键字的第一个必填参数为会话别名(alias),对应Create Session调用时定义的会话名称。当前你写的测试代码调用Get On Session时没有传入该必填参数,因此直接触发missing 1 required positional argument: 'alias'报错。
此外你的代码还存在3个冗余/不规范问题:
- 调用
Create Session时已经传入${base_url}作为会话的基础域名,Get On Session不需要重复传入完整的${base_url},仅需传入接口相对路径即可 - 同时在URL后拼接查询字符串、又传入
params参数,属于重复传参,可能引发参数冲突 - 字典中不需要手动对参数值做URL编码,
params参数会自动完成编码处理
修复后的测试代码
# 创建参数字典 ${myPara} Create Dictionary odsResponseType=Lite name=Seth # 创建别名是mysession的会话 Create Session mysession ${base_url} auth=${auth} verify=${True} # 调用Get On Session,首参数传入会话别名 ${response} = Get On Session mysession /你的接口实际相对路径 params=${myPara}
如果你要请求的接口路径就是
${base_url}根路径,直接把相对路径替换为/即可。
调整要点
- 给
Get On Session补充首参数mysession,匹配创建会话时的别名,直接解决参数缺失报错 - 移除URL后拼接的冗余查询字符串,避免参数重复冲突
- 删除参数字典中手动写的URL编码,交由
params自动处理更规范
内容的提问来源于stack exchange,提问作者Glenny S'boo Spear
相关产品推荐
相关产品推荐

