| 序言:很多人都對(duì)自動(dòng)化測(cè)試框架癡迷,我曾經(jīng)也癡迷過(guò)一段時(shí)間,以前覺(jué)得自己對(duì)框架說(shuō)的頭頭是道,現(xiàn)在回過(guò)頭來(lái)看以前,說(shuō)歸說(shuō),但在如何應(yīng)用還是欠缺,這一段時(shí)間,自己經(jīng)歷了一系列框架的構(gòu)建和應(yīng)用的時(shí)期,所以,我想主要從實(shí)際原理和應(yīng)用上來(lái)說(shuō)說(shuō)測(cè)試框架,這些框架包括:關(guān)鍵字測(cè)試框架robot,基于各種語(yǔ)言的STAF框架,集成測(cè)試框架Fit(husdon),以及elipse TPTPd性能測(cè)試框架等。這不是一套工具教程,而是一套應(yīng)用的簡(jiǎn)單思想,個(gè)人難免有局限性,見(jiàn)諒。 首先,看看robot framework吧 一、robot介紹 大家上網(wǎng)查robot,相信能查到這么幾個(gè)資料; 1、robot的快速入門,就是如何簡(jiǎn)單使用robot,這是翻譯過(guò)來(lái)的教程。個(gè)人覺(jué)得,一般人拿到這個(gè)教程容易懵,因?yàn)槟闶窃诓涣私馄湓淼幕A(chǔ)上操作,所以會(huì)遇到很多問(wèn)題而無(wú)法向下進(jìn)行。 2、 robot的源碼分析,講講robot怎么一步一步工作的,現(xiàn)在robot框架不斷升級(jí),這個(gè)源碼分析教程有點(diǎn)舊了,所以代碼有些不一樣。 Robot是一個(gè)完全基于關(guān)鍵字測(cè)試驅(qū)動(dòng)的框架,它即能夠基于它的一定規(guī)則,導(dǎo)入你的測(cè)試庫(kù)(例如:其集成了selenium的測(cè)試庫(kù),即可以理解為操作web控件的測(cè)試底層庫(kù)),然后基于這些測(cè)試庫(kù),你能應(yīng)用HTML、TXT等文檔形式編寫自己的關(guān)鍵字(這些關(guān)鍵字即你的庫(kù)組成),之后,再編寫測(cè)試用例(測(cè)試用例由測(cè)試關(guān)鍵字組成)進(jìn)行測(cè)試。例如:一個(gè)簡(jiǎn)單的登陸測(cè)試由:登陸+輸入密碼+登出三個(gè)關(guān)鍵字組成,也可以由一個(gè)關(guān)鍵字登陸組成,關(guān)鍵字顆粒的大小可以自行定制。 二、robot原理 robot的基本運(yùn)作流程如下: 1、robot開(kāi)始測(cè)試是從cmd命令輸入,robot初始運(yùn)行程序接收命令字符(主要是用TXT或者HTML寫的測(cè)試用例集) 2、接收之后,robot先生成初始化全局變量配置,主要是定義一系列的字段名稱和文件名稱(例如:日志文件名稱等)(由settings.py中的類完成) 3、之后,開(kāi)始解析用例文件,生成數(shù)據(jù)對(duì)象,數(shù)據(jù)對(duì)象中包含了測(cè)試集的各種數(shù)據(jù),例如:測(cè)試用例集名稱、各個(gè)測(cè)試用例名稱、各個(gè)關(guān)鍵字名稱等。 4、將測(cè)試數(shù)據(jù)對(duì)象傳送給測(cè)試集合類處理,生成測(cè)試集suite對(duì)象. 5、之后,進(jìn)行suite中的用例測(cè)試,然后調(diào)用關(guān)鍵字,找到關(guān)鍵字對(duì)應(yīng)的庫(kù)文件,進(jìn)行操作。 6、每一個(gè)操作和結(jié)果都寫在輸出的xml文件中(有專門調(diào)用對(duì)輸出xml進(jìn)行操作的類) 7、測(cè)試完成后,調(diào)用轉(zhuǎn)換類將xml文件轉(zhuǎn)換成相應(yīng)的HTML日志報(bào)告,測(cè)試完成。 三、robot的應(yīng)用 robot的缺陷在于不夠靈活,有些地方對(duì)我們普遍不適用,所以,我們需要會(huì)將robot分解,取之我們能用的,以下提供幾個(gè)分解方式 1、robot的需要用命令行的方式去啟動(dòng)測(cè)試,我們可以更改為自行寫一個(gè)測(cè)試執(zhí)行客戶端界面,選取相應(yīng)測(cè)試用例集合,下發(fā)到robot框架的程序入口。 2、robot的用例格式需要固定,而我們很多時(shí)候都有自己的自動(dòng)化測(cè)試用例編寫規(guī)則,這樣的話,我們可以寫一個(gè)轉(zhuǎn)換器,可以將自己的測(cè)試用例解析文件解析為robot可識(shí)別的用例文件。 3、第2個(gè)的另外一種解決方法就是:做一個(gè)數(shù)據(jù)解析器,將我們的測(cè)試用例生成傳送給測(cè)試集合的數(shù)據(jù)對(duì)象的對(duì)象規(guī)范 4、Robot的日志文檔很好,如果我們有自己的關(guān)鍵字測(cè)試框架,但需要調(diào)用robot的日志api,則可以:1)因?yàn)閞obot是解析xml文件生成 Html的,我們可以調(diào)用python的xml操作庫(kù)生成符合robot的xml格式的輸出文件,然后調(diào)用robot的轉(zhuǎn)換庫(kù)生成Html即可。2)我們 可以直接重構(gòu)robot的xml輸出類,簡(jiǎn)化成我們的形式即可。 而在實(shí)際腳本的應(yīng)用好處就是 1、關(guān)鍵字思想驅(qū)動(dòng)的好處就是應(yīng)用封裝的思想,保證了上層腳本的變動(dòng)性可控,增強(qiáng)了維護(hù)性。 2、容易定位問(wèn)題,一般我們定位測(cè)試問(wèn)題,首先,是從用例—功能—單個(gè)操作。而線性腳本則是相反的,所以會(huì)不好定位。 總結(jié): 1、很多框架不一定能拿來(lái)就用,我們要做的是分析源碼,學(xué)會(huì)拆分框架,取之自己能用的,開(kāi)源的框架一般代碼結(jié)構(gòu)都挺良好,接口定義挺清楚。盡可能的不要造車的同時(shí)還要自己造輪子。 2、從robot上面,我們可以很好的學(xué)習(xí)到關(guān)鍵字測(cè)試驅(qū)動(dòng)思想和數(shù)據(jù)測(cè)試驅(qū)動(dòng)思想的應(yīng)用。 | 
|  | 
來(lái)自: 昵稱14752257 > 《robot framework》