對(duì)于自動(dòng)化測(cè)試,原來(lái)談這方面的內(nèi)容比較少,但是現(xiàn)在我們做DevOps支撐平臺(tái)的時(shí)候,在整個(gè)持續(xù)集成和交付的過(guò)程中,有一個(gè)重要的內(nèi)容就是自動(dòng)化測(cè)試。自動(dòng)化測(cè)試的覆蓋面相當(dāng)大,其中既包括了CS,BS和移動(dòng)App的自動(dòng)化測(cè)試分類(lèi);也包括了單元測(cè)試,接口自動(dòng)化測(cè)試和UI自動(dòng)化測(cè)試的分類(lèi)。
DevOps成熟度中測(cè)試管理概述

測(cè)試管理是一個(gè)過(guò)程,通過(guò)該過(guò)程,所有和測(cè)試相關(guān)的方法,流程,人員都被定義。在產(chǎn)品投入到生產(chǎn)環(huán)境運(yùn)行之前,通過(guò)測(cè)試過(guò)程驗(yàn)證產(chǎn)品的需求,盡可能地發(fā)現(xiàn)軟件中的缺陷,從而提高軟件產(chǎn)品的質(zhì)量。測(cè)試管理分為測(cè)試分層策略,代碼質(zhì)量管理和自動(dòng)化測(cè)試三個(gè)維度進(jìn)行表達(dá)。
測(cè)試分層策略

先談下有哪些測(cè)試分類(lèi)的方法,在持續(xù)集成里面我們當(dāng)然更加會(huì)強(qiáng)調(diào)自動(dòng)化測(cè)試,因此可以理解為人工測(cè)試和自動(dòng)化測(cè)試兩類(lèi);也可以離開(kāi)為代碼級(jí)測(cè)試,接口測(cè)試和前端測(cè)試分離。也可以理解為功能測(cè)試和非功能測(cè)試兩類(lèi)。
當(dāng)然也可以看到,在微服務(wù)架構(gòu)下,我們希望我們本身的開(kāi)發(fā)也是分層的,即中臺(tái)模塊+服務(wù)接口+前臺(tái)功能,即我們通常說(shuō)的前后端分離,在這種前后端分離的情況下,可以更加方便我們進(jìn)行測(cè)試分層設(shè)計(jì)和自動(dòng)化測(cè)試。只要是厚中臺(tái)+薄前臺(tái)模式,那么就越容易實(shí)現(xiàn)測(cè)試過(guò)程的自動(dòng)化。
越是持續(xù)集成自動(dòng)化承擔(dān)越高,那么自動(dòng)化測(cè)試的比重就會(huì)越大。
可以看到首先在架構(gòu)設(shè)計(jì)上就要做到前后端分離,中臺(tái)+服務(wù)+前臺(tái),這種分離后可以更加方便后面進(jìn)行后端代碼和接口的自動(dòng)化測(cè)試工作。
可以看到在測(cè)試分層策略里面的四到五級(jí)描述里面,我們看到TDD測(cè)試驅(qū)動(dòng)開(kāi)發(fā)方面的內(nèi)容,比如先寫(xiě)測(cè)試代碼再寫(xiě)實(shí)現(xiàn)代碼或者兩者同時(shí)在進(jìn)行等。其次,我們還是要將在整個(gè)devops最佳實(shí)踐里面,不僅僅開(kāi)發(fā)過(guò)程是持續(xù)增量進(jìn)行的,對(duì)于測(cè)試過(guò)程本身也是持續(xù)增量進(jìn)行的,兩者必須匹配。
或者理想狀態(tài)應(yīng)該是沒(méi)有獨(dú)立的測(cè)試周期,開(kāi)發(fā)完成的階段往往就是測(cè)試也配套完成的時(shí)間點(diǎn)。
代碼質(zhì)量管理
是軟件研發(fā)過(guò)程中保證代碼質(zhì)量的一種機(jī)制,即在代碼變更后,需要對(duì)代碼進(jìn)行檢查,分析,并給出結(jié)論和改進(jìn)建議,對(duì)代碼質(zhì)量數(shù)據(jù)進(jìn)行管理,并可以對(duì)代碼質(zhì)量進(jìn)行追溯。主要包括了質(zhì)量規(guī)約,檢查方式,反饋處理三方面的內(nèi)容。
代碼質(zhì)量管理即我們常說(shuō)的代碼靜態(tài)檢查,其基于我們制定的代碼質(zhì)量規(guī)約進(jìn)行。質(zhì)量規(guī)約是指對(duì)軟件代碼質(zhì)量的要求和規(guī)范,其中包含了編碼規(guī)范,復(fù)雜度,覆蓋率,以及安全漏洞,合規(guī)性要求等多個(gè)方面的內(nèi)容。其中檢查方式即包括了我們傳統(tǒng)手工方面的檢查和CodeReview,也包括了運(yùn)行相關(guān)的自動(dòng)化檢查工具進(jìn)行檢查。
自動(dòng)化測(cè)試

自動(dòng)化測(cè)試是把以人為驅(qū)動(dòng)的測(cè)試行為轉(zhuǎn)化為機(jī)器執(zhí)行的一種過(guò)程,在預(yù)設(shè)條件下運(yùn)行系統(tǒng)或應(yīng)用程序,執(zhí)行測(cè)試并評(píng)估測(cè)試結(jié)果,以達(dá)到節(jié)省資源和人力,提高測(cè)試效率和準(zhǔn)確性,主要包括了自動(dòng)化設(shè)計(jì),自動(dòng)化開(kāi)發(fā),自動(dòng)化執(zhí)行和自動(dòng)化分析。
對(duì)于自動(dòng)化測(cè)試可以看到,對(duì)于服務(wù)接口和代碼級(jí)的自動(dòng)化測(cè)試相對(duì)來(lái)說(shuō)比較容易實(shí)現(xiàn),但是對(duì)于前端和UI級(jí)的自動(dòng)化測(cè)試相對(duì)來(lái)說(shuō)就比較困難些。因此對(duì)于前期實(shí)踐,我們也是建議先實(shí)現(xiàn)接口服務(wù)和代碼級(jí)的自動(dòng)化測(cè)試,再來(lái)靠前端UI的自動(dòng)化測(cè)試。
對(duì)于性能測(cè)試由于可以提前錄制腳本,相對(duì)來(lái)說(shuō)自動(dòng)化測(cè)試實(shí)現(xiàn)起來(lái)比較容易。不論是那種類(lèi)型的自動(dòng)化測(cè)試都可以看到,實(shí)際上可以看到如下幾個(gè)關(guān)鍵點(diǎn)。
- 自動(dòng)化測(cè)試代碼或腳本的編寫(xiě),可以是人工編寫(xiě),也可以通過(guò)錄制生成。
- 測(cè)試數(shù)據(jù)的產(chǎn)生問(wèn)題,參考測(cè)試管理過(guò)程域
- 自動(dòng)化測(cè)試腳本能夠重復(fù)執(zhí)行的要求,確保每次持續(xù)集成都能夠重復(fù)運(yùn)行測(cè)試腳本
到了自動(dòng)化測(cè)試的第四級(jí)開(kāi)始,可以看到增加了對(duì)獨(dú)立的自動(dòng)化測(cè)試平臺(tái)的要求,同時(shí)也增加了對(duì)測(cè)試結(jié)果分析和度量的要求,即通過(guò)測(cè)試結(jié)果的度量分析來(lái)進(jìn)一步改進(jìn)測(cè)試效率,提升代碼質(zhì)量。
自動(dòng)化測(cè)試概述
今天只談下對(duì)于常見(jiàn)的一個(gè)Web應(yīng)用的自動(dòng)化測(cè)試應(yīng)該如何去考慮。
要知道自動(dòng)化測(cè)試不是一個(gè)新鮮的東西,很早就有,只是最近幾年有了新的發(fā)展。比如在10多年前我們做每日構(gòu)建和冒煙測(cè)試,持續(xù)集成的過(guò)程中,我們就已經(jīng)在用Junit做自動(dòng)化測(cè)試,并集成到整個(gè)持續(xù)集成過(guò)程。在每日構(gòu)建完成后,自動(dòng)化運(yùn)行Junit的自動(dòng)化測(cè)試腳本并輸出冒煙測(cè)試的測(cè)試結(jié)果報(bào)告。
而在當(dāng)時(shí)如果涉及到CS應(yīng)用的自動(dòng)化測(cè)試,包括對(duì)于Web類(lèi)應(yīng)用的自動(dòng)化測(cè)試,我們采用QTP(現(xiàn)在改名為UFT)工具來(lái)做自動(dòng)化測(cè)試,但是并沒(méi)有得到廣泛的應(yīng)用,一個(gè)核心的原因就是QTP來(lái)做Web端的自動(dòng)化測(cè)試,實(shí)際上腳本錄制和代碼編寫(xiě)量都很大,而且很難對(duì)所有的測(cè)試用例做到完全覆蓋,同時(shí)即使用了QTP工具錄制和維護(hù)腳本,實(shí)際的人工測(cè)試還是不能省略,因此這些都導(dǎo)致了QTP自動(dòng)化測(cè)試并沒(méi)有大范圍推廣。
而最近幾年的發(fā)展可以看到,對(duì)于Web自動(dòng)化測(cè)試Selenium和Robot Framework逐漸成為了主流的自動(dòng)化測(cè)試框架和選擇。同時(shí)在微服務(wù)架構(gòu),前后端分層開(kāi)發(fā)推廣下,對(duì)于接口的自動(dòng)化測(cè)試也發(fā)展很快。
UFT/QTP自動(dòng)化測(cè)試工具

QTP是Quick Test Professional的簡(jiǎn)稱(chēng),是一種自動(dòng)測(cè)試工具。當(dāng)前已經(jīng)更名為UFT,即統(tǒng)一功能測(cè)試框架。使用QTP的目的是想用它來(lái)執(zhí)行重復(fù)的自動(dòng)化測(cè)試,主要是用于回歸測(cè)試和測(cè)試同一軟件的新版本。因此你在測(cè)試前要考慮好如何對(duì)應(yīng)用程序進(jìn)行測(cè)試,例如要測(cè)試哪些功能、操作步驟、輸入數(shù)據(jù)和期望的輸出數(shù)據(jù)等。
HP QuickTest Professional 提供符合所有主要應(yīng)用軟件環(huán)境的功能測(cè)試和回歸測(cè)試的自動(dòng)化。采用關(guān)鍵字驅(qū)動(dòng)的理念以簡(jiǎn)化測(cè)試用例的創(chuàng)建和維護(hù)。它讓用戶(hù)可以直接錄制屏幕上的操作流程,自動(dòng)生成功能測(cè)試或者回歸測(cè)試用例。專(zhuān)業(yè)的測(cè)試者也可以通過(guò)提供的內(nèi)置腳本和調(diào)試環(huán)境來(lái)取得對(duì)測(cè)試和對(duì)象屬性的完全控制。
以QTP為核心的自動(dòng)化測(cè)試框架優(yōu)點(diǎn)在于:適用性好,很多人都已經(jīng)會(huì)用或者至少說(shuō)可以簡(jiǎn)單應(yīng)用,腳本也簡(jiǎn)單易懂,大多數(shù)無(wú)任何代碼基礎(chǔ)的測(cè)試人員都可以加入腳本錄制和調(diào)試。然而它最大的缺點(diǎn)就是對(duì)象庫(kù),關(guān)鍵字的框架,靈活度也不高,且加上QTP在對(duì)flex等的支持上,也是讓許多人頭疼的問(wèn)題。
在原來(lái)對(duì)于編碼能力往往測(cè)試工程師都比較弱,因此對(duì)于QTP這種可以自動(dòng)錄制,自動(dòng)執(zhí)行和輸出報(bào)告完整工具應(yīng)用相當(dāng)廣泛。而現(xiàn)在的自動(dòng)化測(cè)試技術(shù)棧,不管是接口、web、移動(dòng)端,絕大多數(shù)都是基于開(kāi)源項(xiàng)目來(lái)構(gòu)建,測(cè)試人員本身的編碼能力也在加強(qiáng),特別是類(lèi)似Python等腳本語(yǔ)言的大量使用,因此現(xiàn)在實(shí)際還在采用類(lèi)似QTP商用工具的已經(jīng)越來(lái)越少。自動(dòng)化測(cè)試更多的采用類(lèi)似Selenium, Robot Framework等開(kāi)源工具進(jìn)行集成。
Selenium自動(dòng)化測(cè)試工具

Selenium是一個(gè)用于Web應(yīng)用程序測(cè)試的工具。
這個(gè)工具的主要功能包括:測(cè)試與瀏覽器的兼容性,測(cè)試你的應(yīng)用程序,看是否能夠很好得工作,在不同瀏覽器和操作系統(tǒng)之上。測(cè)試系統(tǒng)功能,創(chuàng)建回歸測(cè)試檢驗(yàn)軟件功能和用戶(hù)需求。支持自動(dòng)錄制動(dòng)作和自動(dòng)生成 .Net、JAVA、Perl等不同語(yǔ)言的測(cè)試腳本。
Selenium當(dāng)前免費(fèi),而且可以和Jenkins,Maven,TestNG等實(shí)現(xiàn)集成,同時(shí)支持多語(yǔ)言,多平臺(tái)和瀏覽器。因此當(dāng)前被使用的相當(dāng)多。
Selenium框架底層使用JavaScript模擬真實(shí)用戶(hù)對(duì)瀏覽器進(jìn)行操作。測(cè)試腳本執(zhí)行時(shí),瀏覽器自動(dòng)按照腳本代碼做出點(diǎn)擊,輸入,打開(kāi),驗(yàn)證等操作,就像真實(shí)用戶(hù)所做的一樣,從終端用戶(hù)的角度測(cè)試應(yīng)用程序。
對(duì)于Selenium,里面有一個(gè)核心組件即Browser bot,類(lèi)似于瀏覽機(jī)器人,可以執(zhí)行從測(cè)試腳本接收到的命令,自動(dòng)化的完成頁(yè)面瀏覽和各種操作,并記錄相應(yīng)的測(cè)試結(jié)果。
Selenium 是一套完整的web應(yīng)用程序測(cè)試系統(tǒng),包含了測(cè)試的錄制(selenium IDE),編寫(xiě)及運(yùn)行(Selenium Remote Control)和測(cè)試的并行處理(SeleniuBm Grid)。Selenium的核心Selenium Core基于JsUnit,完全由JavaScript編寫(xiě),因此可以用于任何支持JavaScript的瀏覽器上。Selenium可以模擬真實(shí)瀏覽器,自動(dòng)化測(cè)試工具,支持多種瀏覽器。
具體可參考:
https://selenium.dev/
http://www.selenium.org.cn/ (中文站點(diǎn))
Robot Framework

Robot Framework是一個(gè)跨平臺(tái)的通用的,與應(yīng)用程序和技術(shù)無(wú)關(guān)的測(cè)試框架。它的優(yōu)點(diǎn)是:易于擴(kuò)展,提供了簡(jiǎn)單的API,用戶(hù)可以自定義基于Python和Java的測(cè)試庫(kù)。它還提供強(qiáng)大的標(biāo)簽功能,來(lái)歸類(lèi)測(cè)試運(yùn)行,在測(cè)試運(yùn)行時(shí)可以選擇不同的Tag或tag組合進(jìn)行測(cè)試運(yùn)行。
支持報(bào)告合并,以便讓你可以多機(jī)執(zhí)行,然后合并報(bào)告,全局測(cè)試超時(shí)時(shí)間設(shè)置,局部可以覆蓋全局的設(shè)置非常方便,不會(huì)測(cè)試卡殼的等等。其主要優(yōu)點(diǎn)包括:
- 通過(guò)使用關(guān)鍵字驅(qū)動(dòng)測(cè)試(KDT)方法簡(jiǎn)化了自動(dòng)化測(cè)試過(guò)程。
- 測(cè)試數(shù)據(jù)語(yǔ)法簡(jiǎn)單易用。
- 生態(tài)系統(tǒng)豐富。由各種通用測(cè)試庫(kù)和工具組成,這些工具都是作為獨(dú)立項(xiàng)目開(kāi)發(fā)的。
- 具有高度可擴(kuò)展性。
要注意到Robot Framework本身是關(guān)鍵字驅(qū)動(dòng)的測(cè)試,庫(kù)和關(guān)鍵字就很重要,對(duì)于當(dāng)前的庫(kù)和關(guān)鍵字沒(méi)有的時(shí)候你還需要自己寫(xiě)代碼進(jìn)行擴(kuò)展。
在Robotframework當(dāng)中,由SeleniumLibrary(非robot自帶,需要安裝)庫(kù)提供對(duì)網(wǎng)頁(yè)的操作關(guān)鍵字(功能)。即Robot Framework+SeleniumLibrary結(jié)合基本就能夠完成我們需要的Web和UI自動(dòng)化測(cè)試能力。
具體可參考:
http://robotframework.org/
https://blog.csdn.net/qq_27534003/article/details/87437195
https://www.jianshu.com/p/2ebea3256e21
接口自動(dòng)化測(cè)試
對(duì)于接口自動(dòng)化測(cè)試,主要是指類(lèi)似SOAP , Http Rest等接口服務(wù)如何進(jìn)行自動(dòng)化測(cè)試。實(shí)際上在我們SOA管控平臺(tái)的開(kāi)發(fā)過(guò)程中,我們也定制化開(kāi)發(fā)了接口自動(dòng)化測(cè)試的工具,先是人工運(yùn)行一篇接口測(cè)試,這本身類(lèi)似一個(gè)腳本錄制的動(dòng)作,然后后續(xù)再根據(jù)已經(jīng)錄制的腳本批量自動(dòng)化運(yùn)行接口測(cè)試腳本并輸出結(jié)果。

Python+Request
Requests 是?Python語(yǔ)?編寫(xiě),基于urllib,采?Apache2 Licensed開(kāi)源協(xié)議的 HTTP 庫(kù)。它? urllib 更加?便,可以節(jié)約我們?量的?作,完全滿(mǎn)?HTTP測(cè)試需求。整個(gè)測(cè)試思路基本如下:
- 對(duì)于每個(gè)Http接口請(qǐng)求手工編寫(xiě)測(cè)試腳本
- 把對(duì)同一個(gè)接口的所有測(cè)試用例py腳本封裝為方法,每個(gè)接口封裝一個(gè)接口類(lèi)
- 使用Testsuite調(diào)用這些接口類(lèi),構(gòu)建測(cè)試集,或利用unittest自動(dòng)識(shí)別測(cè)試用例
- 構(gòu)建自動(dòng)化測(cè)試
- 輸出測(cè)試結(jié)果報(bào)告
可以看到要使用Python+Request一方面是要熟悉Python語(yǔ)言和Request庫(kù),一方面是需要手工編寫(xiě)測(cè)試腳本,整個(gè)代碼編寫(xiě)量仍然很大。這個(gè)方法跟采用Junit單元測(cè)試基本是差不多的。
參考:
https://www.cnblogs.com/ailiailan/p/8535293.html
https://blog.csdn.net/songlh1234/article/details/84317617
Postman

Postman一款非常流行的API調(diào)試工具。其實(shí),開(kāi)發(fā)人員用的更多。因?yàn)闇y(cè)試人員做接口測(cè)試會(huì)有更多選擇,例如Jmeter、soapUI等。不過(guò),對(duì)于開(kāi)發(fā)過(guò)程中去調(diào)試接口,Postman確實(shí)足夠的簡(jiǎn)單方便,而且功能強(qiáng)大。
Postman最早是作用chrome瀏覽器插件存在的,2018年初Chrome停止對(duì)Chrome應(yīng)用程序的支持。當(dāng)前Postman提供了獨(dú)立的安裝包,不再依賴(lài)于Chrome瀏覽器了。同時(shí)支持mac、windows和linux。
具體參考和下載:
https://learning.getpostman.com/docs/
https://www.postman.com/downloads/
JMeter
開(kāi)源測(cè)試工具Jmeter可以承擔(dān)接口請(qǐng)求、結(jié)果解析和斷言的工作,可以作為輕量級(jí)接口自動(dòng)化的實(shí)現(xiàn)手段,對(duì)于開(kāi)發(fā)能力不強(qiáng)或規(guī)模不大的團(tuán)隊(duì)也能接受。Jmeter可以在協(xié)議層實(shí)現(xiàn)基本的功能,包括接口訪(fǎng)問(wèn)、參數(shù)化構(gòu)造、返回值斷言和數(shù)據(jù)庫(kù)訪(fǎng)問(wèn),基本足夠滿(mǎn)足一個(gè)輕量級(jí)的接口自動(dòng)化框架的功能。
注意Jmeter不僅僅是用做接口自動(dòng)化測(cè)試,同時(shí)更加重要的一個(gè)功能是做接口的性能測(cè)試,我們?cè)阡浿仆瓿蒆ttp請(qǐng)求腳本后,可以對(duì)腳本的線(xiàn)程數(shù),運(yùn)行時(shí)長(zhǎng),循環(huán)數(shù)等進(jìn)行配置并執(zhí)行,執(zhí)行完成后會(huì)輸出詳細(xì)的性能測(cè)試報(bào)告。
具體參考:
https://www.cnblogs.com/rd-ddddd/p/9578242.html
基于Java+TestNG+Rest Assured進(jìn)行自動(dòng)化測(cè)試

可以看到TestNG和Rest Assured是兩個(gè)用于自動(dòng)化測(cè)試的獨(dú)立類(lèi)庫(kù),這種方法偏白盒測(cè)試,需要自己編寫(xiě)測(cè)試代碼,但是靈活性卻相當(dāng)高,同時(shí)可以和類(lèi)似Jekins工具集合,當(dāng)然也就可以和我們DevOps平臺(tái)集成。
Rest-Assured 是一個(gè)測(cè)試Restful Web Service的Java類(lèi)庫(kù),我們可以創(chuàng)建高度定制的HTTP請(qǐng)求以發(fā)送到Restful服務(wù)器。這使我們能夠測(cè)試各種各樣的請(qǐng)求組合,依次測(cè)試核心業(yè)務(wù)邏輯的不同組合。Rest-Assured庫(kù)提供了驗(yàn)證從服器收到的HTTP響應(yīng)的功能。
例如我們可以驗(yàn)證狀態(tài)碼,狀態(tài)信息,標(biāo)題甚至是響應(yīng)的正文。這使Rest-Assured成為一個(gè)非常靈活,可用于測(cè)試的Java庫(kù)。
而TestNG是一個(gè)開(kāi)源自動(dòng)化測(cè)試框架,實(shí)際上可以看到是和Junit差不多的一個(gè)自動(dòng)化測(cè)試框架,只是增加了一些新的功能和更強(qiáng)大的集成能力。其優(yōu)勢(shì)是支持依賴(lài)測(cè)試方法,并行測(cè)試,負(fù)載測(cè)試,局部故障;靈活的插件API;支持多線(xiàn)程測(cè)試。
同時(shí)TestNG不僅僅可以測(cè)試Rest接口,也可以測(cè)試標(biāo)準(zhǔn)的Java API接口方法。
具體可參考:
https://www.cnblogs.com/wade-xu/p/4229805.html
注:上面這篇文章可以看到采用TestNG實(shí)現(xiàn)接口自動(dòng)化測(cè)試,同時(shí)進(jìn)行擴(kuò)展,將測(cè)試腳本管理和測(cè)試數(shù)據(jù)管理分離。同時(shí)測(cè)試數(shù)據(jù)全部體現(xiàn)在Excel中。從Excel中讀入測(cè)試輸入,同時(shí)將測(cè)試接口輸出到Excel中。
https://my.oschina.net/u/4112294/blog/3037471
注:上面這篇文章談到TestNG和Rest Assured相結(jié)合如何進(jìn)行接口自動(dòng)化測(cè)試,同時(shí)如何和Jekins持續(xù)集成工具集成,將測(cè)試結(jié)果報(bào)告進(jìn)行輸出。
Rest Assured 自帶支持對(duì)JSON、xml的解析,同時(shí)也提供了類(lèi)似hasITems ,is,equalTo等靜態(tài)方法供使用。盡管Rest Assured 提供了校驗(yàn)方法,但是在實(shí)際API自動(dòng)化測(cè)試過(guò)程中,因?yàn)橥枰r?yàn)的字段非常多,建議還是直接先把要校驗(yàn)的JSON字段解析出來(lái),再通過(guò)TestNG提供的Assert類(lèi)進(jìn)行校驗(yàn)。
對(duì)于Rest Assured的參考網(wǎng)站如下:
http://rest-assured.io/
https://github.com/rest-assured/rest-assured
LuckyFrame開(kāi)源測(cè)試平臺(tái)

LuckyFrame測(cè)試平臺(tái)是一款免費(fèi)開(kāi)源的測(cè)試平臺(tái),最大的特點(diǎn)是全緯度覆蓋了接口自動(dòng)化、WEB UI自動(dòng)化、APP自動(dòng)化,并且支持分布式測(cè)試。既然是一個(gè)完整的測(cè)試平臺(tái),那么自然會(huì)提供測(cè)試用例管理,測(cè)試數(shù)據(jù)管理,測(cè)試執(zhí)行,質(zhì)量管理,測(cè)試結(jié)果和測(cè)試報(bào)告查看等相關(guān)的功能。這個(gè)平臺(tái)提供在線(xiàn)的Demo可以查看。
LuckyFrame自動(dòng)化測(cè)試框架分為兩個(gè)項(xiàng)目:
一個(gè)服務(wù)端項(xiàng)目(LuckyFrameWeb),一個(gè)客戶(hù)端項(xiàng)目(LuckyFrameClient),服務(wù)端項(xiàng)目主要負(fù)責(zé)自動(dòng)化過(guò)程的管理,比如用例管理、測(cè)試任務(wù)管理等等。客戶(hù)端其實(shí)就是測(cè)試執(zhí)行機(jī),主要負(fù)責(zé)測(cè)試用例以及任務(wù)的執(zhí)行。
Web項(xiàng)目主要分為系統(tǒng)管理、UTP、 質(zhì)量管理、測(cè)試工具測(cè)試環(huán)境管理等模塊。
具體演示地址:
http://www.luckyframe.cn/page/lfdemo.html
https://gitee.com/seagull1985/LuckyFrameWeb
這個(gè)平臺(tái)感覺(jué)有些思路還是可以借鑒,在前面DevOps整個(gè)子系統(tǒng)劃分的文章里面我也談到,對(duì)于測(cè)試管理既可以是一個(gè)簡(jiǎn)單的模塊放在DevOps支撐平臺(tái)里面,也可以是一個(gè)獨(dú)立的子系統(tǒng),然后再實(shí)現(xiàn)和DevOps支撐平臺(tái)的集成。
可以看到整個(gè)工具還是基本按照一個(gè)完整的測(cè)試管理平臺(tái)來(lái)實(shí)現(xiàn),覆蓋了測(cè)試計(jì)劃,測(cè)試設(shè)計(jì),測(cè)試執(zhí)行,測(cè)試報(bào)告等多個(gè)方面的內(nèi)容。同時(shí)支持Web UI自動(dòng)化測(cè)試,API接口自動(dòng)化測(cè)試,整體框架相當(dāng)也完整,但是相關(guān)諸多細(xì)節(jié)估計(jì)還需要不斷迭代完善。
Http Runner自動(dòng)化測(cè)試框架

HttpRunner 是一個(gè)基于 Python 開(kāi)發(fā)的測(cè)試框架,2018年python開(kāi)發(fā)者大會(huì)上,了解到HttpRuuner開(kāi)源自動(dòng)化測(cè)試框架,采用YAML/JSON格式管理用例,能錄制和轉(zhuǎn)換生成用例功能,充分做到用例與測(cè)試代碼分離,相比excel維護(hù)測(cè)試場(chǎng)景數(shù)據(jù)更加簡(jiǎn)潔。
HttpRunner 是一款面向 HTTP(S) 協(xié)議的通用開(kāi)源測(cè)試框架,只需編寫(xiě)維護(hù)一份 YAML/JSON 腳本,即可實(shí)現(xiàn)自動(dòng)化測(cè)試、性能測(cè)試、線(xiàn)上監(jiān)控、持續(xù)集成等多種測(cè)試需求。
為了簡(jiǎn)化測(cè)試用例的編寫(xiě)工作,HttpRunner 實(shí)現(xiàn)了測(cè)試用例生成的功能,對(duì)應(yīng)的轉(zhuǎn)換工具為一個(gè)獨(dú)立的項(xiàng)目:har2case。即通過(guò)當(dāng)前主流的抓包工具將抓取到的數(shù)據(jù)包導(dǎo)出為HAR,然后再將HAR格式轉(zhuǎn)化為YAML/JSON格式的測(cè)試用例文件。
對(duì)于HTTPrunner當(dāng)前已經(jīng)到2.0版本,但是整體感覺(jué)還不是一個(gè)完整的自動(dòng)化測(cè)試框架平臺(tái),當(dāng)前對(duì)于HTTPrunner可以應(yīng)用于一些簡(jiǎn)單的接口測(cè)試,或者是不會(huì)有大改動(dòng)的接口的回歸測(cè)試,這樣也挺方便的。但是對(duì)于一些復(fù)雜的測(cè)試不如采用Rest Assured功能強(qiáng)和靈活,畢竟Rest Assured基于Java,可以靈活進(jìn)行Java代碼腳本的擴(kuò)展。
具體參考:
https://v1.httprunner.org/