让知识连接你我
投稿赚钱
当前位置: 首页 > 后端开发 > robotframework做接口测试 to json 关键字使用
  • 101
  • 微信分享

    扫一扫,在手机上查看

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

2019.09.06 10:00 238 浏览 举报

  最近刚开始接触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”
  }

1567577986916495.png

  通过单独/xx/xx/xx那样一层一层的去解析或许也可以取数组中对象

  但是那样查出来的结果是个字符串,是带有引号的

1567577986918786.png

  如果想去掉双引号,需要将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数据

1567577987653552.png

  结果:字典格式

  注意返回结果中:

  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))
  {‘a’: ‘1111’, ‘c’: ‘3333’, ‘b’: ‘2222’, ‘d’: ‘4444’}
  {“a”: “1111”, “c”: “3333”, “b”: “2222”, “d”: “4444”}
  {u’a’: u’1111’, u’c’: u’3333’, u’b’: u’2222’, u’d’: u’4444’}

  取值

  使用Get From Dictionary关键字,此关键字来源与Collections库;可以看到Get From Dictionary后面跟着两个参数,分别是json转成的Dictionary,取第一个对象内的值,从0下标开始

  第一个参数${var1todict[0]}是指上一步json转成的dictionary,注意要有下标,从0开始:[0];第二个参数是我们要取的key。

1567577987468026.png

本文首次发布于开创者素材 ,转载请注明出处,谢谢合作!

相关文章推荐