robotframework自動化系列:操作mysql數據庫


隨着項目自動化深入和不斷完善,大部分功能都已經能完成了自動化的操作;但是在設備添加的時候,遇到了難題。添加設備的時候mac必須是服務器設備管理中已經存在的mac地址,且是沒有關聯或綁定用戶的設備信息。起初的想法是讀取文本文件取得mac地址實現自動化操作,但是此方法也是行不通的!所以這個功能暫時沒有自動化操作。后來想到可以讀取數據庫的查詢結果,這樣一來,每次添加設備的mac都可以確保是服務器上存在的,且是在用戶使用設備表中是不存在的就可以。

那么該如何實現呢?

思路:

  1. 打開數據庫
  2. 查詢表中用戶沒有使用的mac
  3. 將查詢結果賦值給一個變量
  4. mac地址中輸入該變量

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

既然robotframework需要操作數據庫,那么需要安裝執行數據庫的databaselibrary和pymysql。

安裝databaselibrary和pymysql

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

cmd命令執行:pip install pymysql

如圖所示

引入DatabaseLibrary包到Robotframework

如圖

使用關鍵字操作數據庫

第一步:打開數據庫

使用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截圖所示

注意

返回值@{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地址。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM