自動化測試框架搭建及開發,我是按照敏捷開發的用戶故事模式,把每個階段都拆成一個大故事,再拆分成一個個小的故事,一一實現。
用戶故事是描述對用戶有價值的功能,好的用戶故事應該包括角色、功能和商業價值三個要素:
1.角色:誰要使用這個功能。
2.功能:需要完成什么樣的功能。
3.價值:為什么需要這個功能,這個功能帶來什么樣的價值。
使用這種模式的目的:用戶故事越細,越能更好的統計每個階段的目標,完成的時間,所需要的人力,越容易控制測試開發的周期,及階段性的工作成果,若測試開發期出各種問題可以及時彌補。
以公司移動端自動化項目來介紹,如何以敏捷開發之用戶故事模式來完成測試框架搭建及開發:
一.選擇合適的框架
1.羅列出對框架的要求
1)測試對像為移動端客戶端,平臺為Android與IOS;
2)App應用類型:原生+web,其中支付會調用第三方App;
3)你會用什么語言開發,例:JAVA;
注:這個框架要滿足跨平臺,跨進程,支付混合模式,支持JAVA編程語言;
2. 要滿足1)的條件都列出,選擇最適合的框架:
如上圖最滿足條件得只有Appium了;
二.配置環境
1.安裝Appium開發環境;
2.下載找到系統,軟件,硬件都兼容的版本,否則會在版本兼容上浪費很多時間;
3.下載一個實例,調試,運行。
三.框架結構整改
下載的實例都是比簡單流程操作,易用性較差,需要改進:
1.我使用的JAVA工廠模式 ;元素定位,操作,用例,場景都是按最小單元劃分;
1)定位元素封裝為一個公共的方法;用到調用及可;
2)元素操作為最小單元:例:點擊登錄按鈕為一個方法:
3)多個方法組為一個CASE,一個方法可以被多個CASE調用;
4)一個或者多個CASE可以組合為一個場景;可也可被多個場景調用;
5)像截圖,滑屏,...公共方法都封裝起來調用執行。
2.關鍵字驅動;
1)參數屬性存放在一方法里
2)操作元素的ID,Name,Xpath,...都放在一個指定文件,在寫方法操作時在指定文件讀取,修改即可,例:元素定位變 了,修改一處可以實現多處被修改,不用一處理去修改。
3.部份數據初始或者銷毀會用到數據庫;
4.代碼結構
四.用例是否可自動化
把可以需要自動化的用例加以標識,并標識需要自動化用例的優先級,按照優先級別開發自動化CASE。
五.自動化功能分塊,以公司產品為O2O模式;
?1.可以先大至分為三大塊:用戶,商戶,流程(用戶與商戶交互);
?2.在將大類按模塊拆分成小類;
六.CASE顆粒度設計
越細越好,方便組合與拆分。
七.場景設計
1.每一個模塊,或者一個流程組合成一個場景;
2.再按大類組合一個用例集
用戶主頁:只覆蓋用戶主頁的CASE;
用戶側邊欄:用戶側邊欄CASE;
商戶功能:用戶所有CASE;
流程功能:訂單部份,用戶與商戶交互訂單流程CASE;
支付功能:所有與支付相關的CASE;
BVT腳本:覆蓋所有功能,是將以上功能組合實現;
按用戶故事劃分的好處是分開執行,也可以組合執行,各功能也可以分不同人去編寫,然后組合再一起,也利于分配和過程控制。