【Android自动化测试】Robot Framework+adb框架(四)——L2层关键字
前言
Robot Framework是一款用Python編寫的通用型測試框架,具有良好的可擴展性,支持關鍵字驅動,可以同時測試多種類型客戶端(Web,PC,移動端)或者接口,也可以進行分布式測試執行。常用于驗收測試和驗收測試驅動開發(ATDD)的自動化測試。雖然框架本身是基于Python編寫的,但也可以在Jython(Java)和IronPython(.NET)上運行,提供跨平臺支持。
Robot Framework 框架是一個通用的應用和技術的獨立框架。它有一個高度模塊化的架構,如圖所示;
Robot Framework生態系統
Robot Framework框架具有非常豐富的生態系統,它不僅具有易于使用的表格測試數據規則,可精細的控制關鍵字,支持行為驅動,提供遠程測試執行接口進行分布式測試。這些功能由各種通用測試庫,特定測試插件和工具組成。
Robot Framework框架除了自身提供了非常多的基礎數據庫功能,也支持第三方擴展庫,同時提供了非常多的內建工具,擴展接口,方便框架與其他系統進行對接。這些一起構建了一套全面且易于擴展的Robot Framework框架系統。
1.基礎庫
?Builtin:提供內置常用的關鍵字
?Dialogs:提供暫停測試執行以獲得用戶輸入的方法
?Collection:提供用于處理Python列表,字典的關鍵字
?OperatingSystem:在Robot Framework:系統中執行各種與操作系統相關的任務
?Remote:作為Robot Framework與其他測試庫之間的代理,實際運行的測試庫可以在不同機器上。
?ScreenShot:提供用于捕捉桌面 屏幕截圖的基本庫。
?String:用于生成,修改,驗證字符串的庫。
?Telnet:可以連接Telnet服務器,并在打開的連接上執行命令。
?XML:用于生成,修改和驗證XML文件的庫。
?Process:用于在系統中運行過程的庫。
?DataTime:用于日期和時間轉換的庫。
2.擴展庫
?AndroidLibrary:用于Android自動化測試的庫,它內部使用的是Calabash Android.
?AnywhereLibrary:用于測試單頁應用程序(SPA)的庫,它內部使用的是Selenium Webdriver和Appium.
?AppiumLibrary:用于Android和ios測試的庫,它內部使用的是Appium。
?ArchiveLibrary:用于處理zip和zar歸檔的庫。
?AutoItLibrary:用于Windows GUI的測試庫,它內部使用AutoIt作為驅動程序。
?DatabaseLibrary:用于數據庫測試的庫,分為Java和Python兩類庫,一般默認是基于Python的庫。
?DiffLibrary:用于兩個文件差異比較的庫。
?DjangoLibrary:Python Web框架Django的庫。
?FakerLibrary:虛擬測試數據生成器Faker的庫。
?FTPLibrary:用于Robot Framework測試和FTP服務器的庫。
?HttpLibrary.HTTP:用于使用請求進行HTTP級別測試的庫。
?iOSLibrary:用于iOS自動化測試的庫,它內部使用的是Calabash iOS.
?ImageHorizonLibrary:GUI自動化測試的,基于圖像識別的,跨平臺的純Python庫。
?MongoDBLibrary:使用PyMongo和MongoDB進行交互的庫。
?MQTTLLibrary:用于測試MQTT代理和應用程序的庫。
?Rammbock:通用網絡協議測試庫,提供簡單的方式來指定網絡數據包,并檢測發送和接受數據包的結果。
?SikuliLibrary:提供關鍵字以通過Sikulix測試用戶界面。
?Selenium2Library:使用Selenium2的Web測試庫。
?SSHLibrary:通過SSH連接啟用在遠程計算機上執行的命令,還支持使用SFTP傳輸文件。
?SwingLibrary:使用SwingGUI測試Java應用程序的庫
3.內建工具
?Rebot:基于XML輸出生成日志和報告,將多個輸出組合在一起的工具。
?Libdoc:用于為測試庫和資源文件生成關鍵字文檔的工具。
?Testdoc:基于Robot Framework測試用例生成高層次HTML文檔的工具。
?Tidy:清理和轉換Robot Framework測試數據文件格式的工具。
4.編輯器
?RIDE:獨立的Robot Framework測試數據編輯器。
?Atom Plugin:Atom編輯器中的Robot Framework插件。
?Eclipse Plugin:Eclipse IDE的Robot Framework插件。
?Gedit:Gedit的語法高亮顯示。
?Robot Plugin For Intelli IDEA:IDEA編輯器的Robot Framework插件。
?Sublime Assistant:Sublime編輯器的Robot Framework插件。
5.其他插件
?BbBot:用于將Robot Framework測試結果(即output.xml文件)序列化為SQLite數據庫的工具。
?Fixml:用于修復破壞的Robot Framework輸出文件的工具。
?Mabot:輸出手工測試與Robot Framework兼容格式的報告文件。
?Pabot:Robot Framework測試用例并行執行器。
?RFDoc:用于存儲和搜索Robot Framework測試庫和資源文件文檔的Web系統。
?Robot Corder:通過錄制用戶交互掃描Chrome瀏覽器中HTML頁面來生成Selenium IDE.
?Robot Framework Hub:輕量級Web服務器,能通過瀏覽器對Robot Framework測試資產進行訪問。
?Robot Framework Lexer:用于Pygments突出顯示Robot Framework語法。
?Robot Tool:可以與Robot Framework一起使用的支持工具的集合。
?Status Checker:驗證執行Robot Framework測試用例時預期的狀態和日志消息的工具
一、EMMC測試套件
以下是EMMC測試套件中封裝的L2層關鍵字。
L2層關鍵字.robot
*** Settings *** Resource ../L3公共層.robot*** Keywords *** 一般錄影文件列表(EMMC)${file} Normal Files EMMC[Return] ${file}事件錄影文件列表(EMMC)${file} Event Files EMMC[Return] ${file}照片文件列表(EMMC)${file} Picture Files EMMC[Return] ${file}文件拷貝到本地(EMMC)[Arguments] ${file_type} ${file} ${num} ${main_2nd}${copyfile} Copy File EMMC ${file_type} ${file} ${num} ${main_2nd}[Return] ${copyfile}二、SD_card測試套件
以下是SD_card測試套件中封裝的L2層關鍵字。
L2層關鍵字.robot
*** Settings *** Resource ../L3公共層.robot*** Keywords *** 事件錄影文件列表(SDcard)[Arguments] ${sd}${file} EventFilesSD ${sd}[Return] ${file}照片文件列表(SDcard)[Arguments] ${sd}${file} PictureFilesSD ${sd}[Return] ${file}觸發大碰撞Log 觸發大碰撞事件Cmd adb shell "am broadcast -a com.askey.dvr.eventsending.EVENT_NOTIFY_EVENT_DETECT --ei eventType 100 --el timeStamp `date +%s`000"sleep 1Cmd adb shell input keyevent tap 160 230觸發交通信號燈Cmd adb shell "am broadcast -a com.askey.dvr.eventsending.EVENT_NOTIFY_EVENT_DETECT --ei eventType 0 --el timeStamp `date +%s`000"sleep 15觸發行人穿越人行橫道Cmd adb shell "am broadcast -a com.askey.dvr.eventsending.EVENT_NOTIFY_EVENT_DETECT --ei eventType 9 --el timeStamp `date +%s`000"sleep 15觸發未在指定地點停車Cmd adb shell "am broadcast -a com.askey.dvr.eventsending.EVENT_NOTIFY_EVENT_DETECT --ei eventType 29 --el timeStamp `date +%s`000"sleep 15觸發行人未走人行橫道Cmd adb shell "am broadcast -a com.askey.dvr.eventsending.EVENT_NOTIFY_EVENT_DETECT --ei eventType 10 --el timeStamp `date +%s`000"sleep 15設置語言2[Arguments] ${cmd} ${image_name}返回錄制頁面菜單按鈕點擊第三欄點擊第二欄點擊第四欄向上滑動Cmd ${cmd}sleep 2返回按鈕${value} 截圖 ${image_name}大小斷言 ${value} 0.96設置語言1[Arguments] ${cmd} ${image_name}返回錄制頁面菜單按鈕點擊第三欄點擊第二欄點擊第四欄Cmd ${cmd}sleep 2返回按鈕${value} 截圖 ${image_name}大小斷言 ${value} 0.96進入裝置訊息返回錄制頁面菜單按鈕點擊第三欄點擊第二欄向上滑動點擊第二欄點擊第一欄屏幕關閉時間[Arguments] ${cmd} ${time}返回錄制頁面菜單按鈕點擊第三欄點擊第二欄點擊第二欄點擊第二欄Cmd adb shell input tap 90 110Cmd ${cmd}返回錄制頁面sleep ${time}${brightness} 獲取亮度急減速Should Be True 0==${brightness} 屏幕亮度值不在規定范圍內設置單位[Arguments] ${cmd} ${image_name}返回錄制頁面菜單按鈕點擊第三欄點擊第二欄點擊第三欄Cmd ${cmd}返回按鈕點擊第三欄${value} 截圖 ${image_name}大小斷言 ${value} 0.97總結
以上是生活随笔為你收集整理的【Android自动化测试】Robot Framework+adb框架(四)——L2层关键字的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html定义微调器,bootstrap4
- 下一篇: C#串口通信——协议格式