還認(rèn)真研究了一波接口依賴(lài)洛口,不過(guò)也僅僅有了概念而已
首先解釋一下什么是mock接口。
Mock通常是指试躏,在測(cè)試一個(gè)對(duì)象時(shí)端姚,我們構(gòu)造一些假的對(duì)象來(lái)模擬與其交互溜族。而這些Mock對(duì)象的行為是我們事先設(shè)定且符合預(yù)期。通過(guò)這些Mock對(duì)象來(lái)測(cè)試對(duì)象在正常邏輯垦沉,異常邏輯或壓力情況下工作是否正常煌抒。
引入Mock最大的優(yōu)勢(shì)在于:Mock的行為固定,它確保當(dāng)你訪(fǎng)問(wèn)該Mock的某個(gè)方法時(shí)總是能夠獲得一個(gè)沒(méi)有任何邏輯的直接就返回的預(yù)期結(jié)果乡话。Mock接口就是用一些合理的手段構(gòu)造對(duì)象去模擬真實(shí)接口摧玫,達(dá)到我們需要的測(cè)試效果。測(cè)試場(chǎng)景有哪些呢绑青?
依賴(lài)的上游項(xiàng)目的接口尚未開(kāi)發(fā)完成诬像,下游無(wú)法進(jìn)行聯(lián)調(diào),一直處于等待狀態(tài)闸婴;
接口不滿(mǎn)足目前的測(cè)試需求坏挠。雖然接口已經(jīng)實(shí)現(xiàn),但是個(gè)別字段/返回不滿(mǎn)足測(cè)試要求邪乍;
常見(jiàn)的 一些Mock 方式:
將模擬數(shù)據(jù)直接寫(xiě)在代碼里
利用 JavaScript 攔截請(qǐng)求
利用 Charles降狠、 Fiddler 等代理工具攔截請(qǐng)求
。庇楞。榜配。。吕晌。蛋褥。。
等等
龍淵閣測(cè)試開(kāi)發(fā)家園:?317765580
如何將這些Mock接口管理起來(lái)就成了一個(gè)問(wèn)題睛驳,好在現(xiàn)在市面上已經(jīng)有不少這種平臺(tái)烙心,比如
下面借用一張圖來(lái)說(shuō)明一下Mock平臺(tái)的優(yōu)勢(shì)
通過(guò)這張圖我們可以發(fā)現(xiàn),通過(guò)Mock平臺(tái)乏沸,可以實(shí)現(xiàn)前后端并行開(kāi)發(fā)淫茵,甚至測(cè)試也能參與進(jìn)來(lái)〉旁荆可以極大地提高工作效率匙瘪。
簡(jiǎn)單介紹Mock之后,我們可以來(lái)實(shí)際操作了蝶缀。這里我在本地部署了一套Easy-Mock平臺(tái)辆苔,具體部署流程自行Github,或者咨詢(xún)博主扼劈。
我在后臺(tái)創(chuàng)建了一個(gè)Mock接口,實(shí)現(xiàn)一個(gè)簡(jiǎn)單的響應(yīng)式j(luò)s菲驴,見(jiàn)下圖荐吵。
大概意思就是通過(guò)接口傳入一個(gè)time參數(shù),接口判斷如果參數(shù)名稱(chēng)是now,那么接口實(shí)時(shí)返回當(dāng)前時(shí)間先煎,如果傳入的參數(shù)是id贼涩,那么接口返回一個(gè)隨機(jī)的字符串。這里涉及到一些mock語(yǔ)法薯蝎∫>耄可以參考下面的文檔
現(xiàn)在可以去前臺(tái)調(diào)試一下接口了
?完成這些工作之后,可以將這個(gè)接口寫(xiě)到Jmeter中進(jìn)行調(diào)試占锯,可以看到兩種不同的結(jié)果袒哥。
我們也可以將接口文檔中的預(yù)期返回值填入到Mock中去模擬結(jié)果,從而使接口測(cè)試擺脫對(duì)環(huán)境的依賴(lài)消略,實(shí)現(xiàn)真正的敏捷堡称!
Easy-Mock可以在本地部署,但是也有線(xiàn)上環(huán)境艺演,可以自由選擇哦~
線(xiàn)上地址Easy-Mock