多測師講解RF自動化測試實現流程_高級講師肖sir



1.環境搭建過程?­­整套環境需要哪些工具包,以及工具包的作用?
因為我搭建的RF框架是基於Python的,所以肯定要先安裝Python,python安裝完之后,開始安裝自動化測試框架rf3.0—在dos安裝完成后,再安裝wxpython作為GUI的圖形化工具,這個工具是用來實現我們程序的輸入、輸出代碼的圖形化,方便觀察管理。他的主要作用就是來運行ride的,一般雙擊默認安裝即可,之后還需要 安裝ride我們在RIDE上進行測試用例設計和編寫測試腳本,並執行自動化測試為了方便以后我們的使用可以創建ride的快捷方式--由於selenium2library關鍵字庫安裝需要使用第三方庫setuptools中的easy_install和pip在線安裝,所以, 需要安裝setuptools庫並升級pip,然后用pip在線安裝selenium2library關鍵字 庫。安裝完成后啟動ride導入selenium2library庫通過打開一個網頁來測試下是否搭建成功。

2.RF框架的原理?常見的功能?
rf是一個關鍵字驅動的自動化測試工具;主要框架分為三層,第一層數據層,數據層就是編寫的測試腳本,這些腳本需要安裝rf的編寫用例的原則來編寫,第二層就是rf層,它負責接收數據層的數據,同時在第三方庫中調用數據層用到的關鍵字,(其實第三方庫中的關鍵字就是python語言中的函數或者類中的方法),所以rf框架的最底層就是執行python語言,調用關鍵字其實就是制定python語言。
RF是一款功能豐富並且擴展性強的開源自動化測試框架,主要用於輪次較多的回歸測試。
框架通過關鍵字的組合形成測試邏輯,最終通過各個底層測試庫與被測系統交互,完成測試工作。RF框架為APP、Web、接口、數據庫測試等提供了標准的底層關鍵字API,測試人員只需在這些關鍵字的基礎上開發自定義腳本,即可滿足自身測試的要求。

3你們公司的自動化流程是如何展開的?
首先我們對自動化的需求進行評審,對測試的場景進行選擇,還有測試工具的選擇,之后根據評審后的需求文檔在RF­ride里進行用例的編寫,執行測試用例,對用例結果進行分析,最后做出總結報告。
1、自動化需求的評審
2、自動化場景的選擇
3、自動化工具的選擇
4、自動化腳本的實現
5、自動化腳本的執行
6、自動化腳本的分析

自動化總結報告

4什么項目適合做自動化?
項目周期長、需求穩定、前期版本穩定、在回歸測試實現自動化、測試人員必須具備自動化測試的能力、項目進度壓力不大、自動化腳本可重復使用,有自動化需求

5.常見的定位方式?詳細了解每一種定位方式?
常見的定位方式有4種,包括id、name、css、xpath這四種。
A、當頁面元素有id屬性時,id就相當於爸爸,基本上都是唯一的,所以我首選的是用id來定位。但由於現實項目中很多程序員其實寫的代碼並不規范,會缺少很多標准屬性,這時就只有選擇其他定位方法。

B、xpath或css很強悍,基本是可以解決90%的問題,一般有少數元素不好定位時,我基本上會選擇xpath定位。
C、當這四種定位方式都試過之后還是不行之后,就要仔細檢查了,另外如果是彈框定位的話,要注意查看是否為iframe彈框

6.常見的關鍵字?和自己創建的關鍵字?
有的;我編寫了2個關鍵字,自動生成郵箱,自動生成驗證碼一個是用於自動生成手機號;一個是用於自動生成密碼,主要是用來測試不同手機號不同密碼是否能注冊成功;不同手機號相同密碼是否能注冊成功,已注冊的用戶是否能再次注冊;以及注冊用戶量是否能超過一定為范圍。登錄中用戶同時在線量可以達到多少。

7.你們公司的自動化用例如何進行維護的?
定時執行跑用例從封裝的角度作答問題(參數化)

8.編寫用例中遇到過哪些定位問題?簡單的描述一下整個過程?­­依托自己的項目
印象最深的是在測登錄的時候,因為做出借項目的時候涉及到第三方資金存管,剛開始登錄成功的時候會跳出彈框,所以在寫用例的時候設計了自動點擊取消,當我要測試資金管理模塊,注冊了銀行存管賬戶並綁定了銀行卡,所以在我再去測試資金模塊的時候一直在報錯,登錄之后就無法執行下一步,后來經過仔細排查后發現這個問題,把那個點擊取消的步驟刪除后就可以正常執行了。
登錄后會跳出風險提示框,一直無法定位那個我已知悉,用了xpath等等,后來是找的上上級去定位成功的。
有的時候網絡不好,頁面跳轉的慢,以及頁面跳轉需要時間,無法定位到元素,所以用了sleep 休眠
沒有最大化窗口,定位不到被遮擋的元素5)iframe框 再進行點擊

 


9.你們公司用例是如何維護?­­封裝
我們是用封裝的方法對用例進行維護的,因為方便后期調用並維護,就像我之前做UI測試,做客戶個人中心時會涉及到多次登錄或打開網頁的操作,我們知道封裝的話一般分為三層,即元素層、流程層和案 例層,我首先是對關鍵字進行提取到元素層,關鍵字的提取的話可以運用selenium2library庫或者自己創建關鍵字進行提取,然后到流程層進行編寫,最 后運用到案例層,極大得節省了時間,並在后期調用時也不會對之前的案例產生影響。

10.你怎么保證你用例的執行准確性­­斷言
我之前主要是運用斷言來保證用例的執行准確性,我一般會找到我所寫用例獨有的元素進行斷言,比如說登錄,登錄成功后,頁面元素should contain賬戶頁面,我一般是用get title獲取title信息,所以是頁面元素should contain title進行斷言,這樣保證我是有登錄成功的。

11.結合項目講解自動化?
注意細節:1)流程上:從開始到數據庫結束
整個流程中場景不要過於單一
關鍵字的個數盡量多一點,少點重復
整個流程講解時帶上關鍵字使用上的比較
整個流程不要太順,盡量帶上一些問題的分享
自動化講解民貸天下
我之前有做過一個自動化的項目,名字叫做民貸天下,在這個項目里我負責的是我要出借和我要借款的模塊,在對需求進行評審,以及對測試的場景的工具進行選擇后,我根據評審后的需求文檔在RF-ride里進行用例的編寫,先導入Selenium2Library關鍵字庫,然后以及自己的定義的關鍵字庫(隨機生成手機號、隨機生成驗證碼、隨機生成金額,隨機生成郵箱), 為了方便后期的維護和調用,我會先對關鍵詞進行定義和封裝,對一些關鍵字進行提取,等關鍵字提取完成后,在流程層進行整個用例流程的編寫,像是在測試個人中心登錄環節時, 用open browser 打開民貸天下網頁,然后通過maximize browser window對瀏覽器進行最大化處理,避免出現頁面中元素定位后無法點擊報錯的現象,確保用例執行的准確性,click link 點擊登錄,進入到登錄界面,隨后會跳出一個登錄彈框,因為有時候用例執行太快,而網頁加載太慢會導致報錯,所以我一般都會用sleep等待2秒,確保頁面加載完成后再執行下一步。賬號和密碼都是文本輸入框,可以用input text輸入賬號和密碼,用ID進行定位,這時候我會把賬號和密碼設為變量,方便后續的賬號和密碼的測試(編寫的關鍵字:一個是用於自動生成手機號;一個是用於自動生成密碼,主要是用來測試不同手機號不同密碼是否能注冊成功;不同手機號相同密碼是否能注冊成功,已注冊的用戶是否能再次注冊;以及注冊用

戶量是否能超過一定為范圍。登錄中用戶同時在線量可以達到多少),click button 點擊登錄,一般這個時候我會用斷言保證案例層執行時候的准確性,page should contain text。
登錄后會跳出風險提示框,開始一直無法定位那個”我已知悉”,用了id,css,xpath相對路徑,后來是找的上上級才定位成功的,如果不點那個我已知悉,就無法進行任何界面的操作。因為風險提示有倒計時的閱讀時間,所以我也選擇休眠十秒,防止定位不到元素。 接下來的話是測試我要出借這個模塊出借的流程,測試點是低於起投額是否可以出借,因為之前已經對登錄流程進行了封裝,所以我直接調用就可以了,因為出借有幾個模塊,優選項目、自投樂和轉讓專區,先點擊我要出借,用xpath去定位就可以,然后點擊自投樂項目, 一直報錯,顯示元素沒有被找到,后來發現那是一個iframe框,所以我先用select frame進入彈框,用xpath點擊自投樂,用Unselect Frame 退出iframe框,選擇要出借的項目,用click element定位后點擊立即出借,隨后跳轉到出借界面,然后休眠5秒,然后同時我會用select window並get Άtle信息進行窗口間的切換,不然鼠標停留在上一個頁面,無法執行下一步操作,之后是用input text,用id定位輸入金額,為了避免頻繁輸入金額,所以在之前的時候就在pycharm里用類的方法定義了自動填寫金額的關鍵字,這邊直接調用就行了,click button點擊立即出借,之后input password輸入支付密碼,click element點擊確定出借, 這時候會出來一個alert的確定彈框,choose ok on next confirmation和confirm action 進行點擊確定,然后用alter should bepresent進行再次確定。起投額是500元,我輸入一個低於起投額的金額,輸入金額的框是文本輸入框,直接用input text 499,click buΔon點擊立即出借,最后get text 斷言一下page should contain “出借金額不能小於500”。(可寫關鍵字為:輸入不同的金額)在整個流程中所涉及到的數據庫表,用Connect To Database連接數據庫,查看出借項目產品信息有‘loan_product_informaΆon_table’(出借產品信息表)、客戶注冊時有‘loan_customer_informaΆon_table’(出借客戶信息表)、查看收益時
有‘loan_yield_staΆsΆcs_table’(出借資金收益表),查看完之后用Disconnect From Database退出數據庫。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM