
kubeshop/testkube-jmeter-executor执行器是一个包装在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
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现在将使用新镜像,您可通过首选方式调度测试。


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务