当前位置:网站首页>接口测试 Mock 实战(二) | 结合 jq 完成批量化的手工 Mock
接口测试 Mock 实战(二) | 结合 jq 完成批量化的手工 Mock
2022-04-22 16:12:00 【华为云】
因为本章的内容是使用jq工具配合完成,因此在开始部分会先花一定的篇幅介绍jq机器使用,如果读者已经熟悉jq,可以直接跳过这部分。
先来看应用场景,App 经常会有一些信息展示的列表页,比如商家的菜品、股票的公司、文章的列表展示等,例如下面这样:
菜品不够吃的话~不是,是菜品数量较少不够测试的量,假如我们想要测试几百个菜品时,会不会在刷的时候是否有性能影响,展示是否正常,列表展示的边界值测试等;
而要测就得有数据展示,这个时候要是通过后端去找或者造这么多数据是有点麻烦的,其实我们这个测试的测试点就是要测试前端页面的展示和性能,只要有这部分数据就可以,无所谓数据是否真实从数据库得来。
这个时候可以就可以利用mock的手段,对这种大数据进行等价类的生成,使前端可以拿到这类数据即可,而Charles正是我们实现手工mock测试的利器之一!
按惯例,先看官网对jq的解释:
jq 官网地址:https://stedolan.github.io/jq/
大概意思就是轻量灵活的Json处理命令行。
用途
说到这大概有些人有点感觉它能用来做什么了,为啥手工mock要使用jq了?没错!要用它来处理接口返回的json数据以达到mock的效果。
- Mac:Mac还是一如既往的简单(香~),装了Homebrew 的话一条命令brew install jq即可
- 其他系统:jq 的官网很贴心,给出了各个系统的下载方式及其相关所需下载工具的链接,具体的就查看官网吧,链接如下
- 基本过滤 .
简单的说就是原样输出来:
- 对象过滤 .key、.key1.key2、.["key"]
- 索引过滤 .key[index]、.key[ startIndex: endIndex]
.key[index]
.key[ startIndex: endIndex]
- 对象构建 {} 、[]
如果其中一个表达式有多个结果,那么输出也会产生多个结果
如果key是不存在的,value将会赋值为null
如果再键的周围加括号就意味着它将作为表达式进行计算。
- 其他常见用法:
计算
获取长度
- 数组运算
jq 对于数组可以有并集(’+’)和差集(’-’)的操作:
并集('+'):有数组a,b; a+b就会得到一个包含所有a,b数组元素的新数组:
差集('-'):有数组a,b; a-b就会得到一个只包含a中元素,不包含b中元素的新数组:
- 更多用法
更多用法可参考官网:
https://stedolan.github.io/jq/manual/#Basicfilters
如下图中的科普推荐栏目中有 2 则科普文章,现在想要mock几十甚至上百篇文章或广告。
- 抓取接口的响应json报文如下:
- 我们将数据存入json文件中,然后赋值给一个变量
- 然后我们利用jq对pageList中的列表进行+=操作,完成一次翻倍增长,将结果传给变量mockData。
按照上述的方法,每次列表的元素个数都会翻倍,也就是操作n次就变成2的n次方倍,指数增长的速度就不用多说了~
这样根据自己的需要得到数据后将新数据存入json文件,最重要的数据准备过程也就完成了:
说了这么多“废话”,总算是到了主角了,其实数据准备好了,工具的使用还是很简单的,Charles有一个叫做Map Local的功能,在你要mock的请求上右击就可找到:
Map Local可以对指定的接口返回使用本地文件进行替换,如这里替换为上文中废话半天生成的数据文件MockTest.json:
然后再次刷新页面,看看效果,页面的列表就如愿倍增了,也不用去数据库添加数据,保存一份json文件即测即用即可:
以上,期待大家一起交流,多多指正。
【相关文章】
- 基于 Charles 代理技术的接口测试 Mock 实战 (一)
- 接口测试策略与问题分析模型
版权声明
本文为[华为云]所创,转载请带上原文链接,感谢
https://bbs.huaweicloud.com/blogs/349131
边栏推荐
猜你喜欢

Want to do self media operation but can't write? 4 valuable operational skills

【ARM汇编】如何对键入数据做判断?

从思维走向实践,数字化转型 IT 经营的成功路径

ICMP and IPv6 global unicast address dynamic allocation

All the goods in the files backed up by Taobao assistant were put on the shelves again

Redis cache hit rate

万元礼品奖池!玩转「Lighthouse」有奖征文来袭

342-Leetcode 字符串中的第一个唯一字符

Installing STEP7 micro / win v4.0 in Windows 10 0 SP9. After installation, you will be prompted with assertion program: pniopcac exe File

这个API Hub厉害了,收录了钉钉企业微信等开放Api,还能直接调试 !
随机推荐
万元礼品奖池!玩转「Lighthouse」有奖征文来袭
串口数据绘图SerialPlot的使用
华为交换机配置
Crystal Chem β-乳球蛋白 ELISA 试剂盒 II说明书
How to select one of the two lines that coincide in SolidWorks
Servlet基础
LeetCode每日一题——824. 山羊拉丁文
Grafana series (IX): introduction to Loki, an open source cloud native logging solution
经销商组团检阅欧尚Z6:为高能产品力点赞
It's too voluminous ~ (2022 version) large factory face experience + detailed notes to help you finish the interview
【操作教程】国标GB28181平台EasyGBS如何开启语音对讲功能?
Parameter setting of Sanke inverter pipe bender
【acwing】1135. 新年好***(dijkstra+堆优化)
opencv在图片上画框,画点,写字,画线
Color classification - brain sharp turn - training logic [stacking | single pointer | double pointer]
selenium之预期条件判断方法
以前用淘宝助理备份的文件内的商品,全部重新上架到淘宝店铺
Talk about data subcontracting and related tips
TCP/IP协议之四TCP协议(上)—理论+实践给你讲清楚
7-inch touch screen screen calibration parameter setting