1.安装环境
前提条件:已经安装go
安装xk6
go install go.k6.io/xk6/cmd/xk6@latest
安装成功会在GOPATH目录生成xk6可执行文件
安装xk6-redis
切换到xk6工作目录,执行如下命令
cd /Users/wan/go/bin
./xk6 build --with github.com/grafana/xk6-redis@latest
构建成功会在当前目录新增1个k6可执行文件
2.编写脚本
在当前目录新建test_redis.js文件
touch test_redis.js
test_redis.js
import redis from 'k6/x/redis';
import { check } from 'k6';const client = new redis.Client('redis://localhost:6379');export function setup() {client.set('key', 'value', 0);
}export default function () {client.get('key');
}
3.运行测试
运行前开启redis服务,然后执行命令
brew services start redis
./k6 run test_redis.js --duration 5s
测试结果
扩展负载
./k6 run test_redis.js --duration 5s --vus 1000
测试结果
查看redis客户端连接数量
redis-cli
info clients
config get maxclients
增加延迟
test_redis1.js
import { Trend } from 'k6/metrics';
import redis from 'k6/x/redis';let RedisLatencyMetric = new Trend('redis_latency', true);export let options = {vus: 40,duration: '10s',
}const client = new redis.Client('redis://localhost:6379');export function setup() {client.set('key', 'value', 0);
}export default function () {const start = Date.now();client.get('key');const latency = Date.now() - start;RedisLatencyMetric.add(latency);
}
测试结果
可以看到多了redis_latency指标