redis是nosql数据库之一,其存储结构简单,提供高性能服务,所以在架构中是很常用的。

在做接口自动化测试过程中,有时也会涉及到redis,比如:发送短信验证码,我们做接口自动化测试,如何模拟发送短信验证码呢?

一般来说,短信验证码都是存储到redis中的,且有过期时间,我们完全可以直接往redis里面插入一个k-v来模拟发送短信验证码,所以,就得学会java、python及jmeter操作redis了。

java操作redis

创建项目

创建maven项目,添加依赖

<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency> 

连接redis

System.out.println("---连接redis---");
Jedis jedis = new Jedis("192.168.168.168",6379);
jedis.auth("test123"); // redis数据库的密码
jedis.select(0); // 哪怕注释这行,也没问题,因为默认就是选择的db0
jedis.flushDB(); 

string

System.out.println("\n---string---");
jedis.set("name","jack");
String name = jedis.get("name"); // 返回的string
System.out.println("name: " + name);

结果:

---string---
name: jack

list

System.out.println("\n---list---");
jedis.lpush("testlist", "aaa", "bbb", "ccc");
System.out.println(jedis.lrange("testlist",0,-1));
List<String> keys = jedis.lrange("testlist",0,-1); // 返回的list
System.out.println(keys);

结果:

---list---
[ccc, bbb, aaa]
[ccc, bbb, aaa]

set

System.out.println("\n---set---");
jedis.sadd("testset", "a", "b", "c");
System.out.println(jedis.smembers("testset"));
Set<String> keys2 = jedis.smembers("testset"); // 返回的set
System.out.println(keys2);

结果:

---set---
[b, a, c]
[b, a, c]

zset

System.out.println("\n---zset---");
jedis.zadd("testzset",10,"aa");
jedis.zadd("testzset",20,"bb");
jedis.zadd("testzset",30,"cc");
System.out.println(jedis.zrange("testzset", 0, -1));
Set<String> keys3 = jedis.zrange("testzset", 0, -1); // 返回的set
System.out.println(keys3);

结果:

---zset---
[aa, bb, cc]
[aa, bb, cc]

hash

System.out.println("\n---hash---");
jedis.hset("testhash", "name", "lucy");
jedis.hset("testhash", "age", "18");
Set<String> keys4 = jedis.hkeys("testhash"); // 返回的set
System.out.println(keys4);
for (String key:keys4){
System.out.println(key+"="+jedis.hget("testhash",key));
}

结果:

[name, age]
name=lucy
age=18

获取所有key

System.out.println("\n---获取所有key---");
Set<String> keys5 = jedis.keys("*"); // 返回的set
System.out.println(keys5);

结果:

---获取所有key---
[testlist, name, testzset, testhash, testset]

关闭连接

jedis.close();

python操作redis

参考:https://gitee.com/UncleYong/my_rf/blob/master/db_operate/redis_operate.py

jmeter操作redis

下载jar包,下载地址:https://mvnrepository.com/,获取点击左侧加群获取。

放到如下目录,即:D:\apache-jmeter-5.1.1\lib\ext

清空redis中db0

beanshell脚本

import redis.clients.jedis.Jedis;

Jedis jedis = new Jedis("192.168.168.168",6379);

jedis.auth("test123");
jedis.select(0);
jedis.hset("mobile:13888088168","vefication","168168");
jedis.close();

运行上面脚本,然后通过命令查看添加的结果

更多redis命令,参考:https://www.cnblogs.com/UncleYong/p/10950727.html

java、python及jmeter操作redis(接口自动化必备)的更多相关文章

  1. Jmeter+ant+Jenkins接口自动化框架搭建

    摘自:https://testerhome.com/topics/13389 一.背景  上一篇讲了Jmeter 接口自动化-脚本数据分离实例,我们知道怎么利用Jmeter去编写接口自动化脚本,但是接 ...

  2. Python+Pytest+Allure+Git+Jenkins接口自动化框架

    Python+Pytest+Allure+Git+Jenkins接口自动化框架 一.接口基础 接口测试是对系统和组件之间的接口进行测试,主要是效验数据的交换,传递和控制管理过程,以及相互逻辑依赖关系. ...

  3. JAVA中通过Jedis操作Redis连接与插入简单库

    一.简述 JAVA中通过Jedis操作Redis连接与插入简单库 二.依赖 <!-- https://mvnrepository.com/artifact/redis.clients/jedis ...

  4. Jmeter+Ant+Jenkins接口自动化框架

    最近应公司要求,搭建一套接口自动化环境.看到通知邮件,没有多想就确定了Jmeter路线.可能有些人会 说,为啥不用python,相对而言高大上一些.因为公司内部现在项目有用到Jmeter,正好可以结合 ...

  5. Win10系统Jmeter+maven+Jenkins接口自动化环境搭建(一)

    Jmeter+maven+Jenkins实现接口自动化,需要使用idea或eclipse配置maven项目,这里我使用的是idea.具体步骤如下: 1.安装jmeter+jdk jmeter安装之前需 ...

  6. Python+Unittest+Requests+PyMysql+HTMLReport 接口自动化框架

    整体框架使用的是:Python+Unittest+Requests+PyMysql+HTMLReport  多线程并发模式 主要依赖模块 Unittest.Requests.PyMysql.HTMLR ...

  7. Java中使用Jedis操作Redis(转载)

    整理 1.字符串 添加:set keyname value 查询:get keyname 拼接:append keyname value 删除:del keyname 添加多个: mset keyna ...

  8. (转)Java中使用Jedis操作Redis

    转自http://www.cnblogs.com/liuling/p/2014-4-19-04.html 使用Java操作Redis需要jedis-2.1.0.jar,下载地址:http://file ...

  9. Java中使用Jedis操作Redis

    使用Java操作Redis需要jedis-2.1.0.jar,下载地址:http://files.cnblogs.com/liuling/jedis-2.1.0.jar.zip 如果需要使用Redis ...

随机推荐

  1. [LeetCode] 466. Count The Repetitions 计数重复个数

    Define S = [s,n] as the string S which consists of n connected strings s. For example, ["abc&qu ...

  2. Elasticsearch由浅入深(五)_version乐观锁、external version乐观锁、partial update、groovy脚本实现partial update

    基于_version进行乐观锁并发控制 先构造一条数据出来 PUT /test_index/test_type/ { "test_field": "test test&q ...

  3. C# HTTP系列7 HttpWebRequest.Method属性

    系列目录     [已更新最新开发文章,点击查看详细] HttpWebRequest.Method属性,获取或设置请求的方法.用于联系 Internet 资源的请求方法. 默认值为 GET. Syst ...

  4. rust下获取本机IP

    又拾起了rust语言, 想写一点东西玩一玩, 但是发现连一个获取本机IP地址的库都没有, 还得挽起袖子自己撸. https://crates.io/crates/local_ipaddress 没有用 ...

  5. PHP的小技巧

    PHP的小技巧fdd()[0]函数后面可以直接加数组索引 这样可以省内存占用啦 代码也更简洁

  6. centos7 安装docker(手动和脚本安装)换源 卸载

    centos7 安装docker(手动和脚本安装)换源 卸载 Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker ...

  7. SpringBoot 基于web应用开发(请求参数获取,静态资源,webjars)

    SpringBoot 基于web应用开发 一.Lombok使用 1.导入依赖库 <dependency>    <groupId>org.projectlombok</g ...

  8. GitHub的高级搜索功能

    1. 首先,提供Github高级搜索帮助页面https://help.github.com/categories/search/     2. 搜索语法https://help.github.com/ ...

  9. 关于 Task.Run 简单的示例

    1. 关于 Task.Run 简单的示例01 直接贴代码了: public static class TaskDemo01 { public static void Run() { Console.W ...

  10. 错误:error: failed to push some refs to 'https://github.com/pzq7025/KG.git'的解决办法

    一.问题在进行[git push orgin master]的时候出现如下错误 ! [rejected] master -> master (non-fast-forward) error: f ...