热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

robotframework使用redislibrary登录redis数据库

Redis是一个高性能的key-value数据库,在各种企业级应用中经常会遇到。如何使用robotframework处理与redis的自动化交互呢?还好

Redis 是一个高性能的key-value数据库,在各种企业级应用中经常会遇到。如何使用robotframework处理与redis的自动化交互呢?
还好已有robotframework-redislibrary

安装

安装命令很简单

pip install robotframework-redislibrary

使用

参考文档:https://nottyo.github.io/robotframework-redislibrary/
举例:
登录redis:

${redis_conn}= Connect To Redis 192.168.1.10 port=6379

插入数据:

${data}= Append To Redis ${redis_conn} key data

读取数据:

${data}= Get From Redis ${redis_conn} key

限制及改进


限制

有些redis连接时需要auth,如
使用 nottyo/robotframework-redislibrary 连接redis,出现报错

'StrictRedis' object has no attribute 'auth'

解决办法

google找到的有效解决办法:
http://stackoverflow.com/questions/30149493/redis-auth-command-in-python

简而言之,就是需要在StrictRedis方法中加上password参数,作为登录redis的认证。如

redis.StrictRedis(host='localhost', port=6379, db=0, password=None)

改进方法


修改redislibrary

fork nottyo/robotframework-redislibrary 修改如下:

def connect_to_redis(self, redis_host, redis_port=6379, db=0, redis_password=None):

卸载已安装的redislibrary

>> pip uninstall robotframework-redislibraryUninstalling robotframework-redislibrary-0.1:c:\python27\lib\site-packages\redislibrary\__init__.pyc:\python27\lib\site-packages\redislibrary\__init__.pycc:\python27\lib\site-packages\redislibrary\redislibrarykeywords.pyc:\python27\lib\site-packages\redislibrary\redislibrarykeywords.pycc:\python27\lib\site-packages\redislibrary\version.pyc:\python27\lib\site-packages\redislibrary\version.pycc:\python27\lib\site-packages\robotframework_redislibrary-0.1-py2.7.egg-info
Proceed (y/n)? ySuccessfully uninstalled robotframework-redislibrary-0.1

安装新fork的redislibrary

>> pip install git+https://github.com/penn201500/robotframework-redislibrary.gitCollecting git+https://github.com/penn201500/robotframework-redislibrary.gitCloning https://github.com/penn201500/robotframework-redislibrary.git to c:\users\admi
n\appdata\local\temp\pip-d1xhrz-build
Requirement already satisfied: tox in c:\python27\lib\site-packages (from robotframework
-redislibrary==0.1)
Requirement already satisfied: coverage in c:\python27\lib\site-packages (from robotfram
ework-redislibrary==0.1)
Requirement already satisfied: robotframework>=3.0 in c:\python27\lib\site-packages (fro
m robotframework-redislibrary==0.1)
Requirement already satisfied: redis==2.10.5 in c:\python27\lib\site-packages (from robo
tframework-redislibrary==0.1)
Requirement already satisfied: pluggy<1.0,>&#61;0.3.0 in c:\python27\lib\site-packages (from
tox->robotframework-redislibrary&#61;&#61;0.1)
Requirement already satisfied: py>&#61;1.4.17 in c:\python27\lib\site-packages (from tox->ro
botframework-redislibrary&#61;&#61;0.1)
Requirement already satisfied: virtualenv>&#61;1.11.2; python_version !&#61; "3.2" in c:\python2
7\lib\site-packages (from tox->robotframework-redislibrary&#61;&#61;0.1)
Installing collected packages: robotframework-redislibraryRunning setup.py install for robotframework-redislibrary ... done
Successfully installed robotframework-redislibrary-0.1

编写脚本

*** Settings ***
Documentation 测试RF对redis的操作
... 注意&#xff01;请先在测试环境进行验证&#xff0c;避免对生产环境进行修改&#xff01;
... Maintainer : penn201500&#64;gmail.comLibrary RedisLibrary*** Variables ***
${key} some_key_of_redis
${host} 192.168.1.10
${redis_port} 8888
${redis_auth} password*** Test Cases ***
test_get_redis_valuelog 获取redis的key值${redis_conn}&#61; Connect To Redis ${host} ${redis_port} 0 ${redis_auth}${value}&#61; Get From Redis ${redis_conn} ${key}log value is&#xff1a;${value}log 修改value&#xff0c;重新获取Set to redis ${redis_conn} ${key} 1${new_value}&#61; Get From Redis ${redis_conn} ${key}log new value is&#xff1a;${new_value} log 对取到的value进行判断 should be equal ${value} 10should be equal ${new_value} 1sleep 10s


参考&#xff1a;
http://stackoverflow.com/questions/30149493/redis-auth-command-in-python
https://nottyo.github.io/robotframework-redislibrary/RedisLibrary.html


推荐阅读
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 通过利用代码自动生成技术,旨在减轻软件开发的复杂性,缩短项目周期,减少冗余代码的编写,从而显著提升开发效率。该方法不仅能够降低开发人员的工作强度,还能确保代码的一致性和质量。 ... [详细]
  • 本文详细介绍了使用 Python 进行 MySQL 和 Redis 数据库操作的实战技巧。首先,针对 MySQL 数据库,通过 `pymysql` 模块展示了如何连接和操作数据库,包括建立连接、执行查询和更新等常见操作。接着,文章深入探讨了 Redis 的基本命令和高级功能,如键值存储、列表操作和事务处理。此外,还提供了多个实际案例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 如何使用mysql_nd:Python连接MySQL数据库的优雅指南
    无论是进行机器学习、Web开发还是爬虫项目,数据库操作都是必不可少的一环。本文将详细介绍如何使用Python通过 `mysql_nd` 库与 MySQL 数据库进行高效连接和数据交互。内容涵盖以下几个方面: ... [详细]
  • Java 点餐系统源代码附带管理后台(免费提供)
    本项目提供了一套基于 Java 的点餐系统,包括前端小程序和后端管理平台。采用 Spring Boot 和 SSM 框架,结合 MySQL 和 Redis 数据库技术,适用于学习和二次开发。有需要源代码的开发者可以通过私信联系,免费获取下载链接。 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • Python错误重试让多少开发者头疼?高效解决方案出炉
    ### 优化后的摘要在处理 Python 开发中的错误重试问题时,许多开发者常常感到困扰。为了应对这一挑战,`tenacity` 库提供了一种高效的解决方案。首先,通过 `pip install tenacity` 安装该库。使用时,可以通过简单的规则配置重试策略。例如,可以设置多个重试条件,使用 `|`(或)和 `&`(与)操作符组合不同的参数,从而实现灵活的错误重试机制。此外,`tenacity` 还支持自定义等待时间、重试次数和异常处理,为开发者提供了强大的工具来提高代码的健壮性和可靠性。 ... [详细]
  • 在Eclipse中提升开发效率,推荐使用Google V8插件以增强Node.js的调试体验。安装方法有两种:一是通过Eclipse Marketplace搜索并安装;二是通过“Help”菜单中的“Install New Software”,在名称栏输入“googleV8”。此插件能够显著改善调试过程中的性能和响应速度,提高开发者的生产力。 ... [详细]
  • 在List和Set集合中存储Object类型的数据元素 ... [详细]
  • Python 程序转换为 EXE 文件:详细解析 .py 脚本打包成独立可执行文件的方法与技巧
    在开发了几个简单的爬虫 Python 程序后,我决定将其封装成独立的可执行文件以便于分发和使用。为了实现这一目标,首先需要解决的是如何将 Python 脚本转换为 EXE 文件。在这个过程中,我选择了 Qt 作为 GUI 框架,因为之前对此并不熟悉,希望通过这个项目进一步学习和掌握 Qt 的基本用法。本文将详细介绍从 .py 脚本到 EXE 文件的整个过程,包括所需工具、具体步骤以及常见问题的解决方案。 ... [详细]
  • Nginx 反向代理配置与应用指南
    本文详细介绍了 Nginx 反向代理的配置与应用方法。首先,用户可以从官方下载页面(http://nginx.org/en/download.html)获取最新稳定版 Nginx,推荐使用 1.14.2 版本。下载并解压后,通过双击 `nginx.exe` 文件启动 Nginx 服务。文章进一步探讨了反向代理的基本原理及其在实际应用场景中的配置技巧,包括负载均衡、缓存管理和安全设置等,为用户提供了一套全面的实践指南。 ... [详细]
  • 本指南详细介绍了在Linux环境中高效连接MySQL数据库的方法。用户可以通过安装并使用`mysql`客户端工具来实现本地连接,具体命令为:`mysql -u 用户名 -p 密码 -h 主机`。例如,使用管理员账户连接本地MySQL服务器的命令为:`mysql -u root -p pass`。此外,还提供了多种配置优化建议,以确保连接过程更加稳定和高效。 ... [详细]
  • 作为软件工程专业的学生,我深知课堂上教师讲解速度之快,很多时候需要课后自行消化和巩固。因此,撰写这篇Java Web开发入门教程,旨在帮助初学者更好地理解和掌握基础知识。通过详细记录学习过程,希望能为更多像我一样在基础方面还有待提升的学员提供有益的参考。 ... [详细]
  • 在 CentOS 6.5 系统上部署 VNC 服务器的详细步骤与配置指南
    在 CentOS 6.5 系统上部署 VNC 服务器时,首先需要确认 VNC 服务是否已安装。通常情况下,VNC 服务默认未安装。可以通过运行特定的查询命令来检查其安装状态。如果查询结果为空,则表明 VNC 服务尚未安装,需进行手动安装。此外,建议在安装前确保系统的软件包管理器已更新至最新版本,以避免兼容性问题。 ... [详细]
  • Netty框架中运用Protobuf实现高效通信协议
    在Netty框架中,通过引入Protobuf来实现高效的通信协议。为了使用Protobuf,需要先准备好环境,包括下载并安装Protobuf的代码生成器`protoc`以及相应的源码包。具体资源可从官方下载页面获取,确保版本兼容性以充分发挥其性能优势。此外,配置好开发环境后,可以通过定义`.proto`文件来自动生成Java类,从而简化数据序列化和反序列化的操作,提高通信效率。 ... [详细]
author-avatar
乐橙味_367
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有