Robot framework學習筆記(三)通過定義自己的python庫連結mysql
今天看了一些連結資料庫的方法,發現官網提供的DatabaseLibrary只提供了和資料庫直連的方法,現實中很多公司出於安全考慮,都是通過跳板機的方式連結。(跳板機是開發者登入到網站分配給應用伺服器的唯一途徑。開發者必須首先登入跳板機,再通過跳板機登入到應用伺服器)。
顯然這個方式不行。
因為這個rf是基於python語言的,所以我們可以通過自己寫第三方庫封裝一個方法,來實現和資料庫的連結。
ride可以通過rf的新增Library來呼叫我們的方法。
- 第一步,搭建mysql的相關環境,比較重要的有以下幾個:
這些我們可以通過pip的方式來安裝
pymsql mysql-python sshtunnel
pymsql提供了一些方法來操作資料庫的增刪改查。
順便可以安裝rf自有的databaselibrary
- 第二步,編寫連結mysql的方法
因為自己之前用python寫過介面方面的自動化,這裡只需修改之前的程式碼即可,相關踩坑點,參考本人寫的另外一篇文章:
具體實現方法如下:
- 第三步,定義自己的python庫
1.在python安裝目錄下的 Lib\site-packages 目錄下 新建一個目錄,目錄名就是庫名,如 NewLibrary
2.在新建的NewLibrary目錄下建立一個python檔案,任何合法的檔名即可,副檔名為py,如connectmysql.py
上面程式碼定義了一個python類,其中除構造方法 _init_ 外,還定義了一個print_query方法,該方法其實就是rf中的關鍵字(注意不要和rf中的關鍵字相同,否則會報錯,rf中的關鍵字不區分大小寫和_),可以直接在rf中使用。下面我們介紹。
3、在新建的NewLibrary目錄下建立 __init__.py 檔案,檔名必須固定這樣。該檔案的功能,就是把關鍵字類暴露出來,讓rf能知道。 其內容如下:
一個最簡單的自定義的NewLibrary庫就建立好了,在rf工具中就可以使用
4.在rf中匯入自己的庫即可
在rf中可以看到自己所匯入的庫名已經呼叫的方法和引數。
如果匯入失敗:
1.需要自己刪除自己的庫
2.刪除Lib\site-packages\NewLibrary的編譯檔案;
更改好程式碼後,計入所在目錄,編譯自己的兩個檔案,用命令python -m 檔名 檔名
或者刪除檔案後,重新啟動rf
ps:如果提示"No module named xxxx",可能是自己程式碼寫引用方法或方法名有問題。注意類名不要和檔名一樣,或使用特殊關鍵字,如mysql
本次case如下:
*** Settings *** Library Selenium2Library Library DatabaseLibrary Library NewLibrary Library utf_8
*** Test Cases ***
test_connect ${a} print_query select * from tb_loan_person order by id limit 100 log ${a}
最終執行結果: