RobotFramework读取mysql和oracle数据库
一、robotframework連接mysql數(shù)據(jù)庫(kù)
1、安裝databaselibrary、pymysql
通過(guò)cmd命令執(zhí)行:pip install?robotframework-databaselibrary
cmd命令執(zhí)行:pip install pymysql
2、導(dǎo)入DatabaseLibrary包到Robotframework
3、使用關(guān)鍵字對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作
連接數(shù)據(jù)庫(kù):Connect to database using custom params
這個(gè)關(guān)鍵字需要傳入2個(gè)參數(shù),pymysql、及數(shù)據(jù)庫(kù)連接信息(host='數(shù)據(jù)庫(kù)ip',port='數(shù)據(jù)庫(kù)端口',user='數(shù)據(jù)庫(kù)登陸用戶(hù)名',passwd='密碼',db='數(shù)據(jù)庫(kù)名(不是表名)')
執(zhí)行查詢(xún)語(yǔ)句:Query
執(zhí)行增刪改語(yǔ)句:Execute Sql String
斷開(kāi)數(shù)據(jù)庫(kù)連接:Disconnect From Database
注意:sql語(yǔ)句結(jié)尾盡量不要用分號(hào),每次連接數(shù)據(jù)庫(kù)后都使用斷開(kāi)數(shù)據(jù)庫(kù)連接結(jié)束
?
二、robotframework連接Oracle數(shù)據(jù)庫(kù)連接
1、安裝DatabaseLibrary(見(jiàn)連接mysql數(shù)據(jù)庫(kù)操作)
2、安裝cx_Oracle,DatabaseLibrary,進(jìn)入cx_oracle下載頁(yè)面,下載python對(duì)應(yīng)的版本號(hào):http://sourceforge.net/projects/cx-oracle/files/
下載完后直接安裝,安裝完成后,在你的 \Python27\Lib\site-packages目錄下,可以看到Database Library文件夾和cx_Oracle.pyd文件;
?
3、將本地連接oracle數(shù)據(jù)庫(kù)的oci文件復(fù)制到site-packages目錄
4、使用關(guān)鍵字進(jìn)行oracle數(shù)據(jù)庫(kù)操作
?連接數(shù)據(jù)庫(kù):Connect To Database Using Custom Params;需要傳入2個(gè)參數(shù);cx_Oracle和數(shù)據(jù)庫(kù)連接信息-- ? ?'賬號(hào)','密碼','ip:端口/ORCL?
查詢(xún)和修改關(guān)鍵字跟mysql操作相同;
?
?
?
常見(jiàn)問(wèn)題:
1、數(shù)據(jù)庫(kù)查詢(xún)內(nèi)容包含[(u')返回值',)]? 見(jiàn)下圖,[(u'YIN',)]
解決辦法:通過(guò)截取方式去除:{serID[0][0]}
執(zhí)行結(jié)果:
?
2、數(shù)據(jù)庫(kù)執(zhí)行sql帶中文報(bào)錯(cuò):UnicodeEncodeError:'ascii' codec can't encode characters in position 59-65....
?
?
解決辦法:新建一個(gè)文件sitecustomize.py放到C:\Python27\Lib\site-packages(以你實(shí)際的python安裝目錄為準(zhǔn)):
# -*- 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能正常執(zhí)行;
3、數(shù)據(jù)庫(kù)sql語(yǔ)句查詢(xún)返回亂碼:
解決辦法:在C:\Python27\Lib\site-packages\DatabaseLibrary\query.py文件中添加如下代碼:
def decode(self,code):
? ? ? ??return code.decode('utf-8')
?
保存后先用python工具編譯一下,然后重啟robotframework;然后使用decode進(jìn)行轉(zhuǎn)譯;
?
運(yùn)行得到中文:
轉(zhuǎn)載于:https://www.cnblogs.com/zhangfeivip/p/10102971.html
總結(jié)
以上是生活随笔為你收集整理的RobotFramework读取mysql和oracle数据库的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Spring-05 -AOP [面向切面
- 下一篇: MySQL-8.0.x 新特性之索引页合