前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Charles抓包后转成接口自动化测试用例(续)

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

作者头像
雷子
发布2021-03-15 16:13:25
5080
发布2021-03-15 16:13:25
举报
文章被收录于专栏:雷子说测试开发

在上篇,利用Charles抓包巧转接口自动化测试用例,我们已经能够拿到要解析的json文件了,并且转化成json保存。那么我们来读取下。

首先,我们看下上次的文件,

代码语言:javascript
复制
{
  "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 去加载就可以。具体的代码如下

代码语言:javascript
复制
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等。

那么我们直接可以去读取对应的字典就可以,下面给大家看看我的思路。

代码语言:javascript
复制
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当中了。后续的文章,我会专门讲解如何存储到对应的存储中。

欢迎关注雷子说测试。

善于发现工具,善于利用工具。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 雷子说测试开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档