Robot Framework 教程 (3) - Resource及關鍵字 的使用

From:http://www.cnblogs.com/buaawp/p/4754399.html

Robot Framework 教程 (3) - Resource及關鍵字 的使用

在進行軟件自動化測試時,我們設計并編寫好一個測試腳本的業務邏輯之后,需要將其中的業務數據提取為變量,并對業務邏輯進行封裝。在后續的測試過程中,只需設置每次測試的測試數據,而不必更改業務邏輯。

舉個例子,我們對baidu搜索進行兼容性測試時,我們的業務邏輯是

[打開瀏覽器] - [輸入搜索內容] - [點擊搜索按鈕] - [截圖保存] - [關閉瀏覽器]

而對應的業務數據,就是我們所輸入的“搜索內容”。

在后續的測試中,我們應該將這一邏輯封裝為一個關鍵字(這里可以理解為一個自定義函數,并將搜索內容作為輸入變量)。每次測試時,只需要改變“搜索內容”這一變量即可。

1.建立資源

在導航樹中的項目節點點擊鼠標右鍵,選擇【New Resource】,打開新建Resource的對話框,填寫Resource名稱“業務關鍵字”

2.建立關鍵字

在剛剛建立的【業務關鍵字】節點點擊右鍵,選擇【New User Keyword】,建立新關鍵字“百度搜索”

3.為關鍵字添加變量

點擊【百度搜索】節點,展開編輯面板的【Settings】配置,點擊Arguments的【edit】按鈕,添加變量

按照使用說明,這里的變量使用 ${key} 的格式,多個變量之間使用 | 進行分割。這里我們演示一下多變量。使用${searchword}|${result}

4.為關鍵字設置業務邏輯
需要注意一下的是,這里的關鍵字可以理解為一個“函數”的概念,我們需要在TestCase中調用的是這個“關鍵字”。我們剛剛添加的變量是“關鍵字”的一部分,在TestCase中體現為具體的業務數據。

作為一個“函數”,除了變量外,我們還需要為之編寫業務邏輯:

對應的腳本為

復制代碼
    Open Browser    https://www.baidu.com/    ffInput Text    id=kw    ${keyword}Click button    id=suSleep    2${title}    Get TitleShould Contain    ${title}    ${result}Capture Page Screenshot    ff.pngClose Browser
復制代碼

其中${searchword}和${result}表示我們的關鍵字在被TestCase調用時,傳入的數據。而${title}則是作為一個中間過程的臨時變量進行使用。

5.為TestSuite添加Resource

與Library類似,在Resource編寫完成自后,需要在TestSuite進行 一下引用。

6.編寫TestCase

設置完Resource之后,添加一個TestCase,并在其中使用我們剛剛定義的關鍵字

7.運行測試,獲取測試結果

總結:

RobotFrame Work 中的Resource 及關鍵字給我們提供的是一種類似于“函數”概念的用戶自定義機制。我們可以將一些通用的業務過程封裝為一個關鍵字,并聲明業務中的業務數據。在編寫測試用例時,直接調用關鍵字,設置業務數據即可。而一旦業務過程發生變化,或元素定位發生變化,我們只需要更改關鍵字中的業務邏輯即可,而不必更改每個測試用例。

在使用過程中,有些驗證邏輯我們可能無法僅僅通過RobotFrame Work 的內置函數或自定義關鍵字來實現,這個時候需要我們自己編寫外部函數來進行驗證,也就是需要自定義外部的Library。下一篇文章,我們將會對用戶自定義Library進行介紹。

轉載于:https://www.cnblogs.com/keepSmile/p/7975992.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/281695.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/281695.shtml
英文地址,請注明出處:http://en.pswp.cn/news/281695.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mysql中的操作指令,MySQL中常用指令操作的介紹(代碼示例)

本篇文章給大家帶來的內容是關于MySQL中常用指令操作的介紹(代碼示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。l 創建數據庫:CREATE DATABASE table_name;l 刪除數據庫:DROP DATABASE table_na…

mt19937 -- 高質量隨機數

優點:產生速度快, 周期大 用法: #include<bits/stdc.h> using namespace std;int main() {mt19937 mt_rand(time(0));cout << mt_rand() << endl;return 0; } 轉載于:https://www.cnblogs.com/widsom/p/9935561.html

使用 AutoMapper 自動在多個數據模型間進行轉換

訪問數據庫、IPC 通信、業務模型、視圖模型……對于同一個業務的同一種數據&#xff0c;經常會使用多種數據模型工作在不同的代碼模塊中。這時它們之間的互相轉換便是大量的重復代碼了。使用 AutoMapper 便可以很方便地在不同的模型之間進行轉換而減少編寫太多的轉換代碼&#…

集合類型內建方法

一、集合類型方法方法名稱 操作 s.issubset(t)如果s是t的子集&#xff0c;則返回True&#xff0c;否則返回Falses.issuperset(t)如果s是t的超集&#xff0c;則返回True&#xff0c;否則返回Falses.union(t)返回一個新集合&#xff0c;該集合是s和t的并集s.intersection(t)返回…

Maven基礎:Maven環境搭建及基本使用(1)

1. Maven環境搭建 1.1 Maven簡介 1.2 Maven下載及環境設置 Maven下載地址&#xff1a;http://maven.apache.org/download.cgi 當前下載版本&#xff1a;apache-maven-3.5.0-bin.zip&#xff0c;解壓之后路徑 D:\Program Files\apache-maven-3.5.0 Maven環境變量設置&#xff1a…

mysql主外鍵引用關系,關于mysql:數據主/外鍵關系

我想對于那些已經開發了許多數據庫模式的人來說&#xff0c;這將是一個簡單的答案&#xff0c;但是我最近發現自己承擔了優化(或嘗試優化)數據庫模式的任務&#xff0c;并且一直在閱讀"高性能MySQL"&#xff0c;并且剩下一個關于在模式中使用或"過度使用"外…

解讀微軟開源MMLSpark:統一的大規模機器學習生態系統

AI前線導讀&#xff1a;目前&#xff0c;有很多深度學習框架支持與Spark集成&#xff0c;如Tensorflow on Spark等。然而&#xff0c;微軟開源的MMLSpark不僅集成了機器學習框架&#xff08;CNTK深度學習計算框架、LightGBM機器學習框架&#xff09;&#xff0c;還可以將這些計…

floyd判環算法(龜兔賽跑算法)

floyd判環算法&#xff08;龜兔賽跑算法&#xff09; 注意&#xff0c;這個算法是用來判斷一條鏈一條環的圖&#xff0c;環的長度或者環與鏈的交界處的&#xff0c;所以此floyd非彼floyd&#xff08;雖然都是一個人想出來的&#xff09;。 &#xff08;圖不是我的&#xff09; …

一個redis的連接庫的實現

2019獨角獸企業重金招聘Python工程師標準>>> import socketdef format_message( args):"""Create redis message:param args:Message data"""l u"*%d" % len(args)lines [l.encode(utf-8)]for arg in args:if not isinst…

matlab 邊緣檢測不閉合,Matlab多種圖像邊緣檢測方法

1、用Prewitt算子檢測圖像的邊緣I imread(bacteria.BMP);BW1 edge(I,prewitt,0.04); % 0.04為梯度閾值figure(1);imshow(I);figure(2);imshow(BW1);2、用不同σ值的LoG算子檢測圖像的邊緣I imread(bacteria.BMP);BW1 edge(I,log,0.003); % σ2imshow(BW1);titl…

實現CSS在線美化(格式化)、壓縮、加密、解密、混淆工具-toolfk程序員工具網

本文要推薦的[ToolFk]是一款程序員經常使用的線上免費測試工具箱&#xff0c;ToolFk 特色是專注于程序員日常的開發工具&#xff0c;不用安裝任何軟件&#xff0c;只要把內容貼上按一個執行按鈕,就能獲取到想要的內容結果。ToolFk還支持 BarCode條形碼在線生成、 QueryList采集…

只是他給的實在太多了!

工作幾年后&#xff0c;總是會問自己一個問題&#xff0c;工作的意義是什么&#xff1f;這個如果要在網絡上尋找答案&#xff0c;那一定是多如牛毛&#xff0c;每一個人都有一套自己的看法。在一開始出入社會工作之時&#xff0c;我并沒有意識到這個問題&#xff0c;更沒有思考…

[ci]jenkins server啟動,通過jnlp的方式啟動slave(容器模式)

jenkins server啟動,通過jnlp的方式啟動slave. java -jar jenkins.jar 配置jnlp端口--全局安全 配置云 配置項目 執行成功 轉載于:https://www.cnblogs.com/iiiiher/p/7978831.html

Oracle 中UNDO與REDO的差別具體解釋

一 為了更清楚的看出2者差別&#xff0c;請看下表&#xff1a; UNDO REDO Record ofHow to undo a changeHow to reproduce a changeUsed forRollback, Read-ConsistencyRolling forward DB ChangesStored …

php實現文件留言,PHP文件操作及實例:留言板

一、文件操作函數1.創建文件&#xff1a;touch(./xxx.php);bool touch ( string $filename [, int $time time() [, int $atime ]] )2.復制文件&#xff1a;copy(./xxx.php,./yyy.php);3.移動或重命名&#xff1a;rename(./xxx.php,./yyy.php);4.刪除文件&#xff1a;unlink(.…

WPF-11 路由事件之一

什么是路由事件&#xff1f;我們從兩個維度來理解路由事件&#xff1a;功能的角度來看&#xff0c;路由事件是一種事件類型&#xff0c;不僅僅可以在事件源上處理事件響應&#xff0c;還可以在元素樹的多個偵聽器上處理事件響應(事件偵聽器是附加和調用事件處理程序的元素。事件…

個人總結的一個中高級Java開發工程師或架構師需要掌握的一些技能...

近三年&#xff0c;其實都是在做一個項目&#xff0c;項目是一個大型的多節點部署的項目&#xff0c;做了好幾個版本&#xff0c;中間用到了很多技術和框架&#xff0c; 也用了一些管理工具和敏捷實踐。我這里不是來說項目的&#xff0c;因為最近看了一些招聘信息&#xff0c;結…

Android 進程常駐(5)----開機廣播的簡單守護以及總結

這是一個輕量級的庫&#xff0c;配置幾行代碼。就能夠實如今android上實現進程常駐&#xff0c;也就是在系統強殺下&#xff0c;以及360獲取root權限下。clean master獲取root權限下都無法殺死進程 支持系統2.3到6.0 支持大部分設備&#xff0c;包含三星。華為。oppo&#xff0…

[k8s]metricbeat的kubernetes模塊kube-metric模塊

正確姿勢啟動metricbeat metricbeat.modules: - module: systemmetricsets:- cpu- filesystem- memory- network- processenabled: trueperiod: 10sprocesses: [.*]cpu_ticks: falseoutput.elasticsearch:hosts: ["http://192.168.x.x:9200"]setup.template.name: &q…

如何為 Task 添加超時功能

前言假設有如下代碼&#xff0c;功能是首先從緩存獲取數據&#xff0c;如果沒有命中緩存&#xff0c;則直接從數據庫獲取&#xff1a;var data await GetFromCache(); if (data is null) {data await GetFromDB(); }對于獲取緩存數據&#xff0c;我們需要限制一下GetFromCach…