1. 程式人生 > >RobotFramework框架系列 – 介紹篇

RobotFramework框架系列 – 介紹篇

RobotFramework是一個基於Python語言的,可擴充套件的關鍵字驅動的自動化測試框架,用於驗收驅動的測試(ATDD)

Robotframework除了自帶的庫之外有很多擴充套件的庫,這些庫可以在Robotframework官網裡找到http://robotframework.org/#Libraries

你也可以到github搜尋,肯定有所收穫。

為何使用RobotFramework

  • 表格的方式建立測試用例

  • 建立high-level的可重用的關鍵字

  • 強大易讀的html格式的報告及log,精確到你每個步驟的時間點

  • 各平臺通用,包括windows,mac,linux

  • 提供簡單建立自定義庫的方式,可以使用自帶API,使用python或java語言實現自定義庫

  • 提供命令列執行介面,和方便的xml報告輸出,方便整合到CI中,比如jenkins

  • 提供豐富的擴充套件庫,比如網頁測試的Selenium,Java GUI,Ssh 。。。

  • 雖然是關鍵字驅動的框架,但是同樣不可或缺的也要支援資料驅動的測試【Data-Driven Test】

  • 提供內建的變數,適用不同的測試環境

  • 提供強大的標籤功能,來歸類測試執行,在測試執行時可以選擇不同的Tag或tag組合進行測試執行

  • 提供測試用例和測試套件級別的Setup和tearDown。而且可以全域性,可以區域性覆蓋,非常方便。

  • 模組化體系結構支援建立測試,即使是具有多種不同介面的應用程式。
  • 支援亂序執行,可以多樣化執行策略
  • 支援報告合併,以便讓你可以多機執行,然後合併報告
  • 全域性測試超時時間設定,區域性可以覆蓋全域性的設定非常方便,不會測試卡殼

測試框架結構

測試用例大概就是如下這樣子的

*** Settings ***

Test Setup MetaSetup

Test Teardown Close All Browsers #關閉所有瀏覽器

Test Timeout 6 minutes

Resource MetaPortalBusiness.robot

*** Test Cases ***

1. Verify Portal Login Success

[Tags] META

Open chrome browser ${WEB_HOST}

Input username ${CS_NAME}

Input password ${CS_PWD}

Login button

2. Verify Portal Login And Video

[Tags] META

Login normal

Wait switch to video

Verify has video

測試結果:

其他Python環境的安裝方式:

Jython,用java做庫的方式需要這種,首先安裝Jython java -jar jython_installer-<version>.jar.,,安裝後把jython加入PATH環境變數中

jython -m ensurepip
jython -m pip install robotframework

IronPython

.Net platform可以和c#或.net語言溝通的API,僅僅支援IronPython2.7

ipy -X:Frames -m ensurepip
ipy -X:Frames -m pip install robotframework

PyPy下安裝

pypy -m ensurepip
pypy3 -m ensurepip

pypy -m pip install robotframework

pypy3 -m pip install robotframework

安裝方式:

# Install the latest version
pip install robotframework
# Upgrade to the latest version
pip install --upgrade robotframework
# Install a specific version
pip install robotframework==2.9.2
# Install separately downloaded package (no network connection needed)
pip install robotframework-3.0.tar.gz
# Uninstall
pip uninstall robotframework
# Install 3.0 beta 1
pip install robotframework==3.0b1


# Upgrade to the latest version even if it is a pre-release
pip install --pre --upgrade robotframework

驗證安裝

rebot --version有正確版本號輸出

執行:

命令列語法格式:

robot [options] data_sources
python|jython|ipy -m robot [options] data_sources
python|jython|ipy path/to/robot/ [options] data_sources
java -jar robotframework.jar [options] data_sources

RFT3.0以前的使用pybot,jybot,ipybot來執行,執行方式類似

比如我們的測試基於

pybot --variable MUT1:XXX --include=TAGGS -d testreport_Dir TestDir

如果想執行某一些測試,可以指定檔案或目錄執行如下:

robot tests.robot
robot path/to/my_tests/
robot c:\robot\tests.robot

也可以同時執行多個檔案或目錄,也支援萬用字元執行

robot my_tests.robot your_tests.robot
robot --name Example path/to/tests/pattern_*.robot

相關推薦

RobotFramework框架系列介紹

RobotFramework是一個基於Python語言的,可擴充套件的關鍵字驅動的自動化測試框架,用於驗收驅動的測試(ATDD) Robotframework除了自帶的庫之外有很多擴充套件的庫,這些庫可以在Robotframework官網裡找到http://robotfra

RobotFramework框架系列 – TAG選擇執行

在測試過程中,肯定會遇到選擇測試用例的事情,所以我們將我們的測試用例打上不同的Tag,然後根據測試需要執行不同的Tag 在執行的時候我們我們的Tag支援簡單的模式匹配,也支援TAG邏輯運算,比如And,or,Not等 簡單的模式匹配有: * 可以匹配空

RobotFramework框架搭建介紹

charm 關鍵字 右鍵 bat文件 row 驅動 切換用戶 span import RF框架搭建介紹 開發平臺:ride | pycharm 註意:  想要用ride,就只能裝python2,python3到2018/8還沒支持。 ride安裝:  依賴:wxpyth

【微框架】之一:從零開始,輕鬆搞定SpringCloud微框架系列--開山

一、SpringCloud專案簡介   Spring Cloud:     微服務工具包,為開發者提供了在分散式系統的配置管理、服務發現、斷路器、智慧路由、微代理、控制匯流排等開發工具包。   Spring Boot:     旨在簡化建立產品級的 Spring

從零寫Spring註解版框架系列 IoC (2)實現 @Component、@Autowired、@Qualifier註解

本文承接了上一篇文章的思路進行程式碼實現,並搭建起一個基本可用的基於@Component、@Autowired、@Qualifier 註解的 IoC 框架。 專案 Github 地址為:https://github.com/linshenkx/winter-core 相關文章地址:從

從零寫Spring註解版框架系列 IoC (1) 框架設計

本文的註解版IoC框架跟其他手寫IoC框架的不同之處在與:在實現了 @Component 和 @Autowired 的同時還實現了@Qualifier,並解決單例模式下迴圈依賴的問題,以上3個註解的使用效果參照 Spring 。 專案 Github 地址為:https://githu

【ABP框架系列學習】介紹(1)

  0.引言 該系列博文主要在【官方文件】及【tkbSimplest】ABP框架理論研究系列博文的基礎上進行總結的,或許大家會質問,別人都已經翻譯過了,這不是多此一舉嗎?原因如下: 1.【tkbSimplest】的相關博文由於撰寫得比較早的,在參照官方文件學習的過程中,發現部分知識未能及時同步

痞子衡嵌入式:飛思卡爾i.MX RT系列微控制器介紹(3)- 命名規則

rule 成員 oom 嵌入 信息 100% 規則 控制器 今天   大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是飛思卡爾i.MX RT系列MCU的命名規則。   打開任何一款i.MX RT系列芯片的Data Sheet均可找到如下命名規則表,以i.M

axon框架系列---1、介紹

  介紹 Axon是一個輕量級框架,通過直接在架構中解決這些問題,幫助開發人員構建可伸縮和可擴充套件的應用程式。本參考指南解釋了Axon是什麼,它如何幫助您以及如何使用它。 如果您想了解有關Axon及其背景的更多資訊,請繼續閱讀Axon Framework背景。如果您渴望開始使

應用程式框架實戰十六:DDD分層架構之值物件(介紹

  前面介紹了DDD分層架構的實體,並完成了實體層超型別的開發,同時提供了驗證方面的支援。本篇將介紹另一個重要的構造塊——值物件,它是聚合中的主要成分。   如果說你已經在使用DDD分層架構,但你卻從來沒有使用過值物件,這毫不奇怪,因為多年來養成的資料建模思維已經牢牢把你禁錮,以致於你在使用面向物件方式進行

Util應用程式框架公共操作類(一):資料型別轉換公共操作類(介紹

  本系列文章將介紹一些對初學者有幫助的輔助類,這些輔助類本身並沒有什麼稀奇之處,如何能發現需要封裝它們可能更加重要,所謂授之以魚不如授之以漁,掌握封裝公共操作類的技巧才是關鍵,我會詳細說明建立這些類的動機和思考過程,以幫助初學者發現和封裝自己需要的東西。建立公共操作類的技巧,大家可以參考我的這篇文章——應用

應用程式框架實戰二十一:DDD分層架構之倉儲(介紹

  前面已經介紹過Entity Framework的工作單元和對映層超型別的封裝,從本文開始,將逐步介紹倉儲以及對查詢的擴充套件支援。 什麼是倉儲                                                     倉儲表示聚合的集合。   倉儲所表現出來的集合外觀

一、Kubernetes系列介紹

Kubernetes介紹 1.背景介紹   雲端計算飛速發展     - IaaS     - PaaS     - SaaS   Docker技術突飛猛進     - 一次構建,到處執行     - 容器的快速輕量     - 完整的生態環境 2.什麼是ku

Java+Selenium3框架設計準備1-TestNG簡單介紹

       前面文章我們執行測試用例都是在main方法下,有沒有什麼方法不需要用main方法去執行用例,這就需要單元測試框架的支援,這篇簡單介紹TestNG單元測試框架的安裝和基本使用。 1.什麼是

ABP(現代ASP.NET樣板開發框架)系列之1、ABP總體介紹

基於DDD的現代ASP.NET開發框架--ABP系列之1、ABP總體介紹 ABP是“ASP.NET Boilerplate Project (ASP.NET樣板專案)”的簡稱。 ASP.NET Boilerplate是一個用最佳實踐和流行技術開發現代WEB應用程式的新起點,它旨在成為一個通用的

【微框架】之一:從零開始,輕鬆搞定SpringCloud微服務系列--開山(spring boot 小demo)

Spring頂級框架有眾多,那麼接下的篇幅,我將重點講解SpringCloud微框架的實現 Spring 頂級專案,包含眾多,我們重點學習一下,SpringCloud專案以及SpringBoot專案 ————————————————————main———————————————————— 一

深度學習開源框架系列:基礎演算法之傅立葉變換:1:概要介紹

傅立葉變換時數字訊號處理的重要方法之一,是法國數學家傅立葉在1807年在法國科學學會上發表的一篇文章中所提出的,在文章中使用了正弦函式描述溫度分佈,而且提出了一個著名的論斷:任何連續性的週期訊號都可以由一組適當的正弦曲線組合而成。而這個論斷被當時審查論文的著名數

Java學習筆記——淺談數據結構與Java集合框架(第一、List)

技術分享 emp 鏈表 adc 下標 -c nod nal integer 橫看成嶺側成峰,遠近高低各不同。不識廬山真面目,只緣身在此山中。               ——蘇軾 這一塊兒學的是雲裏霧裏,咱們先從簡單的入手。逐漸的撥開迷霧見太陽。本次先做List集合的三

值得推薦的android開發框架簡單介紹

ron 事件 能開 android 開發人員 服務端開發 kjpush 流量 htm 一些總結出來的Android高速開發框架,所有都是開源框架,附帶項目地址,是開發學習的絕佳資料。 Direct-Load-apk項目 項目主頁地址:http://www.kymjs

【SSH2框架(理論)】--SSH2 Vs 經典三層

ext 深入 acc 而在 穩定性 沒有 實體 框架 框架圖  這幾天一直在學習使用SSH2框架。對於框架本身的使用並非非常困難。相信經過多鍛煉就行熟練的掌握框架的使用,讓我匪夷所思的是在使用框架的時候感覺非常熟悉,好像在哪