完整内容在此, 干话王_Grafana xk6

最近因为任务,需要对公司的平台做 smoke testing 与一些基本的 load testing。但因为我们是 Web3 的产品有点麻烦,登入要 OTP 验证,还有很多签章的流程需要处理。刚好又是做借贷撮合的平台,需要开多个浏览器登入不同角色跟帐号进行操作。刚好 k6 有提供 xk6 来建置出 k6 的插件。

除此之外这测试脚本还是能跟原本的 k6 http load testing 脚本混合执行。同时能执行浏览器的测试以及 API 的压测的 solution 不算多,k6 算是其中之一。

但这篇先来写 xk6 .


Grafana k6 Browser previos version

k6 Browser 本来也是 k6 的插件之一,也是用 xk6 来编译使用的,但到了 k6 0.56 版本后,就被合併到 k6 的主要程式库当中了。刚好在写文章当下也是最新版本也是 0.56。

Starting from k6 version v0.56, this codebase has been merged and is now part of the main k6 repository.

但我们能看一下它原本是怎么透过 xk6 编译的。根目录中的 Makefile 中的 build job.

go install go.k6.io/xk6/cmd/xk6@latest &&
xk6 build --output xk6-browser --with github.com/grafana/xk6-browser=.

xk6

https://github.com/grafana/xk6 xk6 主要是利用 Go 语言的 package 管理器来进行套件的下载与编译出 k6 套件的, 所以套件开发者需要安装 Go 才方便编译 xk6 撰写的套件.

** 安装 xk6 **

# Install xk6
go install go.k6.io/xk6/cmd/xk6@latest

然后用 Go 指令新建一个专案, 这里我用简单的 OTP 产生器为例子. 以下是档案目录.

├── otp
│ ├── go.mod
│ ├── go.sum
│ └── otp.go

完整内容在此, 干话王_Grafana xk6