RobotFrameWork 操作json格式数据
最近做接口测试,需要修改某个json数据串中某一个value值,于是找到了一个现成的json库,可以满足基本的测试需求。
1. Update Value To Json
接口测试相关库安装方法:
pip install requests
pip install robotframework-requests
pip install robotframework-jsonlibrary
pip install jsonpath(还需要安装jsonpath,不然读出来是空的,这个不用往robotframework里导入)
安装完成后,在robotframework中导入:JSONLibrary
json格式如下:
更新json串中isActive的值的用法如下:
此外,还有其它json关键字,暂未用上,大家可自行摸索
2. Get Json Value和Get From Dictionary
使用RF做接口测试,接口响应体里面的内容通常是一个json格式的字符串,可以直接使用Get Json Value(来自HttpLibrary.HTTP库)进行解析,通常用法如下
可以使用如/xx/xx/xx这样一层一层的去解析
但是通过get json value获取到的值,会发现如果是个字符串,是带有引号的
但是很多时候预期是只需要里面的test,不带引号,这个时候就需要将json字符串转成字典对象了,需要用到To Json(来自RequestsLibrary库)或者Parse json(来自HttpLibrary.HTTP库),这两个关键字实现的功能是一样的,然后通过Get From Dictionary(来自Collections库)去获取对应key的value值
3. Get Value From Json
安装库:
pip install requests pip install robotframework-requests
pip install robotframework-jsonlibrary
pip install jsonpath
RF 导入库:
JSONLibrary
RequestsLibrary
刚开始怎么都整不对,尤其是json.loads方法读取出来是一个list, 嵌套的dictionary,遍历的话感觉好麻烦,就像找个省事的办法,可以直接用jsonpath去获取,而且刚开始用jsonpath读取的结果是空的,后来终于整对了,希望有这个需求的可以省事一点。
比如json文件demo.json如下:
1.获取所有的name:
运行结果:
2.获取class1:
运行结果: