摘要: Robot Framework雖然自帶了很多關(guān)鍵字,但是有些業(yè)務邏輯非常復雜的場景下,這些關(guān)鍵字遠不能滿足我們的需求,就只能自定義函數(shù)(關(guān)鍵字)了。
1. 如何從零開始編寫Python函數(shù)?
參考另一篇文章: https://my.oschina.net/u/942203/blog/1786979
2. IDEA如何調(diào)用編寫的Python文件?
a. 將編寫的Python文件放入到RIDE 某個Project的一個用于存放Custom Library的文件夾下
b. 在Directory或者Test Suite或者Test Case Level的Edit Page中Import對應的python文件作為library

其中黑色的Library表示引用成功。
紅色的表示引用失?。ㄒ话愣际俏募窂藉e誤,或者文件編譯出錯)。
藍色的表示引用的是關(guān)鍵字或者定義的變量資源。
3. Python 文件中的函數(shù)如何被添加到Test Step中調(diào)用?
如下圖所示,我的PreparePremia.py被添加到Attribution Test Suite級別了,所以這個Test Suite下面所有的Test Case都可以解析該python中的函數(shù),我們看看“save_monthly_premia_data”是如何被用到Test Step中的:

Test Step的最后一行關(guān)鍵字"Save Monthly Premia Data"就是調(diào)用了該文件中的關(guān)鍵字:

可以按F5查看:

4. Python文件中的函數(shù)如何被Test Suite調(diào)用?
我們打開Test Case可以看到添加Test Step的table,明顯就能看出如何調(diào)用python中的函數(shù)。
但是打開Test Suite面板,我們看到了什么?

只有Settings, variables 和Metadata區(qū)域。。。

截圖上我在Suite Setup的時候調(diào)用了一個自定義關(guān)鍵字“Get Input Params”,并且傳遞了兩個參數(shù)"${SUITE NAME}"和"RiskAttributionCalculation",那這個關(guān)鍵字是怎么來的呢?


可以看到這個自定義關(guān)鍵字其實也是調(diào)用了“ExcelUtil.py”文件中的“parse_input_params”函數(shù)的:

并且還設置了一個Suite級別的全局變量“${input_params}”。
所以:
Suite Setup的意思就是:
調(diào)用自定義關(guān)鍵字"Get Input Params"得到一個全局變量"${input_params}".
因此:
Test Suite級別都是引用自定義的關(guān)鍵字來初始化某些值。而這個自定義的關(guān)鍵字會調(diào)用Python文件中的函數(shù)。
5. 得到的Suite級別的變量如何被調(diào)用呢?

因為MonthlyPremia是Attribution Suite下面的Test Case, 所以這個Case是可以直接調(diào)用"${input_params}"的哦~~。
我返回的input_params是dict,所以需要傳入key來得到對應的Value。
寫的很直白哦,如果有什么問題大家可以留言哦,謝謝閱讀,么么噠~~~