前言
換工作后,還是接手了接口自動(dòng)化的項(xiàng)目,比之前用的更加深入,同時(shí)也學(xué)習(xí)到了很多新的知識(shí)。對(duì)此想記錄下,自己的思考。
接口自動(dòng)化要做什么?
簡(jiǎn)而言之就是,對(duì)接口做一些測(cè)試,把接口當(dāng)做黑盒進(jìn)行輸出、輸出。當(dāng)然接口內(nèi)部的邏輯處理也需要考慮到。整體還是以功能測(cè)試為主。
接口自動(dòng)化的用例設(shè)計(jì)
之前我使用的是HttpRunner框架,作者對(duì)用例結(jié)構(gòu)有很清晰的定義。具體可以參考:HttpRunner 的測(cè)試用例分層機(jī)制 (適用于 2.X)
我目前的項(xiàng)目,接口是對(duì)外提供的,耦合性較高,并且安全性有比較高的需求,對(duì)此接口測(cè)試用例,我分為幾個(gè)模塊。

單接口正常
對(duì)接口第一步調(diào)試并且正常,這樣的接口就屬于單接口正常了,如果是一個(gè)模塊并且具有以下接口,登入——》查詢——》修改——》刪除,這么一個(gè)系列組合就可以封裝為一條測(cè)試用例,如果有幾個(gè)這樣的模塊,那么可以把這些模塊封裝為一整個(gè)測(cè)試用例集,作為基礎(chǔ)的冒煙測(cè)試,這樣的冒煙,也可以算是一個(gè)小場(chǎng)景了。
通用斷言
在很多大型系統(tǒng)中,因?yàn)橛需b權(quán)相關(guān)功能,很多接口都不會(huì)直接到達(dá)業(yè)務(wù)層,會(huì)在collect層中在封裝一個(gè)通用鑒權(quán)模塊來(lái)進(jìn)行處理。
任何請(qǐng)求都會(huì)經(jīng)過它的邏輯處理,只有它通過了才會(huì)下流到業(yè)務(wù)層,因此我們的接口也需要驗(yàn)證這個(gè)功能點(diǎn),由于所有的接口都要處理這樣的邏輯,索性對(duì)此進(jìn)行封裝,通過循環(huán)讀取csv中的數(shù)據(jù),根據(jù)附帶的參數(shù)不一樣,做不同的預(yù)期結(jié)果斷言。例如sign,sign_time,appid等等,若接口無(wú)此參數(shù),會(huì)直接跳過業(yè)務(wù)層,返回對(duì)應(yīng)錯(cuò)誤碼。
單接口異常
接口異常場(chǎng)景比較多,對(duì)此進(jìn)行細(xì)化,主要驗(yàn)證,輸入和輸出,考量參數(shù)的限制,邊界,等價(jià),默認(rèn),特殊,敏感,對(duì)此又可以在細(xì)分是數(shù)組,還是字符串

場(chǎng)景用例
場(chǎng)景的根本是依賴于用例的原子性,小場(chǎng)景就是小用例,應(yīng)該單獨(dú)可以存在并且運(yùn)行,多個(gè)用例可以組成測(cè)試用例集,互補(bǔ)干擾,可以運(yùn)行。
場(chǎng)景用例會(huì)有較多依賴情況,一般如果自動(dòng)化做的好,建議通過接口來(lái)創(chuàng)造需要的數(shù)據(jù),如果需要數(shù)據(jù)量特別大,通過接口創(chuàng)建不友好并且繁瑣,也可以通過數(shù)據(jù)庫(kù)批量生成。

目前的疑惑
接口自動(dòng)化用例的管理,隨著項(xiàng)目接口的增多,相關(guān)用例也同步增多,這就會(huì)讓我想到,規(guī)模龐大RF用例的歷史,那基本上維護(hù)不了了。
還有就是,接口用例,需要寫多細(xì),單接口異常情況的覆蓋度需要達(dá)到多少,很多接口可能在設(shè)計(jì)之初就不完善,對(duì)輸入沒有定義好,或者說,當(dāng)前框架流行,Spring的很多的注解,可能也會(huì)對(duì)參數(shù)做很多限制。而接口測(cè)試人員,看不到代碼,設(shè)計(jì)了很多用例,其實(shí)是無(wú)用功。所有,異常的考慮面在什么點(diǎn)。
場(chǎng)景接口測(cè)試用例,怎么編寫,期望是手工業(yè)務(wù)人員來(lái)進(jìn)行編寫,問題,手工業(yè)務(wù)人員,對(duì)接口是否了解,是否有時(shí)間來(lái)完成。編寫完成后的維護(hù)工作怎么展開。如果又接口人員編寫,那么業(yè)務(wù)熟悉度,可能不夠。
我的想法
建議從大局觀,考慮,不再區(qū)分,手工測(cè)試和接口測(cè)試人員,組成一個(gè)整體。
手工人員提供業(yè)務(wù)場(chǎng)景,接口測(cè)試人員,提供對(duì)應(yīng)的接口測(cè)試用例,共同維護(hù)。
若接口測(cè)試用例,可以提高手工業(yè)務(wù)人員效率,那么手工業(yè)務(wù)人員會(huì)有興趣學(xué)習(xí)對(duì)自己有用的東西。進(jìn)而提升用例的維護(hù)性。
同時(shí)接口測(cè)試人員,學(xué)習(xí)到了業(yè)務(wù),并且等到認(rèn)可,會(huì)更有沖勁。方便設(shè)計(jì)更加完善的用例,對(duì)整體的覆蓋度會(huì)有較大的提升。
異常場(chǎng)景的細(xì)分,根據(jù)真實(shí)項(xiàng)目情況而定,時(shí)間短就覆蓋關(guān)鍵點(diǎn)。有足夠時(shí)間,可以再細(xì)化。異常的用例,要保證,編寫后,盡量不需要改動(dòng)。可以持續(xù)穩(wěn)定的跑。目前只關(guān)注輸入/輸出就可以了。