解决robotframework引入自写库连接mysql数据库报错问题“ascii codec can’t decode byte oxd7 in position……”

来源:互联网 发布:js控制button点击 编辑:程序博客网 时间:2024/06/04 11:24

因为安全问题,测试需要连接的数据库只能通过跳板机访问,使用robotframework中的DatebaseLibrary库只能访问本地数据库,所以只能用自己写的python库来连接。

解决场景:数据库在服务器A上,只允许服务器B访问,我使用的是机器C,C可以通过ssh连接服务器B。为了解决在机器C上连接A这个问题,导入mysqltest.py,见《Ride连接mysql数据库》

但是出现的问题是,在ride中导入mysqltest.py,显示红色,查看Tools-View RIDE Log,提示信息如下:

 

1.根据ascii提示,找到报错的第一个文件librarymanager.py,在import后添加

import sys  reload(sys)  sys.setdefaultencoding('utf8')

2.重新启动ride,此时提示信息改变了,证明刚刚添加的语句起了作用,如下:提示我的自写库mysqltest.py中引用的MySQLdb不存在

 

则需要下载mysql-python,mysql-python使python可以操作mysql MySQL-python驱动,是python 操作mysql必不可少的模块,根据你安装的python版本对应下载32或者64位。

 

3.再次重启ride,提示信息又改变了,提示No module named sshtunnel

 

即缺少sshtunnel模块,sshtunnel可以直接用pip进行安装,如下:pip install sshtunnel

 

4.安装完成后,再次启动ride,就不会报错了,并且引入的mysqltest.py库颜色也变为黑色,可以直接连接mysql数据库进行查询操作了,具体用法参看《Ride连接mysql数据库》

阅读全文
0 0