xk6 构建原理说明
xk6 是基于了caddyserver 的一个构建工具,实际上原理上不难,依赖了golang 的一些工具包
比如go mod,go get,go build
参考main代码
类似db的模块注册,然后引入依赖的模块
模块的开发
有介绍过,就是一个module 的注册,将go 对象暴露为goja 的object,还是比较简单的
模块注册,参考使用了init
package sql
import (
dbsql "database/sql"
"log"
_ "github.com/go-sql-driver/mysql"
_ "github.com/lib/pq"
_ "github.com/mattn/go-sqlite3"
"github.com/loadimpact/k6/js/modules"
)
func init() {
modules.Register("k6/x/sql", new(SQL))
}
运行命令
类似了nginx 的模块,但是是基于go 的模版以及go get 工具实现处理的,构建使用了
xk6 命令行工具
xk6 build v0.29.0 --with github.com/k6io/xk6-redis
说明
如果检测了运行命令,会发现,xk6先生成一个临时的golang mod 项目,按照上边的模版填充,然后进行构建,简化了
我们基于代码的复杂处理
参考资料
https://k6.io/blog/extending-k6-with-xk6#existing-k6-extensions