QTP之对测试用例的自动化过程的分解
第一部分:自動(dòng)化一個(gè)測(cè)試用例
當(dāng)你要開(kāi)始自動(dòng)化一個(gè)測(cè)試用例的時(shí)候,有一些重要的事情需要完成。當(dāng)你完成所有這些事情的時(shí)候,測(cè)試腳本的自動(dòng)化也隨之完成。
在這里,我們將首先在大部分的自動(dòng)化測(cè)試用例里找出所有通用的任務(wù)。
讓我們用一個(gè)例子(GmailLogin)來(lái)理解前面所說(shuō)的內(nèi)容
為了自動(dòng)化Gmail Login,你需要寫一些代碼來(lái)做以下的事情:
- 打開(kāi)Gmail Url
- 輸入正確的用戶名和密碼
- 點(diǎn)擊登錄按鈕
通過(guò)下面的圖讓我們更加詳細(xì)的理解這一點(diǎn):
?
任務(wù)1 - 識(shí)別對(duì)象
?
- 在你對(duì)任何對(duì)象做操作之前,你需要唯一地識(shí)別這個(gè)對(duì)象。比如,在你輸入Email之前,你應(yīng)該知道在Gmail Login界面上的2個(gè)輸入框那個(gè)是Email。一旦你正確的識(shí)別出email,你就可以在Email里輸入正確的數(shù)據(jù)
- 每個(gè)控件都有它自己的唯一屬性集,用它們,在同一個(gè)頁(yè)面你就可以與其它的控件做區(qū)分。例如,Gmail的的登錄按鈕包含了文本'Sign in',用這個(gè)文本就可以明顯與其它的按鈕做出區(qū)分
- 因此,識(shí)別一個(gè)對(duì)象,你要找出這個(gè)對(duì)象的唯一識(shí)別屬性
任務(wù)2 - 在對(duì)象上執(zhí)行操作
?
- 一旦你唯一的識(shí)別一個(gè)對(duì)象,那么下一步將是對(duì)這個(gè)對(duì)象的一些操作
- 你所執(zhí)行的操作依賴對(duì)象的類型,不同類型的對(duì)象包含不同的操作
- 比如:對(duì)于按鈕和鏈接,你可以做點(diǎn)擊操作。對(duì)于一個(gè)輸入框,你能執(zhí)行Set或者Type操作。類似的,對(duì)于每個(gè)對(duì)象都有自己的操作集合
?
任務(wù)3 - 數(shù)據(jù)處理
- 數(shù)據(jù)處理也是在對(duì)象上執(zhí)行操作的一部分
- 對(duì)于像輸入框的控件,你需要執(zhí)行輸入一些數(shù)據(jù)的操作
?
任務(wù)4 - 合并所有單獨(dú)的操作
- 為了創(chuàng)建一個(gè)測(cè)試腳本,你需要合并單獨(dú)的操作在一起,然后執(zhí)行它們
- 比如:Gmail的登錄部分將有以下的操作
- op1: 打開(kāi)Gmail URL
- op2: 輸入用戶名
- op3: 輸入密碼
- op4: 點(diǎn)擊登錄按鈕
- 您能以Action或者Function的形式合并所有單獨(dú)的操作
- 因此一個(gè)Action或者Function是一個(gè)操作集合,這些操作集合合并成一個(gè)業(yè)務(wù)邏輯流(比如Login, Logout, Search)
?
任務(wù)5 - 重用和不重用的函數(shù)
- 在你的測(cè)試腳本里有一些函數(shù),一些是只能用一次,而其他的函數(shù)可以用多次
- 只能用一次的Actions是不可重用的Actions,可以用多次的Actions是可重用的Actions
- 例子:考慮以下的3個(gè)測(cè)試用例
- ?上圖,你注意到函數(shù)Gmail_Login和Gmail_Logout是被用了多次。因此,這些都是可重用的函數(shù),其它都是非可重用的函數(shù)。
一個(gè)簡(jiǎn)單測(cè)試腳本的結(jié)構(gòu)
?
?以上我們已經(jīng)列出了你需要執(zhí)行測(cè)試腳本的通用任務(wù)
- 識(shí)別唯一的對(duì)象
- 在對(duì)象上執(zhí)行操作
- 只要需要就要執(zhí)行數(shù)據(jù)處理操作
- 創(chuàng)建重用和非重用的的Action(Function)
?
第二部分:QTP怎樣自動(dòng)化測(cè)試用例
?
?
- 在第一部分,你看到為了創(chuàng)建一個(gè)測(cè)試腳本你需要完成的通用任務(wù)
- 在這個(gè)部分,你將看到QTP怎么樣協(xié)助我們來(lái)完成這些任務(wù)
- QTP有不同的功能和機(jī)制來(lái)幫助你完成這些任務(wù)
- 讓我們看下每個(gè)任務(wù)以及對(duì)應(yīng)QTP的功能
?
識(shí)別和存儲(chǔ)對(duì)象
QTP提供一個(gè)唯一的機(jī)制,使用它,你能找出對(duì)象的唯一識(shí)別屬性。這個(gè)機(jī)制叫做Object Spy。QTP也提供一個(gè)叫做Object Repository的倉(cāng)庫(kù),可以存儲(chǔ)一些對(duì)象以及他們的屬性
在對(duì)象上執(zhí)行操作
QTP有一系列預(yù)定義函數(shù)庫(kù),他們包含了不同對(duì)象的相關(guān)所有的操作。當(dāng)你寫一個(gè)對(duì)象在你的腳本里,QTP也提供了智能提示,它可以自動(dòng)展示與這個(gè)對(duì)象相關(guān)的所有函數(shù)和屬性
?
?
?
?
執(zhí)行數(shù)據(jù)處理操作
QTP有自己內(nèi)建的機(jī)制,叫做DataTable, 你在這里保存測(cè)試數(shù)據(jù),稍后在測(cè)試腳本里使用它。QTP提供它自己的集合函數(shù),使用它們就可以從DataTable里解析數(shù)據(jù)
?
即使你的數(shù)據(jù)存儲(chǔ)在外部文件里,比如Excel或者XML文件,QTP提供許多方法,使用它們你就可以從外部數(shù)據(jù)源里獲取到數(shù)據(jù)
?
?
存儲(chǔ)重用和不重用的代碼
QTP也提供許多方法,你能用這些方法來(lái)存儲(chǔ)重用和非重用的的代碼。這些機(jī)制是:
- Action:Action是你保存代碼最通用的方法之一。你能保存重用和不重用的代碼在Actions里
- Function Library: 函數(shù)庫(kù)是又一個(gè)很流行的方法,你幾乎可以在所有的QTP項(xiàng)目里的使用它。函數(shù)庫(kù)主要用來(lái)存儲(chǔ)可重用的代碼
- Business/Scripted Components: 盡管很少用,這個(gè)也是你可以存儲(chǔ)代碼的地方
總結(jié):
- 為了寫測(cè)試腳本,你需要知道你要做的一些通用任務(wù)是:
- 識(shí)別和存儲(chǔ)對(duì)象
- 在對(duì)象上執(zhí)行操作
- 在腳本里處理測(cè)試數(shù)據(jù)
- 合并所有的操作形成重用&非重用的動(dòng)作
?
- 你也知道QTP怎么用它的一系列功能來(lái)幫助你創(chuàng)建測(cè)試腳本:
- Object Spy和對(duì)象庫(kù)
- 內(nèi)建的函數(shù)庫(kù)
- DataTable和相關(guān)的方法
- Actions,函數(shù)庫(kù)和組件
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/testermark/p/3542671.html
總結(jié)
以上是生活随笔為你收集整理的QTP之对测试用例的自动化过程的分解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 使用java spring开发ckedi
- 下一篇: MVC3 - 控制器