一個(gè)項(xiàng)目有多少接口 后端開(kāi)發(fā)完接口才給出接口文檔,合理嗎?你怎么看?
后端開(kāi)發(fā)完接口才給出接口文檔,合理嗎?你怎么看?一個(gè)非常好的問(wèn)題。我是一個(gè)web應(yīng)用程序架構(gòu)師,多年來(lái)一直致力于回答這個(gè)問(wèn)題。歡迎跟我來(lái)了解更多。后端提供接口文檔為時(shí)已晚,這是合理和不合理的。根據(jù)具體
后端開(kāi)發(fā)完接口才給出接口文檔,合理嗎?你怎么看?
一個(gè)非常好的問(wèn)題。我是一個(gè)web應(yīng)用程序架構(gòu)師,多年來(lái)一直致力于回答這個(gè)問(wèn)題。歡迎跟我來(lái)了解更多。
后端提供接口文檔為時(shí)已晚,這是合理和不合理的。根據(jù)具體情況,總有解決辦法。讓我談?wù)勎业挠^點(diǎn)。
不合理:成熟的技術(shù)團(tuán)隊(duì)重視功能設(shè)計(jì),在編寫(xiě)代碼之前有完整的技術(shù)文檔和功能定義。即使在TDD測(cè)試驅(qū)動(dòng)的開(kāi)發(fā)模式下,測(cè)試數(shù)據(jù)已經(jīng)準(zhǔn)備好了,那么接口邏輯就已經(jīng)確定了接口文檔是否編寫(xiě)好了,理清它們是很自然的。
-第一,主觀原因。原因是多方面的,比如趕進(jìn)度,沒(méi)有時(shí)間,不懶得寫(xiě),甚至在開(kāi)發(fā)前沒(méi)有仔細(xì)設(shè)計(jì),在做的時(shí)候也有變化。真的沒(méi)有好辦法。
-客觀原因:需求在變化,功能在變化,接口也在變化。所以,如果你寫(xiě)了一個(gè)文件,它的自然更新和維護(hù)?天哪?
有解決方案嗎?建議嘗試:[1]swagger接口文檔,將文檔集成到代碼中,集成維護(hù)文檔和修改代碼,在修改代碼邏輯的同時(shí)方便修改文檔描述。
2、郵遞員界面測(cè)試工具,導(dǎo)入導(dǎo)出JSON文件,高效的團(tuán)隊(duì)合作。Postman支持各種請(qǐng)求方法和配置環(huán)境變量,對(duì)返回的結(jié)果進(jìn)行測(cè)試和驗(yàn)證,支持批量自動(dòng)操作,可與自動(dòng)構(gòu)建系統(tǒng)集成。
Service層和Dao層真的有必要每個(gè)類(lèi)都加上接口嗎?
這主要取決于您的項(xiàng)目:
例如,如果項(xiàng)目中使用hibernate,以后可能會(huì)切換到mybatis,那么Dao需要使用該接口。這不會(huì)影響上層代碼的更改。
另一個(gè)例子是,項(xiàng)目是一個(gè)單一的應(yīng)用程序。任何代碼修改都需要重新編譯整個(gè)項(xiàng)目,因此不需要接口。如果項(xiàng)目是由模塊編譯和部署的,那么可以使用接口解耦。假設(shè)修改了Dao,只需要重新編譯和部署Dao模塊,而不影響上層模塊。
此外,如果項(xiàng)目團(tuán)隊(duì)中有許多新手,簡(jiǎn)單的代碼結(jié)構(gòu)可能更合適。復(fù)雜項(xiàng)目結(jié)構(gòu)的學(xué)習(xí)成本較高。
如果工程進(jìn)度非常緊迫,我們可以用簡(jiǎn)單粗暴的方式用經(jīng)濟(jì)成本來(lái)說(shuō)明原因。
使用接口的成本是不使用接口的成本(包括后續(xù)維護(hù)成本)。
如果項(xiàng)目變化很大,部署了模塊,項(xiàng)目不急,使用接口的成本比不使用接口的成本低,雖然早期不使用接口似乎更簡(jiǎn)單;相反,不使用接口的成本低,而且連框架都不能用~
畢竟工具是提高效率的,那你為什么不能和自己相處呢
Python如何實(shí)現(xiàn)對(duì)系統(tǒng)的API接口功能實(shí)現(xiàn)自動(dòng)化測(cè)試?
根據(jù)課題的描述,課題要解決的主要問(wèn)題是:如何基于復(fù)雜場(chǎng)景(多接口耦合)進(jìn)行接口自動(dòng)測(cè)試。
以上最佳實(shí)踐也是很多洞,涉水而出。我嘗試了很多方法,甚至開(kāi)發(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)景都可以通過(guò)“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)入和用例編寫(xiě)。建議將關(guān)鍵字方法作為庫(kù)導(dǎo)入后,每個(gè)關(guān)鍵字在自然語(yǔ)言中映射一次,方便業(yè)務(wù)測(cè)試人員使用。
Robot框架還支持?jǐn)?shù)據(jù)驅(qū)動(dòng)。你可以了解它。