不做性能测试已经 3、4 年了,领导安排给新人分享下性能测试,于是着手各种材料,免不了关于性能测试工具。
以前的性能测试工具 LR、Neoload、Jmeter、Locust 如今要么消失在视野,要不版本更新的不认识了...
如今流行的性能工具中,K6 成功的吸引我,我就试试玩玩
安装见官方文档:https://k6.io/docs/getting-started/installation/
本机是 windows7,可不用 Chocolatey,因为有直接安装版:https://dl.k6.io/msi/k6-latest-amd64.msi
注:Win7 的系统变量 path 尾部多了/,需要删除,否则无法找到 k6
import http from 'k6/http';
import { sleep,check } from 'k6';
export const options={
insecureSkipTLSVerify: true,
stages: [
{ duration: '20s', target: 20 },
{ duration: '2m', target: 20 },
{ duration: '20s', target: 0 },
],
}
export default function () {
const res=http.request(
'POST',
'https://login.xxx.com/account/login',
{
loginName: 'xxx@xxx.com',
password:'xxx1234'
},
{
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
redirects:-1
},
)
check(res, {
'状态码(含重定向)是否200': (r) => r.status == 200,
'响应内容是否为json': (r) => !!r.json(),
'是否登录成功': (r)=>r.json().data.status==='000000'
});
sleep(1);
}
这里脚本很简单,就是测试一个登录 http 请求
熟悉 locust 的会发现两者很像:
docker run -idt --name=inluxdb --privileged=true --volume=/home/influxdb:/data -p 8083:8083 -p 8086:8086 tutum/influxdb:1.8
docker run -d --name=grafana -p 3000:3000 grafana/grafana
访问 influxdb 的 web 端:http://[宿主机 IP]:8083/
执行命令:CREATE DATABASE "db_K6"
可以创建 1 个用户 K6,并设置密码
1-配置数据源 - 选择 influxdb,查考如下
2-可以下载别人的 K6 模板 json,并导入,推荐:https://grafana.com/grafana/dashboards/10660
调试前先注释掉:options 中的 stages
k6 run --http-debug="full" ./k6_demo.js
k6 run --out influxdb=http://[宿主机 ip]:8086/db_K6 ./k6_demo.js
grafana 上对应仪表板设置好时间范围及更新频率,就可有个不输 locust 的运行时页面了
初步试用 K6 感觉还行,一些小坑也淌过去了。
性能工具这么多,比来比去也没必要,满足需求就是合适的。
至于要不要把 K6 开发 1 个平台,目前看没有必要,写脚本灵活更便于使用
何况我已经开发过 1 个基于 locust+boomer 的平台,真心觉得没时间维护,够用就行了