zoukankan      html  css  js  c++  java
  • Charles 映射(Map)

    Map 功能分Map Remote 和Map Local 两种,顾名思义,Map Remote 是将指定的网络请求重定向到另一个网址,Map Local 是将指定的网络请求重定向到本地文件。

    Map Remote 使用场景,app或者PC&M站某个需求刚提测阶段,新接口A在测试环境有,还有一种极端情况,接口只在开发本地机器提供(无线底层很多接口不维护测试环境),线上环境A接口还未上线,通常的做法是:

    1.APP测试包打包时候写死(这种只能开发本地打包,不能使用jenkins打的包);M站或者网站在配置文件写死请求地址(各种改配置很麻烦)

    2.app全部切换到A接口所在的测试环境,比如sit环境(这种情况下,所有接口都走sit环境,不保证其他接口正常)

    如:Map Remote能解决这种情况,APP使用新接口,app线上调用地址是 http://xxx/portal/home/pullRefresh app默认调用也是这个,目前现在接口还没提供

     

    接口+参数完整请求是:http://xxx/portal/home/pullRefresh?d={}&c={"cc":1602,"ct":20,"dt":1,"ov":14,"p":14584,"v":"9.0.5"}

     

    目前开发本机提供测试接口: http://172.31.0.158:8080/portal/home/pullRefresh?d={}&c={"cc":1602,"ct":20,"dt":1,"ov":14,"p":14584,"v":"9.0.5"}

    不配置的时候直接调用,结果是404 (原因是接口xxxx/portal/home/pullRefresh还不存在,对于app来说调了一个不存在的接口)

    charles做如下配置:

     

    然后重启app,查看接口请求情况,看到实际请求了我们转发的172.31.0.158:8080接口,而不再请求域名XXX 接口,下面图片能看到 

    至此,Map Remote 功能配置完成。

    Map Local的使用场景,要验证接口返回数据的各种场景。正常流程是配置系统配置数据,或者产品配置配置产品。Map Local可以轻易改变请求接口的返回数据。

    以下面的接口为例:

    {
        "success": true,
        "errorCode": 710000,
        "msg": "OK",
        "data": {
            "successFlag": true,
            "imageZipUrl": "http://10.10.33.144/fb2/t2/group1/M00/00/59/CgohkFhZ9V-CidqAARAhOcRJ4cAAAAqgKGEzIABECc993.zip",
            "imageZipMd5": "fe222cb5fa6fa915524ba9f73fb3c3de",
            "startTime": "2016-12-23 08:55:00",
            "endTime": "2016-12-29 15:00:00"
        }
    }

    设定环境:

    1.这个接口来源是athena,还在开发中,接口数据是写死的,没法改变。

    2.即使 后台和接口都是好的,需要的数据都要在 athena 配置,每次配置生效,等缓存时间过期,都很耗费时间。

    3.imageZipMd5 值athena 不能随意配置,测试场景需要非法的 imageZipMd5 ,没法通过配置实现。

    这是正常的接口返回,现在要 successFlag 改成false 或者 imageZipMd5 改变,时间失效等等数据改变组合。

    还是要上面的接口:

    http://172.31.0.158:8080/portal/home/pullRefresh?d={}&c={"cc":1602,"ct":20,"dt":1,"ov":14,"p":14584,"v":"9.0.5"}

    默认数据就是上面列出的,现在配置 Map Local;

    1.先本地创建一个文本,比如 json.txt。里面内容复制上面json数据,并且改变 imageZipMd5值 62cddce134c9625896b361137bfabe4e

    {
        "success": true,
        "errorCode": 710000,
        "msg": "OK",
        "data": {
            "successFlag": true,
            "imageZipUrl": "http://10.10.33.144/fb2/t2/group1/M00/00/59/CgohkFhZ9V-CidqAARAhOcRJ4cAAAAqgKGEzIABECc993.zip",
            "imageZipMd5": "62cddce134c9625896b361137bfabe4e",
            "startTime": "2016-12-23 08:55:00",
            "endTime": "2016-12-29 15:00:00"
        }
    }

    2.配置 Map Local Map To 链接到本地的 json.txt文件

    重启app 再次请求接口,接口返回数据  imageZipMd5 已经变成本地文件 json.txt的值。现在可以随意修改 json.txt 里面的内容,覆盖很多场景,节省测试的验证时间。

    至此,Map Local 功能配置完成。

  • 相关阅读:
    图形验证码---pillow
    vue富文本编辑器vue-quill-editor
    django邮件发送
    Django REST Framework JWT
    jwt验证
    使用django的用户表进行登录管理
    [转]CSRF漏洞详细说明
    Django框架10
    Django框架09
    Django框架08
  • 原文地址:https://www.cnblogs.com/bao-yan/p/13600663.html
Copyright © 2011-2022 走看看