ROBOT Framework接口测试发POST请求报jsonschema._utils无属性错误如何解决
报错原因
- 依赖版本不兼容:你当前安装的
jsonschema包版本≥4.18,该版本移除了旧版公开属性types_msg,但Robot Framework相关测试依赖(如RequestsLibrary)仍在调用该属性,因此触发属性不存在的报错。 - 请求体构造逻辑错误:
- 目标请求体是JSON对象(字典结构),但你使用了
create list关键字构造${body},结构完全不匹配。 - 嵌套字典的键名错误:目标JSON中两个子对象的键分别是
Surname、name1、Surname2,你统一写成了value,且语法存在缺漏,value"XYZ"少了等于号。 - 列表构造语法错误:Robot Framework中不能直接用
[$tag_1,$tag_2]的写法生成列表,需要用create list关键字显式构造,变量引用也需要使用${变量名}格式,不能直接写$tag_1。
- 目标请求体是JSON对象(字典结构),但你使用了
解决步骤
- 先修复依赖兼容问题,执行以下命令降级jsonschema到兼容版本:
pip install jsonschema==4.17.3
- 修正测试代码,修正后代码如下:
${tag_1} Create Dictionary name=Test1 Surname=XYZ ${tag_2} Create Dictionary name1=Test2 Surname2=ABC ${details} Create List ${tag_1} ${tag_2} ${body} Create Dictionary Description=School Details=${details} ${header} Create Dictionary Authorization=%{TEMP_TOKEN} Content-Type=application/json ${create_student} Post On Session ABCDE /input json=${body} headers=${header} expected_status=200
内容的提问来源于stack exchange,提问作者Sumit Patra
相关产品推荐
相关产品推荐

