一、概述
1、自動(dòng)化測(cè)試相對(duì)于手工測(cè)試的優(yōu)點(diǎn)
優(yōu)化測(cè)試速度:可非??焖俚倪\(yùn)行上萬(wàn)條記錄
提高準(zhǔn)確性、穩(wěn)定性:可以不為外界因素干擾,
準(zhǔn)確運(yùn)行測(cè)試用例確定性
重現(xiàn)缺陷提高工作效率:一邊運(yùn)行自動(dòng)化測(cè)試,一邊準(zhǔn)備測(cè)試報(bào)告
提高技能:可提高測(cè)試人員技能,同時(shí)提高對(duì)測(cè)試的興趣,防止對(duì)手工測(cè)試感覺(jué)枯燥
數(shù)據(jù)處理方面的優(yōu)點(diǎn)
測(cè)試數(shù)據(jù):自動(dòng)化測(cè)試工具可以根據(jù)需要,準(zhǔn)備大量的測(cè)試數(shù)據(jù)
數(shù)據(jù)處理:測(cè)試結(jié)果有時(shí)需要再進(jìn)行相應(yīng)的數(shù)據(jù)處理
用例準(zhǔn)備:可以使用相關(guān)腳本技術(shù)準(zhǔn)備大量的測(cè)試用例
2、自動(dòng)化測(cè)試解決方案概述圖

二、選用框架及理由
1、測(cè)試服務(wù)器:
Django:Web 應(yīng)用框架
?Django 是一個(gè)開(kāi)放源代碼的 Web 應(yīng)用框架,由 Python 寫(xiě)成。采用了 MVC的軟件設(shè)計(jì)模式,即模型 M,視圖 V 和控制器 C
?自助管理后臺(tái),admin interface 是 Django 里比較吸引眼球的一項(xiàng)自帶功能,讓你幾乎不用寫(xiě)一行代碼就擁有一個(gè)完整的后臺(tái)管理界面。
?強(qiáng)大的 URL 路由配置,Django 讓你可以設(shè)計(jì)出非常優(yōu)雅的 URL,在 Django里你基本可以跟丑陋的 GET 參數(shù)說(shuō)拜拜。
Python:結(jié)合 Django 快速開(kāi)發(fā) web 測(cè)試管理工作站
?開(kāi)發(fā)快,語(yǔ)言簡(jiǎn)潔,入門(mén)容易
?強(qiáng)大的支持庫(kù)
?社區(qū)活躍度高,資料豐富
Apache:部署 Django web 應(yīng)用
?穩(wěn)定性強(qiáng)
?處理高并發(fā)能力強(qiáng)
Mysql:儲(chǔ)存和管理測(cè)試用例
2、測(cè)試 PC:
Selenium:web 測(cè)試框架,驅(qū)動(dòng)游覽器執(zhí)行用例
?Selenium使用靈活,簡(jiǎn)單,寫(xiě)出的測(cè)試案例非常簡(jiǎn)潔,優(yōu)美,也易于維護(hù)。
?Selenium 支持用多種語(yǔ)言編寫(xiě)測(cè)試案例,你可以用 java,Python 等各種語(yǔ)言編寫(xiě)用例
?容易和測(cè)試平臺(tái)結(jié)合
Appium:移動(dòng)端測(cè)試框架,驅(qū)動(dòng)手機(jī)執(zhí)行用例
?包括 selenium 的所有優(yōu)點(diǎn)
支持多系統(tǒng):Android,IOS
三、自動(dòng)化階段進(jìn)程
階段一 Selenium IDE:selenium的錄制工具,通過(guò)錄制操作生成腳本

優(yōu)點(diǎn): 入門(mén)簡(jiǎn)單,安裝之后就可以使用,也能自動(dòng)生成代碼,對(duì)無(wú)代碼功底同仁不失為一個(gè)很好的學(xué)習(xí)范例
缺點(diǎn): 腳本錄制之后只能執(zhí)行一次完全相同的操作,即使是數(shù)據(jù)相同,操作完全相同也無(wú)法執(zhí)行第二次
階段二 手工編寫(xiě)硬代碼

優(yōu)點(diǎn):手工編寫(xiě)代碼較 IDE 生成代碼要靈活,可以斷言,可以任意增加刪除代碼
缺點(diǎn):相同操作代碼要重復(fù)編寫(xiě),而已每一行還很長(zhǎng)
階段三 操作方法二次封裝
優(yōu)點(diǎn):代碼量減少
缺點(diǎn):手工編寫(xiě)繁瑣,需要一定腳本基礎(chǔ)
階段四 POM(數(shù)據(jù)驅(qū)動(dòng))

從 Excel 中讀取數(shù)據(jù),代碼和數(shù)據(jù)分離
階段五 POM(頁(yè)面對(duì)象管理)

從 Excel 中讀取數(shù)據(jù),代碼和測(cè)試元素(控件)分離
階段六 關(guān)鍵字驅(qū)動(dòng)

編寫(xiě)自動(dòng)化用例時(shí)不需要任何代碼,全部用中文就可以實(shí)現(xiàn)編寫(xiě)完用例,這樣公司也不需要自動(dòng)化開(kāi)發(fā)人員來(lái)編寫(xiě)代碼,功能測(cè)試人員即可自主完成用例編寫(xiě))
階段七 自動(dòng)化管理平臺(tái)

終極形態(tài):將元素,數(shù)據(jù),用例存放到服務(wù)器數(shù)據(jù)庫(kù)中,執(zhí)行時(shí)動(dòng)態(tài)從數(shù)據(jù)為中讀取數(shù)據(jù)
元素錄入,用例管理,測(cè)試報(bào)告檢索
四、自動(dòng)化管理平臺(tái)介紹

主要模塊:
基礎(chǔ)數(shù)據(jù):控件查找方法管理,控件操作動(dòng)作管理,控件管理
項(xiàng)目用例:項(xiàng)目 - 頁(yè)面 -用例-步驟,項(xiàng)目,頁(yè)面,用例,步驟,前置用例
運(yùn)行及結(jié)果:運(yùn)行結(jié)果查看,生成腳本下載
模塊介紹:
1、控件查找方法管理:保存控件查找方法,用于與腳本自動(dòng)生成函數(shù)相匹配,此項(xiàng)內(nèi)容為測(cè)試開(kāi)發(fā)人員維護(hù),添加與修改刪除需要同步更改腳本自動(dòng)生成函數(shù)進(jìn)行匹配,一般功能性測(cè)試人員只需要進(jìn)行調(diào)用

2、控件操作動(dòng)作管理:保存控件操作動(dòng)作,用于與腳本自動(dòng)生成函數(shù)相匹配,此項(xiàng)內(nèi)容為測(cè)試開(kāi)發(fā)人員維護(hù),添加與修改刪除需要同步更改腳本自動(dòng)生成函數(shù)進(jìn)行匹配,一般功能性測(cè)試人員只需要進(jìn)行調(diào)用。基本包含了 appium 和 selenium 常見(jiàn)的操作動(dòng)作,使用中文的方式進(jìn)行展現(xiàn)。

3、控件管理:使用數(shù)據(jù)驅(qū)動(dòng)的方式,將元素實(shí)體和定義名稱進(jìn)行分離??梢院芎玫谋苊忾_(kāi)發(fā)人員更改了元素實(shí)體后需要大量更改腳本中的元素實(shí)體。同時(shí)將元素實(shí)體進(jìn)行中文命名可視化程度及記憶選擇難度大大降低。同時(shí)一個(gè)控件元素綁定兩種實(shí)體(安卓和蘋(píng)果),一個(gè)用例可以同時(shí)生成兩個(gè)系統(tǒng)的腳本。


4、項(xiàng)目 - 頁(yè)面 - 用例 - 步驟:自動(dòng)化平臺(tái)的用例管理邏輯,核心內(nèi)容。
從大到小的關(guān)聯(lián)關(guān)系分別為:項(xiàng)目 - 頁(yè)面 - 用例 - 步驟
他們的關(guān)系都是一對(duì)多的關(guān)系,也就是一個(gè)項(xiàng)目下可以有多個(gè)頁(yè)面,以此類推,最小的為步驟就是單個(gè)操作動(dòng)作

5、項(xiàng)目:用例邏輯的最高層,用于存儲(chǔ)腳本生成時(shí)的基礎(chǔ)數(shù)據(jù),如選擇運(yùn)行 appium 時(shí)執(zhí)行腳本的測(cè)試機(jī),連接數(shù)據(jù)庫(kù)的基本信息等等

6、頁(yè)面:項(xiàng)目下屬頁(yè)面,用于關(guān)聯(lián)項(xiàng)目和用例,避免所有用例都關(guān)聯(lián)到同一個(gè)項(xiàng)目下,內(nèi)容過(guò)多,同時(shí)在腳本大量生成時(shí)用于腳本分文件,目前邏輯為同一頁(yè)面下的用例生成一個(gè)腳本文件

7、用例:用于描述每個(gè)用例的測(cè)試目的及關(guān)聯(lián)每個(gè)步驟,測(cè)試概念中的 testcase

用例中內(nèi)嵌了兩個(gè)函數(shù)一個(gè)是腳本生成函數(shù)一個(gè)是運(yùn)行函數(shù)。將本套系統(tǒng)部署在服務(wù)器時(shí),可以直接調(diào)用運(yùn)行或腳本生成函數(shù)將組織好的用例進(jìn)行生成到服務(wù)器和運(yùn)行,如果在項(xiàng)目中設(shè)置 appium 的運(yùn)行地址后可以直接調(diào)到測(cè)試 PC 所連接的測(cè)試機(jī)進(jìn)行測(cè)試。

8、步驟:每個(gè) step的操作,其中的操作動(dòng)作,操作元素,定位方法都是基礎(chǔ)數(shù)據(jù)中配置好的直接進(jìn)行選取組合

9、前置用例:用例的前置步驟(用例),主要功能是在主用例前可以執(zhí)行前置用例,一般前置用例都被設(shè)置成環(huán)境清理或數(shù)據(jù)準(zhǔn)備等動(dòng)作

10、運(yùn)行結(jié)果:通過(guò)平臺(tái)運(yùn)行的用例都會(huì)生成測(cè)試結(jié)果,可以在此處進(jìn)行查看,或下載

11、腳本文件管理:通過(guò)平臺(tái)運(yùn)行或生成的腳本,都可以在此處進(jìn)行下載

五、困難和未來(lái)規(guī)劃
1、測(cè)試服務(wù)器:測(cè)試管理工作站頁(yè)面優(yōu)化(需要前端開(kāi)發(fā)工程師配合)
2、測(cè)試 pc,測(cè)試手機(jī)的擴(kuò)充和機(jī)房的搭建
3、應(yīng)用程序端測(cè)試管理工作站(exe 文件)
4、完善 ios 腳本生成
5、接口測(cè)試整合進(jìn)入平臺(tái)中