python編程 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ù)題主的描述,題主主要想解決的問(wèn)題是:如何基于復(fù)雜場(chǎng)景(多接口耦合)開(kāi)展接口自動(dòng)化測(cè)試。最佳實(shí)踐:Python Robot Framew
Python如何實(shí)現(xiàn)對(duì)系統(tǒng)的API接口功能實(shí)現(xiàn)自動(dòng)化測(cè)試?
根據(jù)題主的描述,題主主要想解決的問(wèn)題是:如何基于復(fù)雜場(chǎng)景(多接口耦合)開(kāi)展接口自動(dòng)化測(cè)試。
最佳實(shí)踐:Python Robot Framework。
上面的最佳實(shí)踐也是走了很多坑,蹚出來(lái)的。曾嘗試過(guò)很多方式,甚至還開(kāi)發(fā)過(guò)基于關(guān)鍵字驅(qū)動(dòng)的自動(dòng)化測(cè)試框架。先說(shuō)說(shuō)基于場(chǎng)景的自動(dòng)化有哪些難點(diǎn),為什么最終選擇Python Robot Framework。
痛點(diǎn):
- 接口與接口的耦合,使得A接口的輸入依賴a接口的輸入,環(huán)環(huán)相套。(Mock的方式此處不討論)。
- 復(fù)雜場(chǎng)景的自動(dòng)化用例冗長(zhǎng)、調(diào)試、維護(hù)成本高。維護(hù)成本高的自動(dòng)化持續(xù)性很差,大多半途而廢。
- 自動(dòng)化用例開(kāi)發(fā)對(duì)編碼有一定的要求,不適應(yīng)不具備編碼能力的人進(jìn)行自動(dòng)化用例開(kāi)發(fā)、維護(hù)。
解決思路
借鑒關(guān)鍵字驅(qū)動(dòng)測(cè)試思想,把接口請(qǐng)求發(fā)送、響應(yīng)校驗(yàn)、響應(yīng)內(nèi)容返回,三部分封裝成"請(qǐng)求校驗(yàn)"關(guān)鍵字。
同時(shí)再封裝"內(nèi)容提取"關(guān)鍵字——提取接口響應(yīng)體特定數(shù)據(jù)。這樣就可以獲取上一個(gè)接口返回中的特定數(shù)據(jù)作為下一個(gè)接口的輸入?yún)?shù)。
如此。任何場(chǎng)景都可以通過(guò)"請(qǐng)求校驗(yàn)"關(guān)鍵字 "內(nèi)容提取"關(guān)鍵字 "請(qǐng)求校驗(yàn)"關(guān)鍵字 …
如何落地
這里就需要考慮選擇哪些方法和工具的問(wèn)題了,首先關(guān)鍵字方法的實(shí)現(xiàn)通過(guò)Python基于測(cè)試庫(kù)架構(gòu)框架的思想開(kāi)發(fā)相關(guān)關(guān)鍵字方法。Robot Framework工具核心思想就是關(guān)鍵字驅(qū)動(dòng),使用其Ride進(jìn)行關(guān)鍵字庫(kù)、資源導(dǎo)入、用例編寫。這里建議在將關(guān)鍵字方法作為庫(kù)導(dǎo)入后,用自然語(yǔ)言對(duì)每個(gè)關(guān)鍵字做一次映射,這樣便于業(yè)務(wù)測(cè)試人員使用。
Robot Framework 同樣支持?jǐn)?shù)據(jù)驅(qū)動(dòng),可以了解一下。