1. 程式人生 > >Robot framework學習筆記(三)通過定義自己的python庫連結mysql

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}  

最終執行結果: