接口測(cè)試 Mock 實(shí)戰(zhàn)(二) | 結(jié)合 jq 完成批量化的手工 Mock

因?yàn)楸菊碌膬?nèi)容是使用jq工具配合完成乐严,因此在開始部分會(huì)先花一定的篇幅介紹jq機(jī)器使用,如果讀者已經(jīng)熟悉jq艳吠,可以直接跳過這部分麦备。
先來看應(yīng)用場(chǎng)景,App 經(jīng)常會(huì)有一些信息展示的列表頁(yè)昭娩,比如商家的菜品凛篙、股票的公司、文章的列表展示等栏渺,例如下面這樣:
菜品不夠吃的話~不是呛梆,是菜品數(shù)量較少不夠測(cè)試的量,假如我們想要測(cè)試幾百個(gè)菜品時(shí)磕诊,會(huì)不會(huì)在刷的時(shí)候是否有性能影響,展示是否正常填物,列表展示的邊界值測(cè)試等纹腌;
而要測(cè)就得有數(shù)據(jù)展示,這個(gè)時(shí)候要是通過后端去找或者造這么多數(shù)據(jù)是有點(diǎn)麻煩的,其實(shí)我們這個(gè)測(cè)試的測(cè)試點(diǎn)就是要測(cè)試前端頁(yè)面的展示和性能滞磺,只要有這部分?jǐn)?shù)據(jù)就可以升薯,無所謂數(shù)據(jù)是否真實(shí)從數(shù)據(jù)庫(kù)得來。
這個(gè)時(shí)候可以就可以利用mock的手段击困,對(duì)這種大數(shù)據(jù)進(jìn)行等價(jià)類的生成涎劈,使前端可以拿到這類數(shù)據(jù)即可,而Charles正是我們實(shí)現(xiàn)手工mock測(cè)試的利器之一阅茶!
按慣例蛛枚,先看官網(wǎng)對(duì)jq的解釋:
jq 官網(wǎng)地址:jq
大概意思就是輕量靈活的Json處理命令行。
用途
說到這大概有些人有點(diǎn)感覺它能用來做什么了脸哀,為啥手工mock要使用jq了蹦浦?沒錯(cuò)!要用它來處理接口返回的json數(shù)據(jù)以達(dá)到mock的效果撞蜂。

  • Mac:Mac還是一如既往的簡(jiǎn)單(香~)盲镶,裝了Homebrew 的話一條命令brew install jq即可

  • 其他系統(tǒng):jq 的官網(wǎng)很貼心,給出了各個(gè)系統(tǒng)的下載方式及其相關(guān)所需下載工具的鏈接蝌诡,具體的就查看官網(wǎng)吧徒河,鏈接如下

  • 基本過濾 .
    簡(jiǎn)單的說就是原樣輸出來:

  • 對(duì)象過濾 .key、.key1.key2送漠、.[“key”]

  • 索引過濾 .key[index]、.key[ startIndex: endIndex]
    .key[index]
    .key[ startIndex: endIndex]

  • 對(duì)象構(gòu)建 {} 由蘑、
    如果其中一個(gè)表達(dá)式有多個(gè)結(jié)果闽寡,那么輸出也會(huì)產(chǎn)生多個(gè)結(jié)果
    如果key是不存在的,value將會(huì)賦值為null
    如果再鍵的周圍加括號(hào)就意味著它將作為表達(dá)式進(jìn)行計(jì)算尼酿。

  • 其他常見用法:
    計(jì)算
    獲取長(zhǎng)度

  • 數(shù)組運(yùn)算
    jq 對(duì)于數(shù)組可以有并集(’+’)和差集(’-’)的操作:
    并集(’+’):有數(shù)組a,b; a+b就會(huì)得到一個(gè)包含所有a,b數(shù)組元素的新數(shù)組:
    差集(’-’):有數(shù)組a,b; a-b就會(huì)得到一個(gè)只包含a中元素爷狈,不包含b中元素的新數(shù)組:

  • 更多用法
    更多用法可參考官網(wǎng):
    https://stedolan.github.io/jq/manual/#Basicfilters
    如下圖中的科普推薦欄目中有 2 則科普文章,現(xiàn)在想要mock幾十甚至上百篇文章或廣告裳擎。

  • 抓取接口的響應(yīng)json報(bào)文如下:

  • 我們將數(shù)據(jù)存入json文件中涎永,然后賦值給一個(gè)變量

  • 然后我們利用jq對(duì)pageList中的列表進(jìn)行+=操作,完成一次翻倍增長(zhǎng)鹿响,將結(jié)果傳給變量mockData羡微。
    按照上述的方法,每次列表的元素個(gè)數(shù)都會(huì)翻倍惶我,也就是操作n次就變成2的n次方倍妈倔,指數(shù)增長(zhǎng)的速度就不用多說了~
    這樣根據(jù)自己的需要得到數(shù)據(jù)后將新數(shù)據(jù)存入json文件,最重要的數(shù)據(jù)準(zhǔn)備過程也就完成了:
    說了這么多“廢話”绸贡,總算是到了主角了盯蝴,其實(shí)數(shù)據(jù)準(zhǔn)備好了毅哗,工具的使用還是很簡(jiǎn)單的,Charles有一個(gè)叫做Map Local的功能捧挺,在你要mock的請(qǐng)求上右擊就可找到:
    Map Local可以對(duì)指定的接口返回使用本地文件進(jìn)行替換虑绵,如這里替換為上文中廢話半天生成的數(shù)據(jù)文件MockTest.json:
    然后再次刷新頁(yè)面,看看效果闽烙,頁(yè)面的列表就如愿倍增了翅睛,也不用去數(shù)據(jù)庫(kù)添加數(shù)據(jù),保存一份json文件即測(cè)即用即可:
    以上鸣峭,期待大家一起交流宏所,多多指正。
    【相關(guān)文章】

  • 基于 Charles 代理技術(shù)的接口測(cè)試 Mock 實(shí)戰(zhàn) (一)

  • 接口測(cè)試策略與問題分析模型

更多技術(shù)文章

喜歡軟件測(cè)試的小伙伴們摊溶,如果我的博客對(duì)你有幫助爬骤、如果你喜歡我的博客內(nèi)容,請(qǐng) “點(diǎn)贊” “評(píng)論” “收藏” 一鍵三連哦莫换!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末霞玄,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子拉岁,更是在濱河造成了極大的恐慌坷剧,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件喊暖,死亡現(xiàn)場(chǎng)離奇詭異惫企,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)陵叽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門狞尔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人巩掺,你說我怎么就攤上這事偏序。” “怎么了胖替?”我有些...
    開封第一講書人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵研儒,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我独令,道長(zhǎng)端朵,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任燃箭,我火速辦了婚禮逸月,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘遍膜。我一直安慰自己碗硬,他們只是感情好瓤湘,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著恩尾,像睡著了一般弛说。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上翰意,一...
    開封第一講書人閱讀 51,598評(píng)論 1 305
  • 那天木人,我揣著相機(jī)與錄音,去河邊找鬼冀偶。 笑死醒第,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的进鸠。 我是一名探鬼主播稠曼,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼客年!你這毒婦竟也來了霞幅?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤量瓜,失蹤者是張志新(化名)和其女友劉穎语淘,沒想到半個(gè)月后滓侍,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體娘赴,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡碰声,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了烫饼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片铅鲤。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖枫弟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情鹏往,我是刑警寧澤淡诗,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站伊履,受9級(jí)特大地震影響韩容,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜唐瀑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一群凶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧哄辣,春花似錦请梢、人聲如沸赠尾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)气嫁。三九已至,卻和暖如春够坐,著一層夾襖步出監(jiān)牢的瞬間寸宵,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工元咙, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留梯影,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓庶香,卻偏偏與公主長(zhǎng)得像甲棍,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子脉课,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容