本文霍格沃兹测试学院学员学习实践笔记,进阶学习文末加群。
一、应用背景
因为本章的内容是使用jq
工具配合完成,因此在开始部分会先花一定的篇幅介绍jq
机器使用,如果读者已经熟悉jq
,可以直接跳过这部分。
先来看应用场景,App 经常会有一些信息展示的列表页,比如商家的菜品、股票的公司、文章的列表展示等,例如下面这样:
菜品不够吃的话~不是,是菜品数量较少不够测试的量,假如我们想要测试几百个菜品时,会不会在刷的时候是否有性能影响
,展示
是否正常,列表展示的边界值
测试等;
而要测就得有数据展示,这个时候要是通过后端去找或者造这么多数据是有点麻烦的,其实我们这个测试的测试点就是要测试前端页面的展示和性能,只要有这部分数据就可以,无所谓数据是否真实从数据库得来。
这个时候可以就可以利用mock
的手段,对这种大数据进行等价类的生成,使前端可以拿到这类数据即可,而Charles
正是我们实现手工mock
测试的利器之一!
二、jq 简介
2.1 jq 的概述与用途
按惯例,先看官网对jq
的解释:
jq 官网地址:https://stedolan.github.io/jq/
大概意思就是轻量灵活的Json
处理命令行。
用途
说到这大概有些人有点感觉它能用来做什么了,为啥手工mock
要使用jq
了?没错!要用它来处理接口返回的json
数据以达到mock
的效果。
2.2 jq 的下载安装
-
Mac:Mac还是一如既往的简单(香~),装了
Homebrew
的话一条命令brew install jq
即可 -
其他系统:jq 的官网很贴心,给出了各个系统的下载方式及其相关所需下载工具的链接,具体的就查看官网吧,链接如下
https://stedolan.github.io/jq/download/
2.3 jq 的基本使用
-
基本过滤
.
最简单的过滤,
.
这是一个过滤器,它接受输入,并将其不变地生成为输出。
简单的说就是原样输出来:
$ echo '{"jq": "jqTest"}' | jq '.'
{
"jq": "jqTest"
}
-
对象过滤
.key
、.key1.key2
、.["key"]
可以通过
.key
或.key1.key2
的方式来获取对应的value
,这样的方式是不是有点像jsonpath
?
$ echo '{"jq": {"jqTest": 1} }' | jq '