1. 程式人生 > >乾貨|如何在robot framework的setup中執行多個關鍵字

乾貨|如何在robot framework的setup中執行多個關鍵字

點選上方“中興開發者社群”,關注我們

每天讀一篇一線開發者原創好文

640?wx_fmt=png&wxfrom=5&wx_lazy=1

我們在設計用例的時候,常常需要初始化一些設定,以便在testcase中引用。

那麼,怎麼使用robot framework對用例執行前的進行初始化設定呢?我們常用到的是setup。setup分為project級、suite級和case級,它可以對所有用例作公共資源的初始化、現場儲存。而不同級別的setup執行順序是:project級別setup>suite級別setup>case級別setup。

在setup中,我們使用引用“關鍵字”的形式,完成我們所需要的初始化設定。例如:我們在suite的setup中使用log關鍵字列印“hello robot”,執行suite下所有用例執行時,在用例執行前會先執行setup中的關鍵字。設定和執行結果如下圖樣例所示:

640?wx_fmt=png&wxfrom=5&wx_lazy=1

 圖1 suite級別setup配置樣例

640?wx_fmt=png&wxfrom=5&wx_lazy=1

圖2 setup配置後用例執行結果

但是,真實情況是,我們需要初始化的資源並不只是單純的某一個動作、某一個關鍵字,而往往是需要多個關鍵字的組合完成一系列的初始化動作。那麼,這種需要多個關鍵字組合完成的初始化,我們在setup中,應該怎麼使用呢?!

   通常,會有兩種方法:

    1、將多個關鍵字封裝為一個關鍵字

    繼續使用上文舉例:我們在suite的setup中使用log關鍵字先後列印“hello robot”和"hello keyword"。我們將“列印hello robot”和“列印hello keyword”兩個關鍵字封裝為一個關鍵字“setup_keyword”,入參填寫“hello robot”和"hello keyword"。設定如下圖樣例所示:

640?wx_fmt=png

圖3 setup使用多個關鍵字封裝後的關鍵字

    2、在setup中直接應用多個關鍵字

    可能你會說,我不喜歡1中的方式,我希望能從setup中直截了當地看出我所做的初始化動作。那麼,我們可以使用在setup中引用多個關鍵字的方法。

    使用run keywords|[關鍵字1]|[關鍵字1的變數]|AND|[關鍵字2]|[關鍵字2的變數]的方法,在setup中引用多個關鍵字。如下圖所示:

640?wx_fmt=png

圖3 setup直接使用多個關鍵字

640?wx_fmt=png

相關推薦

RF Setup或Teardown執行關鍵字

1、無返回值參考:直接在Setup或Teardown配置。關鍵字可以傳引數,想執行2個以上的關鍵字時,Run Keywords | [keyword1 | arg1 | arg2…] | AND | [keyword2 | arg1 | arg2…]… 配置例項 執行

shell執行命令的方法

shell中執行多個命令的方法 1、在命令列中同時輸入多個語句: 直接在linux命令列中可以依次執行多個命令,多個命令間可採用“;”、“&&”和"||"分割,三個分隔符作用不同: (1);分割符:前後命令間沒有必然的聯絡,前一個執行結束後、再執行第二個,沒有邏輯關聯;

【菜雞筆記001】 在工程執行原始檔

首先建一個空工程; 選擇選項卡中工程選項(啊嘞,這個畫的好像有點醜); 新建一個頭檔案; 使用“#include “stdio.h””格式,不能用<stdio.h>哦,如果下面有函式的話,在這裡需要函式宣告,宣告方式和在單個檔案寫程式中的宣告相同;

在Ubuntu/ROS系統執行Python檔案的方法

執行多個Python檔案可以採用,編寫一個launch檔案來實現。launch檔案的新建後,需要儲存在這多個Python檔案所對應的package中,是這個package檔案的主檔案下,新建一個laun

在mybatis同一個方法執行SQL語句實現方法

  一、oracle資料      <delete id="delete" parameterType="upc.cbs.HtxxlrEntity"> begin    delete from PC_CBS_CONTRA

linux的shell指令碼執行命令的方法

第一種是以分號(;)進行劃分:表示:各命令的執行的果,不會影響其它命令的執行。換句話說,各個命令都會執行,但不保證每個命令都執行成功。 第二種命令之間&&隔開 表示:若前面的命令執

【Jenkins】——shell執行指令碼

前言   前面已經寫了一篇部落格   上篇部落格中只提到了在shell中只執行一個指令碼,生成對應的jtl檔案   並對其進行資料分析。   有些時候我們可能需要測試很多的指令碼,但是因為每

JDBC執行SQL語句事例

import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; import com.xcliang.util.code.DBUtil; public class de

Linux命令行執行命令

root 成功 cal linux命令 linu ron bash code ont [[email protected] /]# date;date;date 2019年 05月 03日 星期五 09:08:37 CST 2019年 05月 03日

c/c++ 一條語句包含i++時程式的執行情況

今天覆習高精度時,遇到了個小坑,於是試驗了下。 #include<iostream> using namespace std; int main() { int i = 1; int a[8] = {0, 1, 2, 3, 4, 5, 6, 7};//別忘

基本執行緒同步(八)在Lock使用條件

宣告:本文是《 Java 7 Concurrency Cookbook 》的第二章,作者: Javier Fernández González     譯者:許巧輝 校對:方騰飛 在Lock中使用多個條件 一個鎖可能伴隨著多個條件。這些條件宣告在Condition介面中。 這些條件的目的是允許

想要Jmeter執行緒組按順序執行

在一個指令碼檔案中,如果有多個執行緒組,並且想讓他們從上到下依次執行,只需在測試計劃頁面,勾選“獨立執行每個執行緒組”即可 “Run teardown thread groups after shutdown of main threads”的意思是:主執行緒關

Java迴圈建立物件是幾引用?以及是否執行緒安全

在迴圈中,通過User user = new User();這種方式建立的物件。每次建立的物件是不同的,但是引用是同一個,引用的生命週期是單次迴圈,下次迴圈會覆蓋調上次的引用。 比如這段程式碼: int minId = 0; while (

收集網上資料,總結得出如何同時執行tomcat(模擬在不同域執行網頁)

當第一個tomcat啟動後,後面tomcat的server.xml中的埠不管怎麼改,仍然會報埠衝突。後來在dos下執行才發現所有的tomcat都會去找CATALINA_HOME  ,可以開啟startup.bat進行檢視,可以發現,都是預設找環境變數中配置的CATALINA

關於tomcatweb.xmlfilter的執行順序

今天在專案裡面碰見一個很奇怪的問題:在一個過濾器中處理了request.getParameter(arg0)後,請求就不會轉發到下一個過濾器了(個案,目前一個只在2個專案中出現)。 在沒找到原因之前,只有通過,轉換過濾器執行順序來解決 整理了一下…… 多個篩選器的執行順序:    1. 將 filte

centos7.2 在同一臺伺服器,同時執行tomcat

tomcat作為許多java專案的執行的環境,常用來跑java專案。而一臺伺服器只跑一個tomcat服務又太浪費資源了,so,我們可以在同一臺伺服器上,同時跑多個tomcat服務程序,分別對應不同的埠。來執行多個java專案。 下面記錄一下,如何進行配置,才能同時啟動多個t

java執行緒同時呼叫同一個靜態方法的問題

我的原來程式是這樣設計的,對於一些常用的方法,都用靜態方法來實現,在多執行緒程式中直接呼叫,靜態方法由於沒有使用靜態變數,所以沒有進行執行緒同步。 類似以下程式: class ThreadI { public static void main(String[] arg) {

Android執行緒順序執行

執行緒排程是指按照特定機制為多個執行緒分配CPU的使用權。  有兩種排程模型:分時排程模型和搶佔式排程模型。    分時排程模型:是指讓所有的執行緒輪流獲得cpu的使用權,並且平均分配每個執行緒佔用的CPU的時間片。  搶佔式排程模型:是指優先讓可執行池中優先順序高的執行緒佔用CPU,如果可執行池中的執行

在的一個批處理(BAT)檔案成功執行ant命令的操作

在dos命令列逐行輸入以下的ant命令是沒問題的。我想在一個批處理(BAT)檔案中成功執行這幾個ant命令的操作,覺得手工輸入太麻煩, -------------------------------------- cls echo on Create a Test DB