天天看點

mysql資料庫在工控自動化應用_robotframework自動化系列:操作mysql資料庫

随着項目自動化深入和不斷完善,大部分功能都已經能完成了自動化的操作;但是在裝置添加的時候,遇到了難題。添加裝置的時候mac必須是伺服器裝置管理中已經存在的mac位址,且是沒有關聯或綁定使用者的裝置資訊。起初的想法是讀取文本檔案取得mac位址實作自動化操作,但是此方法也是行不通的!是以這個功能暫時沒有自動化操作。後來想到可以讀取資料庫的查詢結果,這樣一來,每次添加裝置的mac都可以確定是伺服器上存在的,且是在使用者使用裝置表中是不存在的就可以。

那麼該如何實作呢?

思路:

打開資料庫

查詢表中使用者沒有使用的mac

将查詢結果指派給一個變量

mac位址中輸入該變量

說明一下:測試環境的伺服器是mysql

既然robotframework需要操作資料庫,那麼需要安裝執行資料庫的databaselibrary和pymysql。

安裝databaselibrary和pymysql

通過cmd指令執行:pip install robotframework-databaselibrary

cmd指令執行:pip install pymysql

如圖所示

mysql資料庫在工控自動化應用_robotframework自動化系列:操作mysql資料庫

引入DatabaseLibrary包到Robotframework

如圖

mysql資料庫在工控自動化應用_robotframework自動化系列:操作mysql資料庫

使用關鍵字操作資料庫

第一步:打開資料庫

使用Connect To Database Using Custom Params關鍵字連接配接資料庫,這裡需要傳入2個參數pymysql和連接配接資料庫的資訊,代碼如下

mac位址

#從伺服器上擷取沒有綁定或關聯的裝置号

Connect to database using custom params pymysql database='test_pre', user='test', password='test', host='127.0.0.1', port=3306

Connect to database using custom params pymysql database='test_sys', user='test', password='test', host='127.0.0.1', port=3306

第二步 執行sql語句

代碼如下

@{result} Query select mac from test_pre.device_server where mac not in (select mac from device)limit 1

log @{result[0]}

第三步:關閉連接配接

Disconnect From Database

代碼展示如下

mac位址

#從伺服器上擷取沒有綁定或關聯的裝置号

Connect to database using custom params pymysql database='test_pre', user='test', password='test', host='127.0.0.1', port=3306

Connect to database using custom params pymysql database='test_sys', user='test', password='test', host='127.0.0.1', port=3306

@{result} Query select mac from test_pre.device_server where mac not in (select mac from device)limit 1

log @{result[0]}

Disconnect From Database

${mac} convert to string @{result[0]}

log ${mac}

[Return] ${mac}

robotframework截圖所示

mysql資料庫在工控自動化應用_robotframework自動化系列:操作mysql資料庫

注意

傳回值@{result[0]}是list格式,後面需要使用此傳回值斷言的,是以需要轉換格式為string,${mac} convert to string @{result[0]}

query中的sql語句,注意複制粘貼的時候空格要去掉,否則執行的時候會提示報錯

這裡用到了2個資料庫test_pre和test_sys,其中pre中存放伺服器mac位址,而test_sys存在的是使用者關聯或綁定的mac資訊。而這裡我們需要的mac是存在伺服器上但是沒有關聯使用者或綁定使用者的裝置資訊

這樣在添加用例的時候每次添加的mac都是唯一的,可以滿足我們的要求了

這裡mac已經封裝關鍵字mac位址,這樣我們下次直接使用關鍵字mac位址來生成一個新的mac位址。