今天在使用RF远程连接数据库时出现报错的问题,因为我发现只安装databaselibrary跟PyMsql的话,连接本地的数据库是OK的,但是如果我们的测试机性能有限,那么既要编写代码、运行测试、还有打开各种浏览器,再加上一个数据库的话就会卡的不成型,所以最好能把数据库部署到其他服务器上,这里我新部署的数据库主要用于存在测试数据,因为很多地方都需要录入数据,做成列表或者是字典每次都要修改,而且我们公司的表单很多,一个页面有50个要录入的数据,这种情况下我想到用数据库的方式,提前在数据库生成上万条不重复的数据,每次去读取一条,用完后直接在RF命令删除,这样保证测试永远不会因为数据重复报错,回到问题本质:

我遇到第一次报错如下:

No module named  cryptography.hazmat,怎么办?看名字应该是说少了cryptography这个库,于是我去pipy下载这个资源包去python setup.py install的方式安装(因为我的测试机不能联网)

结果发现网上的包都不完整,还是要联网下载,这个方案PASS;

怎么办?我想到另外一种方式,我找到一个能pip上网的电脑也有python环境的,然后我用pip install  cryptography ,安装完成后,我去Lib\site-packages下把刚安装的包全部选择复制(PS:怎么确定要复制哪些?最简单的办法根据修改时间,必须全部复制),估计有十多个文件,有很多库是自动安装的

把复制的文件全部考到测试机的Lib\site-packages下,然后运行cmd   pip  list就会发现增加了很多库,这时候我再去把做好的数据库链接脚本运行,发现还是报错,这次报错如下:

No module named six      ;这次去网上看了下有人说要安装matplotlib ;有人说要去复制文件,最后我还是在能上网的环境安装了matplotlib;pip install matplotlib ;然后拷贝到测试环境Lib\site-packages下 ,我在测试环境cmd下  python   import matplotlib   还是报错no module named six  

我去能上网环境cmd下;  python   import matplotlib  却没有报错,这时候我仔细检查了下上网环境的Lib\site-packages文件夹下,发现了这三个six.pyc,six.py,six-1.11.0.dist-info 我把这三个复制到测试环境下,在运行脚本,就发现成功了,并且从服务器数据库读出了我想要的数据。

但是这里的汉字都是显示的如下:

'\xe7\xbd\x91\xe4\xb8\x8a\xe5\xbc\x80\xe6\xa0\x87\xe7\xae\xa1\xe7\x90\x86'

这些并不是我们想要的结果,如何把这类的看似是Unicode的编码转化为我们想要的中文utf8呢

我看到的三种做法:

第一种:做法是在在pymysql 连接尾部加上charset="UTF8"即可解决:

Connect to Database     pymysql     basedb_dy    root    密码    IP  3306 charset="UTF-8"

经过测试显示的还是u+unicode的编码,所以不推荐这个方式

第二种:直接把取出来的结果进行转化,用RF提供的Evaluate调用decode()来实现,代码如下:

${etrole}	query	select fname from etrole
${etroledecode2} Evaluate '${etrole[0][0]}'.decode('UTF-8')
log ${etroledecode2}

这样我们就能把这个字段转化为中文

第三种:直接二次开发写一个自己的转化关键字,或者直接在DatebaseLibrary中添加一个decode,这里推荐后者,去Python27\Lib\site-packages\DatabaseLibrary找到query.py文件,在末尾加入:

    def decode(self, customstr, mode):
return customstr.decode(mode)

  保存后,重启ride,调用这个decode关键字即可:

代码如下:

${etrole}	query	select fname from etrole
${etroledecode} decode ${etrole[0][0]} UTF-8
log ${etroledecode}

  

robotframework 远程连接数据库问题的更多相关文章

  1. 【基于WinForm+Access局域网共享数据库的项目总结】之篇三:Access远程连接数据库和窗体打包部署

    篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...

  2. Oracle数据库的创建以及远程连接(PL/SQL Developer远程连接数据库)

    dbca: 创建数据库 netca: 创建监听程序 netmgr: 配置监听服务(将数据库服务注册到监听器上) netca 与 netmgr 两步可以直接在 ORACLE_HOME/network/a ...

  3. SQL Server 2005如何远程连接数据库?

    SQL Server 2005如何远程连接数据库? 方法/步骤   1 在配置工具中的服务和远程连接的外围应用配置器 --->远程连接-->本地连接和远程连接-->同时使用TCP/I ...

  4. 在本地没有安装Oracle的情况下,使用plsql远程连接数据库

    远程连接数据库的方式不止一种.这里主要写在本地没有安装Oracle的情况下,使用plsql可视化工具远程连接数据库的方式. 一.前提 首先你本地得安装有plsql工具.具体的安装步骤就不多说了. 二. ...

  5. Metasploit中数据库的密码查看以及使用pgadmin远程连接数据库

    我们都知道,在msf下进行渗透测试工作的时候,可以将结果数据保存到数据库中,方便各个小组成员在渗透测试过程中的数据同步. 例如,Metasploit提供了db_nmap命令,它能够将Nmap扫描结果直 ...

  6. 使用navicat mysql 远程连接数据库

    远程连接数据库,假设两台主机上都有navicat 客户端 远程主机A    ip地址:192.168.100.91  ,port  3306,数据库用户名 rootA   密码 123456A 本地主 ...

  7. JDBC远程连接数据库

    使用jdbc远程连接数据库(非本地数据库)出现的问题可用的解决方法: 1.修改mysql配置文件 配置文件中注释掉 bind-address=127.0.0.1 2.修改数据库 登入mysql后,更改 ...

  8. PostgreSQL - pgAdmin4远程连接数据库

    前言 PostgreSQL在安装的时候自带的pgAdmin这个可视化工具,自从将PostgreSQL9升级到了10版本后,自带的pgAdmin也从3升级到了4版本.pgAdmin4的变化非常巨大,刚接 ...

  9. 使用python远程连接数据库

    根据web连接服务的原理,我们可以通过一台电脑连接我们另一台电脑上的数据库 一.开启数据库的权限1.Mysql:1)修改访问权限首先修改可以访问的ip,把‘localhost’全部修改为‘%’,打开c ...

随机推荐

  1. React—Native开发之 Could not connect to development server(Android)解决方法

    作为初学者昨天还好好能跑的项目今天就会遇到突然爆红出错是经常的事,让我们来看下是什么错吧 先来翻译: 连接不到开发的服务器. 请按照以下的步骤来修复此问题: 确保包服务器在运行确保你的设备或者模拟器连 ...

  2. pandas列操作集锦

    列操作 pandas的列操作 数据准备: 增 将两张表合并到一起 pd.concat([page_001,page_002]).reset_index(drop=True) 默认从上到下合,如果想从左 ...

  3. 随便说说sequelize的问题

    最近在做的项目频繁的修改数据库让人感觉很烦躁,sequelize在执行sync的时候只会重新创建表,如果原先有数据只能直接删除,但是这样显然是不行的,因为数据不能就这么消失了吧. 所以必须要migra ...

  4. Add `gem 'sqlite3'` to your Gemfile

    错误:Specified 'sqlite3' for database adapter, but the gem is not loaded. Add `gem 'sqlite3'` to your ...

  5. UnitZ Battlegrounds beta5 - Unity吃鸡类型游戏模版 源码 仿绝地求生

    Requires Unity 2018.2.6 or higher.The first battle royale game starter kit on Asset Store, all syste ...

  6. 混合现实开发教程unity2017

    共52节,MP4格式,英字,大小1GB 扫码时备注或说明中留下邮箱 付款后如未回复请至https://shop135452397.taobao.com/ 联系店主

  7. CentOS7+CDH5.14.0安装全流程记录,图文详解全程实测-7主节点CM安装子节点Agent配置

    主节点安装cloudera manager 准备工作:下载CM和mysql连接驱动包: CM各版本下载地址:http://archive.cloudera.com/cm5/cm/5/ 从里面选择:ht ...

  8. git master 回滚代码

    回退到指定版本 f6a3d430 (为commit id 前8位) git reset --hard f6a3d430 强制推送到远程分支 git push origin HEAD --force 但 ...

  9. SpringMvc中Hashmap操作遇到 java.util.ConcurrentModificationException: null

    代码按照网上修改为类似,还不能解决问题 for (Iterator<String> it = target.keySet().iterator(); it.hasNext(); ) { i ...

  10. 分析easyswoole3.0源码,体验es3(三)

    demo在手,总得去试试看效果吧.我们先把默认的服务改成webserver,并且添加数据库的配置. 建立数据库,github里面有相关内容 CREATE TABLE `user_list` ( `us ...