【接口测试】charles及jq数据分析

charles mirror+maplocal

  • mirror的使用

  • maplocal+mirror

jq

jq官网

  • jq的安装
    mac 可以使用brew 进行安装
    linux、windows可以使用git clone 源代码进行编译安装

  • jq的基础语法
    1> jq ‘.[0]’ :取数组里边的第一个元素
    2> jq ’ {“xx”:.store.book[0].author,“xxx”:.store.book[1].title}:用于筛选出数据的重新组合

  • jq批量修改字段
    jq .xxx=“修改的内容”

  • jq的翻倍增长
    练习>倍增数据操作:

stockdata=$(cat xx.json)

stockdata=$(echo $stockdata | jq .xxx+=.xxx | jq .xxx+=.xxx)

echo $stockdata >xx.json

作业> 如何使股票列表页只修改列表里边的内容。

raw=$(echo “$raw”|jq ‘.data.items+=.data.items’|jq '.data.items_size+=.data.items_size’)

将数据存入一个文件中

echo $raw >/Users/zhaitiantian3/Public/mock.json

image
image

1 个赞

不错,点个赞

明白了,原来是两个请求中symbol参数有区别,所以加上这个参数就可以过滤掉了

楼上的,symbol在这个接口的含义你知道么,两个接口都有symbol字段(猜测字段意思是股票代码列表),这个不适合作为区分而且是有可能完全相同的,两个接口的区别在于,下面的列表多了个X的字段,应该是用于上传下拉操作的启示位置,用这个字段作为参数才是最适合的,例如下图,使用repeat确认,这样只有下面的列表会被rewrite到本地
image

1 个赞

先进行加倍处理
raw=$(echo “$raw” | jq ‘.data.items+=.data.items’ | jq ‘.data.items_size+=.data.items_size’)
将处理后的文件保存到指定路径下
echo “$raw” > /test/mock.json
然后找到要替换文件的接口右键选择——》map local
红框中选择处理后的数据


image

  1. 设置手机代理
    image

  2. 打开charles,mirror保存数据

  3. 修改股票名

  4. 数据倍增

  5. 设置maplocal
    image

  6. 手机刷新页面
    image

实现只有修改股票列表,要分析batch目录下两个文件路径中Query中的区别,比较可发行股票列表多一个参数,所以应该可以使用‘x=’来区分。
图片
json格式倍增的命令:
cat 1.json | jq ‘.date.items+=.date.items’ | jq ‘.data.items_size=+.date.items_size’ > 2.json

![微信截图_20200807213243|800x478](upload://bux302ZGR7BBBHrn3jK66Ng6Zi6.png) 
E:\my_project\jq-mock-exercise\stock.xueqiu.com\v5\stock\batch
mock_data=$(cat quote.json%3f_t%3d1NETEASEdc77ca12c9262505ac5b61e800bce05d.4188035025.1596791205499.1596798357280%26_s%3d5ea961%26x%3d0)
$ duble=$(echo '$mock_data' |  jq '.data.items+= .data.items'  |  jq  '.data.items_size+=.data.items_size')


image