Robot Framework + Selenium2Library自動化測試系列(7) - 設置項目結(jié)構2 - 添加變量

打開Pages -> Login.html -> Login to hrsystem,第6步是等待5秒鐘?,F(xiàn)在老板來了,說你急啥?5秒鐘太短了,你讓它等最少10秒。好,那你就得把所有5改成10。如果你有很多文件很多函數(shù)呢?一個一個改明顯不現(xiàn)實,更何況如果函數(shù)眾多,很可能我們要改的就成幾何級網(wǎng)上走了,估計改完了也該下班回家了。要是能聲明一個變量就好了,這樣只改變變量的值不就成了么?之前我們?yōu)楹瘮?shù)聲明過參數(shù),同樣,我們也可以用Python定義的方法來聲明變量。

和函數(shù)一樣,變量也是可以聲明在資源文件下來統(tǒng)一管理。右鍵點擊項目名稱 -> New Directory,新建一個文件夾叫ObjRepository。右鍵點擊文件夾ObjRepository -> New Resources創(chuàng)建個也叫Login.html的資源文件。注意,現(xiàn)在我們有兩個叫Login.html的資源文件,一個是Pages下的,負責管理登錄模塊所需要的函數(shù),一個是ObjRepository下的,負責管理登錄模塊所需要的變量,請注意區(qū)分一下。

Login to hrsystem函數(shù)中和登錄模塊相關的變量包括這么幾個:員工代號文本框(第3行),密碼文本框(第4行),登錄確認按鈕(第5行),總共3個,導航欄上的Home按鈕算主頁模塊(Home)的,我先不把它算進去。我給它們一個個創(chuàng)建變量,以第3行的員工代號文本框為例,右鍵點擊ObjRepository -> Login.html -> New Scalar,Scalar代表變量或是參數(shù)。輸入${locEmpCode}作為名字,然后把函數(shù)login to hrsystem里面對應的只拷貝過來。為變量起名字時最好能有提示的作用,比如我用前綴“l(fā)oc”代表該變量存儲的值指的是一個網(wǎng)頁控件的位置:

因為該變量是要用在函數(shù)中的,所以在pages的Login.html里引入ObjRepository里的Login.html:

最后在login to hrsystem中用變量名代替原先的值:

當然,如果按住ctrl+alt+space組合鍵該變量名也會出現(xiàn)。所以千萬不要忘記引入資源文件,不引就不可見。用相同方法創(chuàng)建剩余的兩個變量:${locEmpPassword}和${locLoginConfirm}:

再次替換:

舉個例子,如果變量${locEmpCode}的id有變化,我們可以直接在ObjRepository的相關資源文件中修改它就可以了,不用打開一個個test case或是keyword。這下是不是容易多了?同理,我們把導航欄的Home按鈕也用變量表示,右鍵點擊ObjRepository -> New Resource新建Home.html資源文件 -> ${locHome},把Home的xpath值寫進去,然后再替換,別忘了在Pages里的Login.html中引用該資源文件:

login to hrsystem里還有網(wǎng)址,瀏覽器和等待這三個操作需要創(chuàng)建變量,這幾個變量可以放在另一個資源文件中,畢竟也不是登錄或主頁的模塊專屬。右鍵ObjRepository ->New Resource,新建資源文件Environment.html,然后新建${ApplicationURL},${sBrowser}和${ShortWait}并把值包含進去,如圖7-7:

這幾個變量名都沒有用“l(fā)oc”作為前綴,因為它們都不是某一個網(wǎng)頁控件的位置。在Pages -> Login.html中引入Environment.html,然后替換,最后如下圖:

TCLOG-1里的文件路徑前半部分也可以用變量替換,變成${PROJECT_HOME}/Test_Data/Login/TCLOG-1.xls:

執(zhí)行看看結(jié)果。我們對第一個測試用例– 網(wǎng)站登錄就暫時修改到這兒,項目結(jié)構差不多就搭好了。5個文件夾分別存放test case,函數(shù),變量,測試數(shù)據(jù)和自己編寫的程序。今后我們用Robot Framework編寫測試用例都會繼續(xù)使用這個結(jié)構,并在它的基礎上進行拓展。再完善一下RF的結(jié)構圖:

這篇文章的源代碼在[Test7](https://github.com/cslm/cslm.robotframework/tree/master/Test7)中。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容