Selenium Web Driver自動(dòng)化測(cè)試(java版)系列下半部分(36) - 用關(guān)鍵字驅(qū)動(dòng)實(shí)現(xiàn)自動(dòng)化測(cè)試框架(1) - 設(shè)計(jì)測(cè)試文件

上篇文章利用關(guān)鍵字驅(qū)動(dòng)配合POM演示了一個(gè)登錄案例,這篇我們把利用數(shù)據(jù)驅(qū)動(dòng)制作的測(cè)試框架改寫成用關(guān)鍵字驅(qū)動(dòng)制作的。首先,請(qǐng)結(jié)合以前的講解把數(shù)據(jù)驅(qū)動(dòng)版測(cè)試框架搞清楚挑社。不要怕麻煩,搞清楚后下邊理解起來就方便多了巡揍。

和數(shù)據(jù)驅(qū)動(dòng)版一樣痛阻,關(guān)鍵字驅(qū)動(dòng)版也涵蓋登錄(EmpLogin)、員工信息(Employee)腮敌、工時(shí)表(Timesheet)以及網(wǎng)上商城(OnlineStore)這四個(gè)模塊录平。出于篇幅限制,我們只改寫登錄的部分缀皱,先回顧一下登錄成功的測(cè)試用例:

1. 打開http://cslm-test.com/hrsystem/index.php斗这;
2. 輸入用戶名"1001";
3. 輸入密碼"123"啤斗;
3. 點(diǎn)擊登錄按鈕(斷言點(diǎn):home按鈕出現(xiàn)在home.php頁(yè))表箭;
4. 退出(斷言點(diǎn):登錄按鈕出現(xiàn)在index.php頁(yè))。

和數(shù)據(jù)驅(qū)動(dòng)版一樣钮莲,定位項(xiàng)目結(jié)構(gòu)時(shí)也需要四個(gè)包(部分) - com.testalliance.hrsystem.managers(測(cè)試中樞層)免钻,com.testalliance.hrsystem.objrepository(object聲明層),com.testalliance.hrsystem.pageobj(業(yè)務(wù)邏輯層)崔拥,com.testalliance.hrsystem.test(功能/應(yīng)用層)极舔。出于一些細(xì)節(jié)上的變化,負(fù)責(zé)測(cè)試用例的com.testalliance.hrsystem.tests可以不需要链瓦,一會(huì)兒就明白了拆魏。

com.testalliance.hrsystem.objrepository包里需要包含employeePage.properties和loginPage.properties兩個(gè)object文件,這點(diǎn)和數(shù)據(jù)驅(qū)動(dòng)版的一樣慈俯,不用修改:

com.testalliance.hrsystem.pageobj有一些變化渤刃。原先數(shù)據(jù)驅(qū)動(dòng)版里是loginPage.java,負(fù)責(zé)登錄模塊的各種操作贴膘,但現(xiàn)在因?yàn)橄到y(tǒng)代碼變化卖子,我們可以直接寫成Page.java,原因一會(huì)兒討論:

com.testalliance.hrsystem.managers包里也一樣刑峡,還是包含相同的三個(gè)java文件 - DriverManager.java洋闽,負(fù)責(zé)driver的聲明玄柠;EnvManager.java,負(fù)責(zé)設(shè)置測(cè)試環(huán)境诫舅;TestRunner.java羽利,負(fù)責(zé)測(cè)試框架入口:

com.testalliance.hrsystem.test也需要包含Test.java和Utility.java兩個(gè)文件,負(fù)責(zé)功能/應(yīng)用處理:

先來改Page.java骚勘。不管是哪個(gè)模塊铐伴,需要的都是那幾個(gè)操作撮奏,比如輸入俏讹、點(diǎn)擊、切換畜吊、刷新等等泽疆,所以我們直接把這些關(guān)鍵字都寫到一起:

從第76行開始就是關(guān)鍵字操作。當(dāng)然玲献,我這里寫得不全殉疼,其實(shí)操作還有很多,如果大家想到別的可以添在這里捌年。

下一步是設(shè)計(jì)測(cè)試文件瓢娜。關(guān)鍵字驅(qū)動(dòng)與數(shù)據(jù)驅(qū)動(dòng)的一個(gè)顯著不同點(diǎn)就在于測(cè)試文件,關(guān)鍵字驅(qū)動(dòng)是以操作為主體礼预,并且步驟順序必須與用例一致眠砾。那么對(duì)于第一個(gè)測(cè)試用例 - 登錄成功,我們?cè)O(shè)計(jì)的文件應(yīng)當(dāng)是這樣的:

創(chuàng)建文件之前再想一下托酸,如果登錄成功是這樣的褒颈,那第二個(gè)用例 - 員工代號(hào)或密碼錯(cuò)誤導(dǎo)致登錄失敗應(yīng)該怎么寫?是不是這樣:

你會(huì)發(fā)現(xiàn)這兩個(gè)test case前5步都是一樣的励堡,是一個(gè)完整的登錄操作谷丸,而且要知道,登錄操作這5步在大多數(shù)的測(cè)試用例中都會(huì)出現(xiàn)应结,很多功能都要依靠登錄作為第一步刨疼,如果每個(gè)用例的測(cè)試文件都重復(fù)前5步顯然太麻煩了,干脆咱們就把這5步都提取出來鹅龄,單獨(dú)放在一個(gè)文件里币狠。新建文件夾testdata.functions -> login.xlsx:

把sheet的名稱定位login。我把測(cè)試網(wǎng)頁(yè)的網(wǎng)址也寫在了文件里砾层,與代碼完全分離開漩绵。與輸入、點(diǎn)擊肛炮、切換止吐、刷新這種簡(jiǎn)單的操作不同宝踪,登錄操作屬于系統(tǒng)的功能操作,所以業(yè)內(nèi)又管這些功能操作叫做generic functions碍扔,這也是我為什么給這個(gè)文件夾起名為testdata.functions瘩燥。

同樣,退出也是generic function不同,也經(jīng)常會(huì)在測(cè)試用例中重復(fù)厉膀,所以我們也把它單獨(dú)提取出來放到另一個(gè)sheet里,:

雖然就1步二拐,但因?yàn)橹貜?fù)性高服鹅,也單獨(dú)放。接下來把sheet的名字寫到測(cè)試文件中百新,替換掉原來的步驟企软。對(duì)于登錄成功用例:

我還加了一個(gè)叫Module的新列,先不用管它饭望。對(duì)于失敗用例:

而且你還發(fā)現(xiàn)有一個(gè)叫LoginDetails的sheet仗哨,專門可以放多種測(cè)試數(shù)據(jù)。比如登錄失敗有可能是員工代號(hào)錯(cuò)誤铅辞,也有可能是密碼錯(cuò)誤厌漂,我們需要準(zhǔn)備兩組測(cè)試數(shù)據(jù):

測(cè)試文件到此準(zhǔn)備完畢,下篇我們修改測(cè)試步驟的執(zhí)行過程斟珊。再?gòu)?qiáng)調(diào)一遍苇倡,如果是個(gè)generic function,而且重復(fù)的可能性高倍宾,你可以給它單獨(dú)放到一個(gè)文件里和蚪,會(huì)省去很多麻煩菜谣。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子铡俐,更是在濱河造成了極大的恐慌捞高,老刑警劉巖谣辞,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宋距,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡埃元,警方通過查閱死者的電腦和手機(jī)涝涤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來岛杀,“玉大人阔拳,你說我怎么就攤上這事±噜停” “怎么了糊肠?”我有些...
    開封第一講書人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵辨宠,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我货裹,道長(zhǎng)嗤形,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任弧圆,我火速辦了婚禮赋兵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘搔预。我一直安慰自己霹期,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開白布斯撮。 她就那樣靜靜地躺著经伙,像睡著了一般扶叉。 火紅的嫁衣襯著肌膚如雪勿锅。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,842評(píng)論 1 290
  • 那天枣氧,我揣著相機(jī)與錄音溢十,去河邊找鬼。 笑死达吞,一個(gè)胖子當(dāng)著我的面吹牛张弛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播酪劫,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼吞鸭,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了覆糟?” 一聲冷哼從身側(cè)響起刻剥,我...
    開封第一講書人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎滩字,沒想到半個(gè)月后造虏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡麦箍,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年漓藕,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挟裂。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡享钞,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出诀蓉,到底是詐尸還是另有隱情栗竖,我是刑警寧澤寝姿,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站划滋,受9級(jí)特大地震影響饵筑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜处坪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一根资、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧同窘,春花似錦玄帕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至丧没,卻和暖如春鹰椒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背呕童。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工漆际, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人夺饲。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓奸汇,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親往声。 傳聞我的和親對(duì)象是個(gè)殘疾皇子擂找,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容