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

原文地址:https://www.cnblogs.com/rongfengliang/p/14286920.html