RobotFramework讀取mysql和oracle數據庫


一、robotframework連接mysql數據庫

1、安裝databaselibrary、pymysql

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

cmd命令執行:pip install pymysql

2、導入DatabaseLibrary包到Robotframework

3、使用關鍵字對數據庫進行操作

連接數據庫:Connect to database using custom params

這個關鍵字需要傳入2個參數,pymysql、及數據庫連接信息(host='數據庫ip',port='數據庫端口',user='數據庫登陸用戶名',passwd='密碼',db='數據庫名(不是表名)')

執行查詢語句:Query

執行增刪改語句:Execute Sql String

斷開數據庫連接:Disconnect From Database

注意:sql語句結尾盡量不要用分號,每次連接數據庫后都使用斷開數據庫連接結束

 

二、robotframework連接Oracle數據庫連接

1、安裝DatabaseLibrary(見連接mysql數據庫操作)

2、安裝cx_Oracle,DatabaseLibrary,進入cx_oracle下載頁面,下載python對應的版本號:http://sourceforge.net/projects/cx-oracle/files/

下載完后直接安裝,安裝完成后,在你的 \Python27\Lib\site-packages目錄下,可以看到Database Library文件夾和cx_Oracle.pyd文件;

 

3、將本地連接oracle數據庫的oci文件復制到site-packages目錄

4、使用關鍵字進行oracle數據庫操作

 連接數據庫:Connect To Database Using Custom Params;需要傳入2個參數;cx_Oracle和數據庫連接信息--    '賬號','密碼','ip:端口/ORCL 

查詢和修改關鍵字跟mysql操作相同;

 

 

 

常見問題:

1、數據庫查詢內容包含[(u')返回值',)]  見下圖,[(u'YIN',)]

解決辦法:通過截取方式去除:{serID[0][0]}

執行結果:

 

2、數據庫執行sql帶中文報錯:UnicodeEncodeError:'ascii' codec can't encode characters in position 59-65....

 

 

解決辦法:新建一個文件sitecustomize.py放到C:\Python27\Lib\site-packages(以你實際的python安裝目錄為准):

# -*- coding: utf-8 -*-
import sys
import os
import cx_Oracle

reload(sys)
sys.setdefaultencoding('utf-8')
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'

保存后重啟robotframework,sql能正常執行;

3、數據庫sql語句查詢返回亂碼:

解決辦法:在C:\Python27\Lib\site-packages\DatabaseLibrary\query.py文件中添加如下代碼:

def decode(self,code):
        return code.decode('utf-8')

 

保存后先用python工具編譯一下,然后重啟robotframework;然后使用decode進行轉譯;

 

運行得到中文:

 


免責聲明!

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



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