跳到主要內容

Robot Framework(15)- 擴展關鍵字_潭子電動車


※Google地圖已可更新顯示潭子電動車充電站設置地點!!



日本、大陸,發現這些先進的國家已經早就讓電動車優先上路,而且先進國家空氣品質相當好,電動車節能減碳可以減少空污



如果你還想從頭學起Robot Framework,可以看看這個系列的文章哦!


https://www.cnblogs.com/poloyy/category/1770899.html


 


前言



  • 什麼是擴展關鍵字?就是你自己寫的 Python 文件,裡面包含了函數或者類

  • 然後 RF 導入這個 Python 模塊,就可以調用函數或者類方法,它們就是擴展關鍵字


 


Python 模塊作為測試庫


模塊文件名作為測試庫的名字


比如:Python 模塊名叫 MyLibrary,文件名是 MyLibrary.py,那麼測試庫的名字就叫做 MyLibrary


 


Python 模塊和 Robot 文件同目錄下的栗子


這是目錄結構哈



python 模塊的代碼


def returnlist():
return [i for i in range(10)]


def return_dict():
return {"a": "hahhahahaahah"}


# 以下劃線開頭的函數不能作為RF關鍵字
def _returnlist2():
return [1, 2]

robot 代碼



進入test目錄下,運行以下命令


 robot -P . test.robot 

執行結果



知識點



  • _前綴的方法不會作為關鍵字,在Python裏面, _ 開頭的方法是私有方法,RF 不會識別到它

  • Python 方法作為關鍵字也是大小寫不敏感

  • RF 中會把關鍵字的 _ 和單個空格忽略掉,所以 returndict、return dict、return_dict 都是調用同一個關鍵字


 


Python 類作為測試庫的栗子


項目目錄



所有 Python 測試代碼都在 tlib2.py 裏面哦


最終運行是在【15_擴展關鍵字】目錄下運行的,命令如下


robot -P . testrf

 


栗子一:類初始化不需要傳參


python 代碼


class SubLibrary:
def __init__(self):
pass

def returnint(self):
return 2020

def _returnint2(self):
return 4

robot 代碼



測試結果



知識點



  • 在類裏面, _ 前綴的方法不會當做關鍵字

  • 同樣,類中聲明的方法當做關鍵字的話,大小寫不敏感


 


栗子二:類初始化需要傳參


python 代碼


from robot.api import logger

class SubLibrary2:
def __init__(self, host, port, table='test'):
self.host
= host
self.port
= port
self.table
= table

def printaddr2(self):
logger.console(
'host:%s,port:%s,table:%s' % (self.host, self.port, self.table))

robot 代碼



測試結果



知識點


如果類的 __init__ 初始化方法需要傳參,則在導入庫後面跟對應的參數列表


拓展 Python 知識點:先有類對象,還是先執行類初始化方法?


 __new__ 方法產生對象


 __init__ 對象的初始化方法


先 new 一個對象,再 init 一個對象


※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益



有別於一般網頁架設公司,除了模組化的架站軟體,我們的營業主軸還包含:資料庫程式開發、網站建置、網頁設計、電子商務專案開發、系統整合、APP設計建置、專業網路行銷。




 


栗子三:類名和模塊名相同


python 代碼


from robot.api import logger

class tlib2:
def __init__(self, host, port):
self.host
= host
self.port
= port

def printaddr(self):
logger.console(
'host:%s,port:%s' % (self.host, self.port))

robot 代碼



測試結果



知識點


如果類名和模塊名相同,可以不用導入類名


 


栗子四:使用路徑法導入 Python 模塊


Python 代碼用的還是栗子三的


robot 代碼



測試結果



知識點


如果用路徑法,需要注意導入 Python 模塊需要有文件後綴哦,且用 / 來表示目錄下


重點:使用路徑法,只能導入和模塊名相同的類名!


 


Python 擴展庫的搜索規則


統一的規則



  • 先根據 robot 文件自身當前目錄下查找庫文件

  • 如果沒有找到則再根據 --pythonpath 和 -P 提供的搜索路徑進行搜索

  • 最後找 Python 安裝的路徑


 


Python 庫引入了其他模塊


背景


當 robot 文件導入的 Python 測試庫引入了其他模塊時,應該怎麼寫導入路徑?


正確寫法


確保導入的模塊路徑和RF導入的模塊起始路徑統一


看栗子


 testother.robot  導入 test.py 模塊, test.py  模塊引入了 login.py 模塊的方法


目錄結構



login.py 代碼


from robot.api import logger


def login_test():
logger.console(
'test login')

test.py 代碼


from pylib.login import login_test
# from login import login_test 報錯

def test():
login_test()

robot 的代碼



在 othertest 目錄下運行下面命令


robot -P . testother.robot

測試結果



結論



  • 可以看到 robot 文件引入的路徑是 pylib 開頭, test 模塊引入 login 模塊的路徑也是 pylib 開頭

  • 如果路徑是 login 開頭導入,那麼運行robot文件將會報錯(如下圖,包含了解析錯誤)



 


Python 庫中的 class 存在繼承


背景


當 robot 文件導入 Python 測試庫的類繼承了另一個類,應該怎麼寫導入路徑?


正確寫法



  • 確保導入的模塊路徑和RF導入的模塊起始路徑統一

  • 使用的時候 RF 文件只需導入子類即可


看栗子


 test.robot 引入了 other.py  模塊下的 Child 類,而 Child 類繼承了 Base.py 模塊下的 Father 類


目錄結構



base.py 的代碼


from robot.libraries.BuiltIn import logger


class Father:
def __init__(self):
logger.console(
'init Father')

def money(self):
return '$10000'

other.py 的代碼


from robot.api import logger
from pylib.Base import Father


class Child(Father):
def __init__(self):
Father.
__init__(self)
logger.console(
'init Child')

def use_money(self):
return self.money()

def make_money(self):
return '$9999'

robot 的代碼



在 testClass 目錄下運行下面命令


robot -P . test.robot

測試結果



 

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

※Google地圖已可更新顯示潭子電動車充電站設置地點!!



日本、大陸,發現這些先進的國家已經早就讓電動車優先上路,而且先進國家空氣品質相當好,電動車節能減碳可以減少空污





Orignal From: Robot Framework(15)- 擴展關鍵字_潭子電動車

留言

這個網誌中的熱門文章

掃地機器人可以隨身帶上飛機嗎?我想要拿去送給國外的朋友

掃地機器人如果要隨身戴上飛機需要滿足兩個條件: 一個是掃地機器人連同你的隨身行李,整體的體積和重量要符合上機條件,這個具體每家航空公司都不同,可以諮詢,簡單的說就是隨身行李不要超寬超重。 還有一個就是由於掃地機器人內置了鋰電池,所以內置電池的容量要符合相關規定,每個掃地機器人電池容量都不同,具體自行查詢。 根據民航的相關安全要求,凡帶有鋰電池的電子設備均不可以托運,但符合重量要求,尺寸要求以及電量要求的鋰電池及其設備是可以帶上飛機的。 《鋰電池航空運輸規範》中內含鋰離子電池的設備電池額定能量不應超過100Wh的規定,符合國標GB31241-2014,並通過UN38.3航空運輸認證等國際安全標準,所以可以帶上飛機。但是不能托運,只能隨身攜帶。 掃地機器人     掃地機器人     掃地機器人吸塵器 http://www.greenh3y.com/?p=400 Orignal From: 掃地機器人可以隨身帶上飛機嗎?我想要拿去送給國外的朋友

不滿國際規範斷財路 非洲多國擬退野生動保公約

摘錄自2019年09月01日中央通訊社非洲報導 非洲南部多國揚言退出「瀕臨絕種野生動植物國際貿易公約」,因為公約多數成員拒絕放寬象牙與犀牛角交易,並且幾乎全面禁止將野生捕獲的大象送到動物園。 這個公約嚴格規範全球野生動物交易,包括限制象牙與犀牛角交易。 本週在日內瓦召開修訂「瀕臨絕種野生動植物國際貿易公約」(CITES)的會議期間,由於區域集團非南開發共同體(SADC)的多項提案遭否決,這個集團與公約的關係惡化。 全球大象數量最多的區域波札那、納米比亞與辛巴威要求販售取自自然死亡、充公與汰除的大象象牙,這項提議被居多數的101票否決。 40多年前制訂的CITES規範約3萬6000種動植物交易,並設計有助於遏止非法交易和制裁違規國家的機制。 不過有16個成員國的非南開發共同體部分會員批評CITES對非洲國家的問題視若無睹。 坦尚尼亞環境部長西蒙巴徹恩(George Simbachawene)於日內瓦召開的會議中表示:「結果無法採取進步、公平、包容與基於科學的的保育策略。」 他說:「該是認真重新考慮我們加入CITES是否有任何實質益處的時候了。」 本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理 【搬家相關資訊指南】 台中搬家 , 彰化搬家 , 南投搬家 前需注意的眉眉角角,別等搬了再說! 避免吃悶虧無故遭抬價! 台中搬家公司 免費估價,有契約讓您安心有保障! 評比 彰化搬家公司費用 , 南投搬家公司費用 收費行情懶人包大公開 彰化搬家費用 , 南投搬家費用 ,距離,噸數怎麼算?達人教你簡易估價知識! Orignal From: 不滿國際規範斷財路 非洲多國擬退野生動保公約

全球第一國 帛琉立法禁用、禁售防曬乳

摘錄自2018年11月2日蘋果日報帛琉報導 為了保護珊瑚礁生態,帛琉政府昨(1)日表示已立法嚴禁販售並使用防曬乳,此法將於2020年1月1日起正式生效。帛琉也成為全球首個全面禁止防曬乳的國家。 帛琉國會上周通過此法案,全面禁止使用和販售含有10種有害化學物質的防曬乳,違者將被處以1000美元(約3萬783元台幣)罰款。若遊客被發現私帶防曬乳入境,也會遭到沒收。帛琉總統雷蒙傑索(Tommy Remengesau)說:「沒收(防曬乳)已經足夠讓人不進行商業使用,而這也是很聰明的一招,一方面教育觀光客,又不會把他們嚇跑。」 根據官方說法,帛琉的熱門潛水點每小時會有4艘載著觀光客的船隻造訪,他們身上的防曬乳化學物質相當可觀。總統府發言人說:「帛琉各潛水和浮潛地點每天都有好幾加崙的防曬乳入海。我們只是盡力要防止環境遭受污染。」 本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理 【其他文章推薦】 ※ 台中搬家 , 彰化搬家 , 南投搬家 前需注意的眉眉角角,別等搬了再說! ※在找尋 搬家 公司嗎? ※搬家不受騙不被宰 桃園搬家公司 , 桃園市搬家公司 公開報價讓你比價不吃虧! Orignal From: 全球第一國 帛琉立法禁用、禁售防曬乳