执行器是一个包装在Docker容器中的程序,它接收基于OpenAPI的testkube.Execution JSON文档作为输入,并返回JSON输出行流(testkube.ExecutorOutput),其中每行输出都简单地包装在该JSON中,类似于结构化日志的理念。
这是一个基本的JMeter执行器,能够运行JMX格式编写的简单JMeter场景。请将JMeter文件定义为文件(字符串或Git文件)。目前尚未实现项目目录功能。
默认安装以下插件:
您可以在创建或执行JMeter测试时,利用Testkube的文件复制功能添加更多JMeter插件。JMeter插件JAR文件需复制到执行器容器的uploads目录。
示例:
shellkubectl testkube create test \ --file test.jmx \ --copy-files "/source/path/to/jmeter-plugins-functions-2.1.jar:plugins/jmeter-plugins-functions-2.1.jar" \ --name jmeter-test \ --type jmeter/test
确保以下工具已安装在您的机器上并在PATH中可用:
data/的目录(JMeter将在此运行并存储结果,建议在项目根目录创建,因为该目录已被git忽略)data/目录下的test-content文件execution.json(建议保存在项目根目录的temp/文件夹,因为该目录已被git忽略):
json{ "id": "jmeter-test", "args": [], "variables": {}, "content": { "type": "string" } }
RUNNER_SCRAPPERENABLED、RUNNER_SSL和RUNNER_DATADIR环境变量,并使用make run run_args="-f|--file <path>"命令运行执行器,其中-f|--file <path>是步骤3中创建的execution.json文件路径:
bashRUNNER_SCRAPPERENABLED=false RUNNER_SSL=false RUNNER_DATADIR="./data" make run run_args="-f temp/execution.json"
Execution JSON存储执行器运行配置测试所需的信息,结构说明如下:
json{ "args": ["-n", "-t", "test.jmx"], "variables": { "example": { "type": "basic", "name": "example", "value": "some-value" } }, "content": { "type": "string" } }
["-n", "-t", "test.jmx"]{"example": {"type": "basic", "name": "example", "value": "some-value"}}bashRUNNER_SSL=false # 若存储后端使用HTTPS则设置,本地开发应设为false RUNNER_SCRAPPERENABLED=false # 启用/禁用scrapper,本地开发应设为false RUNNER_DATADIR=<path-to-data-dir> # JMeter运行和存储结果的数据目录路径
testkube命名空间)本地验证执行器变更正常工作后,需测试Testkube能否成功调度使用新执行器镜像的测试。以下命令假设Testkube安装在testkube命名空间,若在其他命名空间,请调整--namespace参数。
使Testkube使用新执行器镜像的步骤:
使用make docker-build-local命令构建新执行器镜像。默认标记为kubeshop/testkube-executor-jmeter:999.0.0,可通过LOCAL_TAG环境变量自定义。
将镜像加载到Kubernetes集群:
kind load docker-image <image-name> --name <kind cluster name>(示例:kind load docker-image testkube-executor-jmeter:999.0.0 --name testkube-k8s-cluster)minikube image load <image-name> --profile <minikube profile>(示例:minikube image load testkube-executor-jmeter:999.0.0 --profile k8s-cluster-test)编辑Job模板,将imagePullPolicy改为IfNotPresent:
kubectl edit configmap testkube-api-server --namespace testkubejob-template.yml键,修改containers部分的imagePullPolicy字段为IfNotPresent编辑执行器配置,将基础镜像改为新创建的镜像:
kubectl edit configmap testkube-api-server --namespace testkubeexecutors.json键,修改名称为jmeter-executor的执行器的executor.image字段重启API Server:kubectl rollout restart deployment testkube-api-server --namespace testkube
Testkube现在将使用新镜像,您可通过首选方式调度测试。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429