python接口開發(fā) 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)景(多接口耦合)開展接口自動(dòng)化測(cè)試。最佳實(shí)踐:Python Robot Framew
Python如何實(shí)現(xiàn)對(duì)系統(tǒng)的API接口功能實(shí)現(xiàn)自動(dòng)化測(cè)試?
根據(jù)題主的描述,題主主要想解決的問題是:如何基于復(fù)雜場(chǎng)景(多接口耦合)開展接口自動(dòng)化測(cè)試。
最佳實(shí)踐:Python Robot Framework。
上面的最佳實(shí)踐也是走了很多坑,蹚出來的。曾嘗試過很多方式,甚至還開發(fā)過基于關(guān)鍵字驅(qū)動(dòng)的自動(dòng)化測(cè)試框架。先說說基于場(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)化用例開發(fā)對(duì)編碼有一定的要求,不適應(yīng)不具備編碼能力的人進(jìn)行自動(dòng)化用例開發(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)景都可以通過"請(qǐng)求校驗(yàn)"關(guān)鍵字 "內(nèi)容提取"關(guān)鍵字 "請(qǐng)求校驗(yàn)"關(guān)鍵字 …
如何落地
這里就需要考慮選擇哪些方法和工具的問題了,首先關(guān)鍵字方法的實(shí)現(xiàn)通過Python基于測(cè)試庫(kù)架構(gòu)框架的思想開發(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)入后,用自然語言對(duì)每個(gè)關(guān)鍵字做一次映射,這樣便于業(yè)務(wù)測(cè)試人員使用。
Robot Framework 同樣支持?jǐn)?shù)據(jù)驅(qū)動(dòng),可以了解一下。
近幾年熱火的Python語言,你認(rèn)為Python可以干什么?
1、web應(yīng)用開發(fā)
網(wǎng)站后端程序員:使用它單間網(wǎng)站,后臺(tái)服務(wù)比較容易維護(hù)。
類似平臺(tái)如:Gmail、Youtube、知乎、豆瓣
2、網(wǎng)絡(luò)爬蟲
爬蟲是屬于運(yùn)營(yíng)的比較多的一個(gè)場(chǎng)景吧, 爬蟲獲取或處理大量信息:批量下載美劇、運(yùn)行投資策略、爬合適房源、從各大網(wǎng)站爬取商品折扣信息,比較獲取最優(yōu)選擇;對(duì)社交網(wǎng)絡(luò)上發(fā)言進(jìn)行收集分類,生成情緒地圖,分析語言習(xí)慣;爬取網(wǎng)易云音樂某一類歌曲的所有評(píng)論,生成詞云;按條件篩選獲得豆瓣的電影書籍信息并生成表格等。
3、AI 人工智能 與機(jī)器學(xué)習(xí)
現(xiàn)在的人工智能非常的火爆,各種培訓(xùn)班都在瘋狂打廣告招生.機(jī)器學(xué)習(xí),尤其是現(xiàn)在火爆的深度學(xué)習(xí),其工具框架大都提供了Python接口。Python在科學(xué)計(jì)算領(lǐng)域一直有著較好的聲譽(yù),其簡(jiǎn)潔清晰的語法以及豐富的計(jì)算工具,深受此領(lǐng)域開發(fā)者喜愛。
4、數(shù)據(jù)分析
一般我們用爬蟲爬到了大量的數(shù)據(jù)之后,我們需要處理數(shù)據(jù)用來分析,不然爬蟲白爬了,我們最終的目的就是分析數(shù)據(jù),Python在這方面關(guān)于數(shù)據(jù)分析的庫(kù)也是非常的豐富的,各種圖形分析圖等 都可以做出來。也是非常的方便?!按髷?shù)據(jù)”分析中涉及到的分布式計(jì)算、數(shù)據(jù)可視化、數(shù)據(jù)庫(kù)操作等,Python中都有成熟的模塊可以選擇完成其功能。
5、自動(dòng)化運(yùn)維:自動(dòng)化處理大量的運(yùn)維任務(wù)
6、游戲開發(fā)者:一般是作為游戲腳本內(nèi)嵌在游戲中
7、自動(dòng)化測(cè)試:編寫為簡(jiǎn)單的實(shí)現(xiàn)腳本,運(yùn)用在Selenium/lr中,實(shí)現(xiàn)自動(dòng)化。
8、網(wǎng)站開發(fā):借助django,flask框架自己搭建網(wǎng)站。
既然Python是用C實(shí)現(xiàn)的,那為什么Python不能直接生成exe呢?
C語言其實(shí)是一種比較“古老”而且“底層”的語言。其執(zhí)行效率,僅次于匯編語言。
說其古老,是因?yàn)镃語言的出現(xiàn)很早。
雖然Fortran、Cobol語言出現(xiàn)比C語言更早,但是現(xiàn)代主流操作系統(tǒng)(Windows、Mac Os、linux、iOS、Android、Unix)全部脫胎于C語言。
說它底層,是因?yàn)镃語言設(shè)計(jì)之初就是為了同時(shí)編寫匯編語言。理論上可以全部用匯編寫。而匯編語言是執(zhí)行效率最高的語言。
所以Python用C語言寫一點(diǎn)也不奇怪。這和它能不能生成Exe一點(diǎn)關(guān)系都沒有。
Exe文件是Windows平臺(tái)的私有格式。最簡(jiǎn)單的Exe是Com可執(zhí)行文件。Exe文件實(shí)際上是一個(gè)引導(dǎo)程序 一個(gè)解釋程序組成的。
Python語言生成的代碼,只需要配以引導(dǎo)程序和解釋程序,就可以作為Exe文件執(zhí)行。
所以,Python生成Exe文件一點(diǎn)難度都沒有。只是它愿不愿意提供的問題。
為什么Python效率這么低,還這么火?
在很多時(shí)候,性能不是瓶頸。大約80%的應(yīng)用,對(duì)性能要求不高。