自動(dòng)化測(cè)試框架搭建及開發(fā)涯塔,我是按照敏捷開發(fā)的用戶故事模式找爱,把每個(gè)階段都拆成一個(gè)大故事作煌,再拆分成一個(gè)個(gè)小的故事掘殴,一一實(shí)現(xiàn)。
用戶故事是描述對(duì)用戶有價(jià)值的功能粟誓,好的用戶故事應(yīng)該包括角色奏寨、功能和商業(yè)價(jià)值三個(gè)要素:
1.角色:誰要使用這個(gè)功能。
2.功能:需要完成什么樣的功能鹰服。
3.價(jià)值:為什么需要這個(gè)功能病瞳,這個(gè)功能帶來什么樣的價(jià)值。
使用這種模式的目的:用戶故事越細(xì)悲酷,越能更好的統(tǒng)計(jì)每個(gè)階段的目標(biāo)套菜,完成的時(shí)間,所需要的人力设易,越容易控制測(cè)試開發(fā)的周期逗柴,及階段性的工作成果,若測(cè)試開發(fā)期出各種問題可以及時(shí)彌補(bǔ)顿肺。
以公司移動(dòng)端自動(dòng)化項(xiàng)目來介紹戏溺,如何以敏捷開發(fā)之用戶故事模式來完成測(cè)試框架搭建及開發(fā):
一.選擇合適的框架
1.羅列出對(duì)框架的要求
1)測(cè)試對(duì)像為移動(dòng)端客戶端,平臺(tái)為Android與IOS挟冠;
2)App應(yīng)用類型:原生+web,其中支付會(huì)調(diào)用第三方App;
3)你會(huì)用什么語言開發(fā)于购,例:JAVA;
注:這個(gè)框架要滿足跨平臺(tái)袍睡,跨進(jìn)程知染,支付混合模式,支持JAVA編程語言;
2. 要滿足1)的條件都列出斑胜,選擇最適合的框架:
如上圖最滿足條件得只有Appium了控淡;
二.配置環(huán)境
1.安裝Appium開發(fā)環(huán)境嫌吠;
2.下載找到系統(tǒng),軟件掺炭,硬件都兼容的版本,否則會(huì)在版本兼容上浪費(fèi)很多時(shí)間辫诅;
3.下載一個(gè)實(shí)例,調(diào)試涧狮,運(yùn)行炕矮。
三.框架結(jié)構(gòu)整改
下載的實(shí)例都是比簡(jiǎn)單流程操作,易用性較差者冤,需要改進(jìn):
1.我使用的JAVA工廠模式 肤视;元素定位,操作涉枫,用例邢滑,場(chǎng)景都是按最小單元?jiǎng)澐郑?/p>
1)定位元素封裝為一個(gè)公共的方法;用到調(diào)用及可愿汰;
2)元素操作為最小單元:例:點(diǎn)擊登錄按鈕為一個(gè)方法:
3)多個(gè)方法組為一個(gè)CASE困后,一個(gè)方法可以被多個(gè)CASE調(diào)用;
4)一個(gè)或者多個(gè)CASE可以組合為一個(gè)場(chǎng)景衬廷;可也可被多個(gè)場(chǎng)景調(diào)用摇予;
5)像截圖,滑屏,...公共方法都封裝起來調(diào)用執(zhí)行泵督。
2.關(guān)鍵字驅(qū)動(dòng)趾盐;
1)參數(shù)屬性存放在一方法里
2)操作元素的ID,Name,Xpath小腊,...都放在一個(gè)指定文件救鲤,在寫方法操作時(shí)在指定文件讀取,修改即可秩冈,例:元素定位變 了本缠,修改一處可以實(shí)現(xiàn)多處被修改,不用一處理去修改入问。
3.部份數(shù)據(jù)初始或者銷毀會(huì)用到數(shù)據(jù)庫丹锹;
4.代碼結(jié)構(gòu)
四.用例是否可自動(dòng)化
把可以需要自動(dòng)化的用例加以標(biāo)識(shí),并標(biāo)識(shí)需要自動(dòng)化用例的優(yōu)先級(jí)芬失,按照優(yōu)先級(jí)別開發(fā)自動(dòng)化CASE楣黍。
五.自動(dòng)化功能分塊,以公司產(chǎn)品為O2O模式棱烂;
?1.可以先大至分為三大塊:用戶租漂,商戶,流程(用戶與商戶交互);
?2.在將大類按模塊拆分成小類;
六.CASE顆粒度設(shè)計(jì)
越細(xì)越好哩治,方便組合與拆分秃踩。
七.場(chǎng)景設(shè)計(jì)
1.每一個(gè)模塊,或者一個(gè)流程組合成一個(gè)場(chǎng)景业筏;
2.再按大類組合一個(gè)用例集
用戶主頁:只覆蓋用戶主頁的CASE;
用戶側(cè)邊欄:用戶側(cè)邊欄CASE蒜胖;
商戶功能:用戶所有CASE消别;
流程功能:訂單部份,用戶與商戶交互訂單流程CASE台谢;
支付功能:所有與支付相關(guān)的CASE对碌;
BVT腳本:覆蓋所有功能朽们,是將以上功能組合實(shí)現(xiàn)骑脱;
按用戶故事劃分的好處是分開執(zhí)行叁丧,也可以組合執(zhí)行,各功能也可以分不同人去編寫拥娄,然后組合再一起蚊锹,也利于分配和過程控制。