Robotframework操作pymsql、oracle数据库及遇到常见问题解决方法

发布于:2022-11-07 ⋅ 阅读:(609) ⋅ 点赞:(0)

(一)robotframework连接pymysql数据库

1.根据我之前的文章搭建好robotframework环境

2.安装DatabaseLibrary,使用命令 pip install robotframework-databaselibrary

3.安装pymysql使用命令pip install pymysql,安装完成后使用pip list查看安装是否成功

 

4.导入DatabaseLibrary包到Robotframework,导入成功字体会变黑色

5.使用关键字对mysql数据库进行操作如

(1)连接数据库:Connect to database using custom params

这个关键字需要传入2个参数,pymysql、及数据库连接信息(host='数据库ip',port='数据库端口',user='数据库登陆用户名',passwd='密码',db='数据库名(不是表名)')

 (2)执行查询语句:Query

(3) 执行增删改语句:Execute Sql String

(4)断开数据库连接:Disconnect From Database 注意:sql语句结尾尽量不要用分号,每次连接数据库后都使用断开数据库连接结束 

(二)robotframework连接oracle数据库

1.根据我之前的文章搭建好robotframework环境

2.安装DatabaseLibrary,使用命令 pip install robotframework-databaselibrary

3.安装cx_Oracle,DatabaseLibrary,进入cx_oracle下载页面,下载python对应的版本号:http://sourceforge.net/projects/cx-oracle/files/  安装完成后可以在python安装路径下的site-pacakage看到DataBaseLibrary包和cx_oracle相关的信息

 4.将本地连接oracle数据库的dll文件复制到python安装目录的site-packages文件夹下

5.使用关键字进行oracle数据库操作 

(1)连接数据库:Connect To Database Using Custom Params;需要传入2个参数;cx_Oracle和数据库连接信息--    '账号','密码','ip:端口/ORCL

(2)查询和修改关键字跟mysql操作相同

遇到的问题如下:

(1)数据库执行sql带中文报错:Robot Framework向Oracle插入数据UnicodeEncodeError: 'latin-1' codec can't enc

解决办法:新建一个文件sitecustomize.py放到C:\Python\Lib\site-packages(以你实际的python安装目录为准):

# -*- coding: utf-8 -*-
import sys
import os
from imp import reload

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

保存后重启robotframework,sql能正常执行;

(2)数据库查询内容包含[(u')返回值',)]  见下图,[(u'YIN',)]

 解决办法:通过截取方式去除:{serID[0][0]}

执行结果:

 

(3) 数据库sql语句查询返回乱码:

解决办法:在C:\Python\Lib\site-packages\DatabaseLibrary\query.py文件中添加如下代码:

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

保存后先用python工具编译一下,然后重启robotframework;然后使用decode进行转译;

运行得到中文:

 

 

 

 

 


网站公告

今日签到

点亮在社区的每一天
去签到