Robot Framework原理精講
Robot Framework是一款python編寫的功能自動(dòng)化測試框架。具備良好的可擴(kuò)展性,支持關(guān)鍵字驅(qū)動(dòng),可以同時(shí)測試多種類型的客戶端或者接口,可以進(jìn)行分布式測試執(zhí)行。
官網(wǎng):http://robotframework.org
RF框架是基于python 的,所以一定要有python環(huán)境。robotframework 本質(zhì)就是python的一個(gè)模塊,安裝它的命令是:
pip install robotframework
談到RF就要介紹一下Robot framework-ride, 它是一個(gè)圖形界面的用于創(chuàng)建、組織、運(yùn)行測試的軟件。Ride也是一個(gè)Python的模塊,安裝它的命令是:
pip install robotframework-ride
從RIDEv1.7.3.1開始支持python3(兼容Python2.7 和>=3.6)。Ride并不是RF的核心模塊,但是使用Ride,因?yàn)樗押玫腢I設(shè)計(jì),提高了用戶的體驗(yàn)和用例的編寫效率。下圖1是RideUI頁面,而圖2是與圖1對應(yīng)的RF的腳本頁面。
????????????????????????????????????????????????????????????????????????????????????????????? 圖1.Ride UI頁面
?????????????????????????????????????????????????????????????????????????????????????????????? 圖2.RF的腳本頁面
用過RF的同學(xué)都深有體會(huì),RF真是無所不能,可以做web自動(dòng)化測試、移動(dòng)端自動(dòng)化測試、windows自動(dòng)化測試,接口自動(dòng)化測試,全面覆蓋測試領(lǐng)域。在這里我就重點(diǎn)解析一下RF的無所不能。它之所以讓大家感覺到無所不能,是因?yàn)樵谶@個(gè)框架中我們可以方便的使用各種擴(kuò)展類庫。想使用Robotframework實(shí)現(xiàn)不同的功能,那么就要先安裝與其功能對應(yīng)的類庫并導(dǎo)入使用類庫。擴(kuò)展庫的安裝方法與安裝python模塊一樣,使用pip命令即可。例如安裝selenium擴(kuò)展庫的命令如下:pip install robotframework-seleniumlibrary。
安裝成功后,在[PYTHON目錄]\Lib\site-packages\SeleniumLibrary目錄下可以找到擴(kuò)展庫。然后我們就可以在RF中引入SeleniumLibrary進(jìn)行web相關(guān)的自動(dòng)化測試了,做web自動(dòng)化測試并不是RF的api實(shí)現(xiàn)的,而是RF借用selenium的api實(shí)現(xiàn)的。同理,我們可以使用appiumlibrary做Android和iOS測試,其本質(zhì)使用的是appium;使用HTTP library做http請求發(fā)送和解析測試,其本質(zhì)使用requests模塊。使用autoitlibrary做Windows的GUI測試,其本質(zhì)使用AutoIt??傊甊F就是一個(gè)基礎(chǔ)框架,提供用例管理,用例運(yùn)行以及生成測試報(bào)告等測試的基礎(chǔ)功能,然后你想做哪方面的測試就需要安裝對應(yīng)的python模塊,而我們的RF本身并不提供例如web測試、移動(dòng)測試和接口測試的功能。
使用RF確實(shí)可以大幅度地提升自動(dòng)化測試效率,但是對于測試小白來講我真心不建議大家從RF開始上手自動(dòng)化測試,因?yàn)檫@個(gè)框架的封裝,使得大家在完全不需要編碼的前提下,就能夠完成基礎(chǔ)的自動(dòng)化測試工作,而目前編碼是測試人員的剛需,自動(dòng)化測試又是測試人員提升編碼的最佳實(shí)踐,所以大家上手自動(dòng)化測試還是先從Selenium或者appium入門,待編碼技能成熟后再使用RF也為時(shí)不晚。