Charles抓包后转成接口自动化测试用例

发表于:2019-11-29 14:14

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:雷子V    来源:雷子说测试

  利用Charles抓包巧转接口自动化测试用例,我们已经能够拿到要解析的json文件了,并且转化成json保存。那么我们来读取下。
  首先,我们看下上次的文件,
   {
  "config": {
  "name": "testcase description",
  "variables": {}
  },
  "teststeps": [
  {
  "name": "/openapi/api/v2",
  "request": {
  "url": "http://openapi.tuling123.com/openapi/api/v2",
  "method": "POST",
  "headers": {
  "Content-Type": "application/json",
  "User-Agent": "PostmanRuntime/7.15.2",
  "Postman-Token": "8a096b5c-425a-4cfc-bf52-75ef38f5ba76"
  },
  "json": {
  "reqType": 0,
  "perception": {
  "inputText": {
  "text": "附近的酒店"
  },
  "inputImage": {
  "url": "imageUrl"
  },
  "selfInfo": {
  "location": {
  "city": "北京",
  "province": "北京",
  "street": "信息路"
  }
  }
  },
  "userInfo": {
  "apiKey": "",
  "userId": ""
  }
  }
  },
  "validate": [
  {
  "eq": [
  "status_code",
  200
  ]
  },
  {
  "eq": [
  "headers.Content-Type",
  "text/plain; charset=UTF-8"
  ]
  }
  ]
  }
  ]
  }
  我们已经拿到json文件了,我们可以读出来,用json模块直接强制转化,因为我们是用的python,对json的解析是最佳的。
  我们先读出来文件,最后用json.loads 去加载就可以。具体的代码如下
   import  json
  def openfile(filepath):
  de=open(filepath,encoding="utf-8")
  rslut=''
  for i in de.readlines():
  rslut+=i
  return json.loads(rslut)
  这样我们就可以拿到json转化后的dict,那么我们按照字典 去解析对应的文件就可以,
  我们需要获取的是,接口,方法,请求头,参数,断言的code等。
  那么我们直接可以去读取对应的字典就可以,下面给大家看看我的思路。
   def readjson(json):
  data=json["teststeps"][0]
  interface=data['name']
  method=data['request']['method']
  headers=data['request']['headers']
  parapme=data['request']['json']
  assertcode=data['validate'][0]['eq'][1]
  return interface,method,headers,parapme,assertcode
  这样就返回了,所有的我们想要的数据,然后我们可以直接读取存入到我们的测试用例中。在平台化 后的今天,我们一般都会存入到数据库中。那么我们需要设计对应的数据库去存储就可以, 也有很多放到Excel中,我们可以直接新增到对应的Excel中。也可以存储到redis当中了。后续的文章,我会专门讲解如何存储到对应的存储中。

     本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号