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