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