接口自動(dòng)化是怎么做的 Python如何實(shí)現(xiàn)對(duì)系統(tǒng)的API接口功能實(shí)現(xiàn)自動(dòng)化測(cè)試?
Python如何實(shí)現(xiàn)對(duì)系統(tǒng)的API接口功能實(shí)現(xiàn)自動(dòng)化測(cè)試?根據(jù)課題的描述,課題要解決的主要問題是:如何基于復(fù)雜場(chǎng)景(多接口耦合)進(jìn)行接口自動(dòng)測(cè)試。以上最佳實(shí)踐也是很多洞,涉水而出。我嘗試了很多方法,甚
Python如何實(shí)現(xiàn)對(duì)系統(tǒng)的API接口功能實(shí)現(xiàn)自動(dòng)化測(cè)試?
根據(jù)課題的描述,課題要解決的主要問題是:如何基于復(fù)雜場(chǎng)景(多接口耦合)進(jìn)行接口自動(dòng)測(cè)試。
以上最佳實(shí)踐也是很多洞,涉水而出。我嘗試了很多方法,甚至開發(fā)了一個(gè)關(guān)鍵字驅(qū)動(dòng)的自動(dòng)化測(cè)試框架。讓我們談?wù)劵趫?chǎng)景的自動(dòng)化的困難,以及為什么最終選擇Python robot框架。
參照關(guān)鍵字驅(qū)動(dòng)測(cè)試的思想,將接口請(qǐng)求發(fā)送、響應(yīng)驗(yàn)證和響應(yīng)內(nèi)容返回三部分封裝為“請(qǐng)求驗(yàn)證”關(guān)鍵字。
同時(shí)封裝“content extraction”關(guān)鍵字,提取接口響應(yīng)體的具體數(shù)據(jù)。這樣就可以得到前一個(gè)接口返回的具體數(shù)據(jù)作為下一個(gè)接口的輸入?yún)?shù)。
就是這樣。任何場(chǎng)景都可以通過“request verification”關(guān)鍵字、“content extraction”關(guān)鍵字和“request verification”關(guān)鍵字進(jìn)行驗(yàn)證
這里我們需要考慮選擇哪些方法和工具。首先,基于測(cè)試庫(kù)體系結(jié)構(gòu)框架的思想,用Python實(shí)現(xiàn)了關(guān)鍵字方法。robot框架工具的核心思想是關(guān)鍵字驅(qū)動(dòng),其主要功能是關(guān)鍵字庫(kù)、資源導(dǎo)入和用例編寫。建議將關(guān)鍵字方法作為庫(kù)導(dǎo)入后,每個(gè)關(guān)鍵字在自然語言中映射一次,方便業(yè)務(wù)測(cè)試人員使用。
Robot框架還支持?jǐn)?shù)據(jù)驅(qū)動(dòng)。你可以了解它。
大家一般用什么工具測(cè)試HTTP和json接口?
Soupui,這是最常用的接口測(cè)試工具。
在我們的日常開發(fā)過程中,大多數(shù)是兩種類型的接口:soap API和rest API。Soupui對(duì)這兩個(gè)接口都有很好的支持,而且它還支持Amazon Web服務(wù),它只出現(xiàn)在軟件的首頁(yè)上,但沒有實(shí)際使用。
事實(shí)上,許多接口測(cè)試工具都很好地支持這兩種常見接口。這里我不詳細(xì)說明具體用法。它們都是圖形界面操作。您可以根據(jù)說明一步一步地創(chuàng)建一個(gè)新接口。
其中,壓力測(cè)試非常方便,也可以根據(jù)提示逐步創(chuàng)建。最后的操作頁(yè)面是這樣的:
您可以設(shè)置:并發(fā)數(shù)、策略、壓力測(cè)試時(shí)間等
結(jié)果可以顯示:最大響應(yīng)時(shí)間、最小響應(yīng)時(shí)間、平均響應(yīng)時(shí)間、TPS等。
非常容易使用,您可以嘗試。
接口自動(dòng)化測(cè)試,數(shù)據(jù)庫(kù)表需要校驗(yàn)嗎?
視情況而定。
接口讀取數(shù)據(jù)庫(kù)操作,如get模式,即查詢、驗(yàn)證預(yù)期響應(yīng)內(nèi)容和實(shí)際響應(yīng)內(nèi)容,即驗(yàn)證數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)查詢過程,因此無需驗(yàn)證數(shù)據(jù)庫(kù)。當(dāng)然,每次執(zhí)行自動(dòng)化都需要環(huán)境初始化。在每次執(zhí)行自動(dòng)化用例之前插入自動(dòng)化測(cè)試數(shù)據(jù),執(zhí)行之后清除自動(dòng)化數(shù)據(jù)。
寫入數(shù)據(jù)庫(kù)的接口,如post或delete模式,即寫入/刪除。一般來說,除了驗(yàn)證預(yù)期的響應(yīng)結(jié)果和實(shí)際的響應(yīng)結(jié)果外,還需要驗(yàn)證數(shù)據(jù)庫(kù)是否真的進(jìn)行了相關(guān)的操作。因?yàn)榻涌诜祷氐慕Y(jié)果并不能真正反映數(shù)據(jù)是否被寫入或刪除。
通常使用SQL驗(yàn)證。當(dāng)字段較多時(shí),建議根據(jù)請(qǐng)求體封裝一個(gè)方法來實(shí)現(xiàn)拼接SQL的功能,具體如下:
然后封裝數(shù)據(jù)庫(kù)查詢方法來驗(yàn)證count的個(gè)數(shù)是否等于期望的個(gè)數(shù)。
接口自動(dòng)化測(cè)試有幾種方式?有沒有好用的自動(dòng)化框架?
很多,不是一個(gè)接一個(gè)。
結(jié)合我們自己的實(shí)踐,我們建議使用robot框架或httprunner,它們基于Python開發(fā)和開源。你可以自己選擇百度。
如果業(yè)務(wù)場(chǎng)景包含接口依賴項(xiàng),而B接口依賴于a接口的返回,建議使用robot框架和場(chǎng)景自動(dòng)化的請(qǐng)求庫(kù)結(jié)合使用,以滿足您的需要。
Robot框架采用關(guān)鍵字驅(qū)動(dòng)的測(cè)試框架,支持?jǐn)?shù)據(jù)驅(qū)動(dòng)的測(cè)試框架,既滿足單一界面的要求,又滿足場(chǎng)景的自動(dòng)測(cè)試覆蓋??梢允褂肞ython封裝請(qǐng)求發(fā)送、響應(yīng)處理關(guān)鍵字、響應(yīng)驗(yàn)證斷言關(guān)鍵字。通過關(guān)鍵字的組合,實(shí)現(xiàn)了自動(dòng)用例的編寫,開發(fā)效率高,維護(hù)成本低,降低了自動(dòng)用例編寫的難度(前提測(cè)試開發(fā)人員封裝關(guān)鍵字,業(yè)務(wù)測(cè)試編寫測(cè)試用例)。