zoukankan      html  css  js  c++  java
  • java、python及jmeter操作redis(接口自动化必备)

    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("
    ---string---");
    jedis.set("name","jack");
    String name = jedis.get("name");  // 返回的string
    System.out.println("name: " + name);

    结果:

    ---string---
    name: jack

    list

    System.out.println("
    ---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("
    ---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("
    ---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("
    ---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("
    ---获取所有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.1libext

    清空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

  • 相关阅读:
    HDU 1010 Tempter of the Bone(DFS剪枝)
    HDU 1013 Digital Roots(九余数定理)
    HDU 2680 Choose the best route(反向建图最短路)
    HDU 1596 find the safest road(最短路)
    HDU 2072 单词数
    HDU 3790 最短路径问题 (dijkstra)
    HDU 1018 Big Number
    HDU 1042 N!
    NYOJ 117 求逆序数 (树状数组)
    20.QT文本文件读写
  • 原文地址:https://www.cnblogs.com/uncleyong/p/10950733.html
Copyright © 2011-2022 走看看