作者:石臻臻, CSDN博客之星Top5、Kafka Contributor 、nacos Contributor、華為云 MVP ,騰訊云TVP, 滴滴Kafka技術(shù)專家 、 KnowStreaming。
KnowStreaming 是滴滴開源的Kafka運(yùn)維管控平臺, 有興趣一起參與參與開發(fā)的同學(xué),但是怕自己能力不夠的同學(xué),可以聯(lián)系我,當(dāng)你導(dǎo)師帶你參與開源! 。
在前兩篇文章中詳細(xì)給小伙伴們講解了一下接口自動化需要做哪些準(zhǔn)備工作及接口測試場景有哪些,本篇文章是最后一篇,主要分享一下接口自動化測試斷言設(shè)置思路。如果沒有好的斷言,自動化用例效果將大大打折扣,甚至是無用的,前期的很多工作都因此浪費(fèi)。這里我繼續(xù)結(jié)合自身經(jīng)驗(yàn),幫助大家梳理一下,希望有所幫助和提升。
可以看看這個 : https://www.eolink.com/文章來源地址http://www.zghlxwxcb.cn/news/detail-800604.html
PS:
接口自動化測試實(shí)踐指導(dǎo)(上):接口自動化需要做哪些準(zhǔn)備工作
接口自動化測試實(shí)踐指導(dǎo)(中):接口測試場景有哪些
1 斷言設(shè)置思路
這里總結(jié)了我在項(xiàng)目中常用的5種斷言方式,基本可能滿足90%以上的斷言場景,具體參見如下腦圖:
下面分別解釋一下圖中的五種思路:
1) 響應(yīng)碼
對于http類接口,有時(shí)開發(fā)人員只是通過設(shè)置接口響應(yīng)碼來反應(yīng)接口是否成功,這時(shí)我們的斷言就需要檢查接口響應(yīng)碼是否符合預(yù)期來判斷用例是否執(zhí)行成功。
2) 驗(yàn)證關(guān)鍵字段值
一般接口中會設(shè)有專門的字段來反饋接口成功與否的信息,比如:msg字段,經(jīng)常好多接口通過該字段反應(yīng)后臺的處理情況,如果成功會返回成功信息,失敗會返回失敗原因。這樣我們測試時(shí)可以直接校驗(yàn)該字段值來判斷用例是否執(zhí)行成功。
3) 正則匹配
當(dāng)一個接口返回內(nèi)容比較多時(shí),但有一定規(guī)則可尋,我們可以借助正則表達(dá)式來校驗(yàn)檢查。
4) 數(shù)據(jù)庫匹配核對
要對一個查詢類接口的返回?cái)?shù)據(jù)進(jìn)行驗(yàn)證,我們可以采用編寫SQL,到數(shù)據(jù)查詢結(jié)果,然后將數(shù)據(jù)庫結(jié)果與接口返回結(jié)果進(jìn)行核對檢查,這樣就能比較準(zhǔn)確的驗(yàn)證接口返回?cái)?shù)據(jù)的正確性。
5) 相關(guān)接口輔助驗(yàn)證
舉個例子,比如測試一個刪除接口,刪除了一條記錄后,如何驗(yàn)證接口真的把記錄刪除成功了,可以再調(diào)用查詢接口,檢查被刪除的記錄是否真的查詢不到了,那就說明刪除真的成功了。
2 斷言設(shè)置實(shí)戰(zhàn)演示
基于上面的斷言思路,接下來,我通過實(shí)際例子給大家做一下展示,這里通過兩種平臺工具來展示,一種是開源好用的Jmeter;另一種是之前給大家推薦的eolink平臺,eolink平臺因?yàn)橹С肿远x腳本,且平臺提供了很多內(nèi)置函數(shù),也可以像Jmeter一樣靈活實(shí)現(xiàn)上述5種斷言思路。
下圖展示一下eolink平臺的自定義腳本功能:
更多內(nèi)置函數(shù)可以參考:https://help.eolink.com/#/tutorial/?groupID=c-806&productID=23
2.1 響應(yīng)碼斷言展示
如果一個接口需要通過接口請求的響應(yīng)碼來斷言,判斷是否達(dá)到預(yù)期結(jié)果,Jmeter工具的實(shí)現(xiàn)如下:
說明:
該用例會返回400的錯誤碼,斷言設(shè)置校驗(yàn)響應(yīng)碼是否為400,如果等于400表示用例執(zhí)行成功,否則失敗。
再展示一下用eolink的實(shí)現(xiàn)效果
2.2 驗(yàn)證關(guān)鍵字段值
如果一個接口需要通過響應(yīng)結(jié)果中出現(xiàn)某個關(guān)鍵詞來判斷是否達(dá)到預(yù)期結(jié)果,可以采用驗(yàn)證關(guān)鍵字段值的斷言方式,用Jmeter工具實(shí)現(xiàn)如下:
說明:
該用例通過檢查接口返回字段msg的值是否為“您沒有登錄,請重新登錄”來判斷用例是否執(zhí)行成功。
再展示一下用eolink的實(shí)現(xiàn)效果:
2.3 正則匹配
如果一個接口返回的響應(yīng)結(jié)果是不斷變化的,但結(jié)果符合某個預(yù)期的規(guī)則,這時(shí)可以采用正則匹配的方式來斷言,用Jmeter工具實(shí)現(xiàn)如下:
說明:
通過正則匹配,除了驗(yàn)證某個符合預(yù)期規(guī)則的字段值,可以用于匹配檢查接口返回樣式,匹配成功了,說明用例執(zhí)行通過。
再展示一下用eolink的實(shí)現(xiàn)效果:
2.4 數(shù)據(jù)庫匹配核對
針對一個查詢類接口,如果想詳細(xì)驗(yàn)證返回結(jié)果的各個字段,可以采用數(shù)據(jù)庫匹配核對方式來斷言,用Jmeter工具實(shí)現(xiàn)如下:
說明:
對于一個查詢類用例,通過查詢數(shù)據(jù)庫,然后將接口返回結(jié)果與數(shù)據(jù)庫返回結(jié)果進(jìn)行對比,對比成功說明用例執(zhí)行通過。
再展示一下用eolink的實(shí)現(xiàn)效果:
執(zhí)行結(jié)果:
2.5 相關(guān)接口輔助驗(yàn)證
很多接口的驗(yàn)證需要依賴其他相關(guān)接口來判斷,實(shí)現(xiàn)起來會稍微復(fù)雜些,但斷言效果非常好,先用Jmeter工具給大家展示一下:
說明:
對于部署接口是否成功的驗(yàn)證,我這邊通過“查看部署日志”接口來輔助驗(yàn)證,當(dāng)部署日志接口中獲取到部署成功日志打印后,就說明用例執(zhí)行通過。
再展示一下用eolink的實(shí)現(xiàn)效果:
1)有兩種方式,一種步驟中添加相關(guān)接口,提取相應(yīng)內(nèi)容,后續(xù)做判斷。
2)再一種就通過JS腳本來維護(hù)多個接口,并處理接口的響應(yīng)結(jié)果,添加斷言來實(shí)現(xiàn)。
eolink平臺有著非常豐富易用的功能,幫助項(xiàng)目團(tuán)隊(duì)更好的對API接口進(jìn)行管理和測試,最后,再補(bǔ)充介紹一下該平臺對于API接口測試方面的某系高級功能:
1)與API文檔關(guān)聯(lián)與自動同步
在測試用例中,綁定API文檔之后,當(dāng)API發(fā)生變化時(shí),您可以一鍵將文檔內(nèi)容同步到測試步驟中,減輕維護(hù)用例的成本。想了解更多,可以參見:https://help.eolink.com/#/tutorial/?groupID=c-752&productID=23
2)0代碼,拖拉拽完成測試流程編排
平臺支持拖拉方式進(jìn)行復(fù)雜多接口鏈路的場景編排,減輕腳本維護(hù)工作量。更多可參見:https://help.eolink.com/#/tutorial/?groupID=c-751&productID=23
3)對數(shù)據(jù)庫進(jìn)行操作
平臺也支持在自動化用例中添加對數(shù)據(jù)庫的操作,常用于以下場景:
- 測試前對數(shù)據(jù)庫插入測試數(shù)據(jù)。
- 清除臟數(shù)據(jù)。
- 查詢 API 操作是否對數(shù)據(jù)庫生效。
…更多可參見:https://help.eolink.com/#/tutorial/?groupID=c-748&productID=23
4)定時(shí)自動測試
該平臺也支持自動化用例定時(shí)執(zhí)行,減少人為的干預(yù),進(jìn)一步降低執(zhí)行成本。想了解更多,可以參見:https://help.eolink.com/#/tutorial/?groupID=c-787&productID=23
綜合來看,eolink平臺功能十分強(qiáng)大,除了能像Jmeter一樣靈活實(shí)現(xiàn)各類接口場景的自動化測試,還有豐富的API管理、API監(jiān)控、API市場功能,幫助整個研發(fā)團(tuán)隊(duì)高效實(shí)現(xiàn)API全流程的管控,可以說是非常強(qiáng)大易用的一款A(yù)PI管理測試平臺。
至此,接口自動化測試實(shí)踐指導(dǎo)三篇文章全部完結(jié),希望測試小伙伴們看后能有所收獲,后續(xù)要多多實(shí)踐,才能很好提升自動化測試能力。文章來源:http://www.zghlxwxcb.cn/news/detail-800604.html
可以看看這個 : https://www.eolink.com/
到了這里,關(guān)于接口自動化測試實(shí)踐指導(dǎo)(下):接口自動化測試斷言設(shè)置思路的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!