robotframework做接口测试 to json 关键字使用

本文详细介绍了使用RobotFramework进行接口测试的方法,重点讲解了JSON数据的解析与转换技巧,包括如何利用Python内置库和第三方库处理JSON数据,以及在测试场景中如何有效获取JSON中的特定值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近开始接触robotframework做接口测试,由于自己摸索很多地方不太懂,特别是关于json格式转化,现在做下整理。

在Python语言中,json数据与dict字典以及对象之间的转化,是必不可少的操作。首先先做下概念介绍,因为是做测试之前对编码了解较少,所以想要系统学习,一些基础理论还得学习下。

JSON 语法 是 JavaScript 对象表示法语法的子集。

  • 数据在名称/值对中 kye:value (在双引号中),后面写一个冒号,然后是值: “firstName” : “John”
  • 数据由逗号分隔 ,
  • 花括号保存对象 {}
  • 方括号保存数组 []

对象可以包含多个名称/值对:
{ “firstName”:“John” , “lastName”:“Doe” }
数组可包含多个对象:
  {

“employees”: [

{ “firstName”:“John” , “lastName”:“Doe” },

{ “firstName”:“Anna” , “lastName”:“Smith” },

{ “firstName”:“Peter” , “lastName”:“Jones” }

]

}
接口测试处理最多的就是json格式的数据
示例:
{
“id”: “1496654252”,
“code”: 0,
“msg”: “ok”,
“data”: {
"tag_list": [
{
“game_id”: “28”,
“game_name”: “王者荣耀”
},
{
“game_id”: “29”,
“game_name”: “镇魔曲”
}
]

}
}
做接口测试依赖的一些类库:
其中json解析会涉及如下几个库:
1、RequestsLibrary,安装命令:pip install requests
2、HttpLibrary,安装命令:pip install robotframework-httplibrary
3、HttpLibrary.HTTP,这个库是在HttpLibrary中,HTTP是HttpLibrary的一个class
4、json,安装命令:pip install jsonpatch
5、Collections,这个库是python自带的,直接引入即
取json值两种情况:

1. 取json值:使用get json Value 关键字
{
“id”: “1496654252”,
“code”: 0,
“msg”: “ok”
}
通过/id的方式调用通过单独/xx/xx/xx这样一层一层的去解析当然也可以取数组中对象
在这里插入图片描述在这里插入图片描述
但是这样查出来的结果是个字符串,是带有引号的在这里插入图片描述
如果想去掉双引号,需要将json字符串转成字典对象。

2. 取json中用中括号的部分[]
需要把json的object格式转成python的Dictionary,
几种方法:
(1)RequestsLibrary中的to json关键字
(2)HttpLibrary.HTTP中的parse json关键字
(3)json中的loads关键字
另外说下:
loads():将json数据转化成dict数据
dumps():将dict数据转化成json数据
在这里插入图片描述
结果:字典格式
在这里插入图片描述注意返回结果中:
pretty_print=false 默认是false,将Content 从Json转换为字典类型,如果定义为true,将Content从字典类型转换为Json
'game_id’变成了u’game_id’是因为发生了类型转换,str会转换成unicode
json.loads()用于将str类型的数据转成dict。

可以参考:import json

name_emb = {‘a’:‘1111’,‘b’:‘2222’,‘c’:‘3333’,‘d’:‘4444’}

jsDumps = json.dumps(name_emb)

jsLoads = json.loads(jsDumps)

print(name_emb)
print(jsDumps)
print(jsLoads)

print(type(name_emb))
print(type(jsDumps))
print(type(jsLoads))

  1. {‘a’: ‘1111’, ‘c’: ‘3333’, ‘b’: ‘2222’, ‘d’: ‘4444’}
  2. {“a”: “1111”, “c”: “3333”, “b”: “2222”, “d”: “4444”}
  3. {u’a’: u’1111’, u’c’: u’3333’, u’b’: u’2222’, u’d’: u’4444’}
  4. <type ‘dict’>
  5. <type ‘str’>
  6. <type ‘dict’>
    取值
    使用Get From Dictionary关键字,此关键字来源与Collections库;可以看到Get From Dictionary后面跟着两个参数,分别是json转成的Dictionary,取第一个对象内的值,从0下标开始
    第一个参数${var1todict[0]}是指上一步json转成的dictionary,注意要有下标,从0开始:[0];第二个参数是我们要取的key。
    在这里插入图片描述
    结果:
    在这里插入图片描述
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值