一、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進行轉譯;
運行得到中文: