Jmeter
接口測(cè)試:
(1)整體思路:
1、按業(yè)務(wù)流程先寫(xiě)覆蓋整個(gè)流程的正向case,然后在根據(jù)情況寫(xiě)校驗(yàn)異常的case
2、發(fā)出post或put請(qǐng)求,新建或編輯后,一定要get驗(yàn)證,確保改動(dòng)生效;
3、運(yùn)行,查看結(jié)果樹(shù)。
(2)fail的case解決辦法:
1、400:參數(shù)校驗(yàn)錯(cuò)誤,需檢查body中的參數(shù)是否正確;業(yè)務(wù)數(shù)據(jù)錯(cuò)誤,需確認(rèn)事件發(fā)生是否符合流程;
2、404:要核對(duì)接口地址是否錯(cuò)誤,在檢查參數(shù)類(lèi)型,參數(shù)名稱(chēng);
3、500:服務(wù)器錯(cuò)誤,需找開(kāi)發(fā)幫忙看下;
4、對(duì)于需要添加三件套的case要正確添加,若報(bào)錯(cuò),需要去檢查三件套是否有誤;
5、在發(fā)出請(qǐng)求后馬上獲取,存在一定的問(wèn)題,有可能間隔時(shí)間太短,請(qǐng)求還沒(méi)有完成,導(dǎo)致獲取不到發(fā)出的請(qǐng)求,需要加一定的延時(shí);
6、由于自己的一時(shí)疏忽導(dǎo)致書(shū)寫(xiě)錯(cuò)誤,或一些細(xì)節(jié)的錯(cuò)誤,自己檢查不出來(lái)時(shí)可以讓小伙伴幫忙檢查下也許就可快速找到問(wèn)題所在(如body中沒(méi)有加{});
(3)建議:
覆蓋業(yè)務(wù)流程case:
1、接口文檔的內(nèi)容比較散,但是也是有關(guān)聯(lián)的,在拿到接口文檔時(shí),不要急于開(kāi)始寫(xiě) case,先將文檔通讀一遍,有一個(gè)大致的熟悉和了解;
2、然后根據(jù)需求和文檔結(jié)合,將散亂的接口串聯(lián)起來(lái),尤其是有上下依賴(lài)關(guān)系的,如果有必要可以自己簡(jiǎn)單畫(huà)一張流程圖,將整個(gè)業(yè)務(wù)劃分為幾個(gè)流程,這樣可以方便我們?cè)偃フ覍?duì)應(yīng)接口,做到不是看著接口寫(xiě) case,受接口支配,而是看著流程找自己想要的接口,覆蓋全面,事半功倍;
3、可以根據(jù)自己列出的幾個(gè)流程先在jmeter新建幾個(gè)對(duì)應(yīng)的線(xiàn)程組,然后只需將對(duì)應(yīng)的接口添加進(jìn)去即可,快捷、清晰、有秩序;
4、在寫(xiě)完一個(gè)流程的case后,還需要在對(duì)一遍接口文檔,防止丟落;
校驗(yàn)異常case:
1、要根據(jù)需求和接口文檔required項(xiàng)找出那些是必傳項(xiàng),每項(xiàng)的類(lèi)型,驗(yàn)證缺失、非法等異常;
2、不必要將每項(xiàng)的各種異常全都驗(yàn)證一遍,尤其是走同一套邏輯的操作,例如新建和編輯,可以挑一些在新建時(shí)驗(yàn)證,挑一些在編輯時(shí)驗(yàn)證;這樣既可以覆蓋全面,又可以節(jié)約時(shí)間和成本;
3、若某個(gè)接口的必選項(xiàng)包含在URL中,可以選擇性進(jìn)行異常測(cè)試,不驗(yàn)證也可
其他:
1、可以在每個(gè)線(xiàn)程組下添加一個(gè)結(jié)果樹(shù),這樣方便我們查看相應(yīng)的case,避免其他的結(jié)果干擾;
2、不要直接從結(jié)果樹(shù)的響應(yīng)數(shù)據(jù)中直接copy,會(huì)存在特殊字符,導(dǎo)致報(bào)錯(cuò);(可以將其裝換為text,copy到j(luò)son格式化工具中https://www.bejson.com,點(diǎn)擊校驗(yàn),在copy或?qū)φ眨?/p>
3、運(yùn)行時(shí)要注意把不想運(yùn)行的case全部禁用,以防發(fā)生干擾;
4、接口文檔不一定全面,當(dāng)寫(xiě)case的時(shí)候發(fā)現(xiàn)想實(shí)現(xiàn)的流程沒(méi)有給出相應(yīng)的接口時(shí),需要跟開(kāi)發(fā)確認(rèn)并添加;
5、結(jié)果為pass的不一定沒(méi)問(wèn)題,要結(jié)合實(shí)際情況判斷,例如:在有關(guān)排序的case中,要注意可能因?yàn)檫\(yùn)行時(shí)間太快,導(dǎo)致排序出錯(cuò),但數(shù)組中數(shù)據(jù)依舊包含在預(yù)期結(jié)果中;
6、當(dāng)接口文檔或?qū)嶋H結(jié)果與預(yù)期不符時(shí),有時(shí)是開(kāi)發(fā)根據(jù)實(shí)際開(kāi)發(fā)情況做的處理與我們的預(yù)期有一些出入,需要與開(kāi)發(fā)溝通,靈活解決,不必一成不變。