带有 jmeter 的 gRPC 在 alpine/jmeter:5.6.3 镜像中无法工作

问题描述 投票:0回答:1

我能够在 Kubernetes 中运行 jmeter http 采样器请求脚本,但是当我尝试使用 gRPC 请求时,出现以下错误:

2025-01-08 10:33:25,530 ERROR v.z.b.GRPCSampler: java.lang.RuntimeException: Unable to resolve service by invoking protoc: 
Unable to execute protoc binary
        at vn.zalopay.benchmark.core.ClientCaller.init(ClientCaller.java:88)
        at vn.zalopay.benchmark.core.ClientCaller.<init>(ClientCaller.java:53)
        at vn.zalopay.benchmark.GRPCSampler.initGrpcClient(GRPCSampler.java:81)
        at vn.zalopay.benchmark.GRPCSampler.initGrpcInCurrentThread(GRPCSampler.java:203)
        at vn.zalopay.benchmark.GRPCSampler.initGrpcRequestSampler(GRPCSampler.java:133)
        at vn.zalopay.benchmark.GRPCSampler.sample(GRPCSampler.java:90)
        at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:651)
        at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:570)
        at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:501)
        at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:268)
        at java.lang.Thread.run(Thread.java:750)

我能够从本地 JMeter UI 和命令行成功运行 gRPC 采样器请求,但在 docker 容器中执行它时遇到问题

docker 文件:

FROM alpine/jmeter:5.6.3
COPY ./lib/jmeter-grpc-request.jar /opt/apache-jmeter-5.6.3/lib/ext/jmeter-grpc-request.jar
COPY ./lib/jmeter-plugins-manager-1.10.jar /opt/apache-jmeter-5.6.3/lib/ext/jmeter-plugins-manager-1.10.jar
RUN apk add protobuf

我的原型文件:

syntax = "proto3";

package com.grpc.spring;

option java_package = "com.grpc.spring.service";
option java_outer_classname = "Solutions";
option java_generic_services = true;

option java_multiple_files = true;

service SolutionService {
  rpc getSolution (SolutionRequest) returns (SolutionResponse) {};
}

message SolutionRequest {
  string name = 1;
}

message SolutionResponse {
  string message = 1;
}

以下是来自本地/图像的协议版本:

本地:libprotoc 28.3 图片:libprotoc 24.4

协议版本的差异会对行为产生任何影响吗?

注:

jmeter-plugins-manager-1.10.jar
jmeter-grpc-request.jar
我都将其从本地推送到图像。

任何帮助将不胜感激。预先感谢。

jmeter grpc jmeter-plugins protoc protobuf-java
1个回答
0
投票

在本地和 k8s pod 中运行

arch
命令并查看输出是什么。您可能需要重新编译或交叉编译您的原始文件

接下来考虑查看 jmeter.log 文件是否有任何可疑条目,并且至少对于您遇到问题的组件/插件,启用 JMeter 调试日志记录也是一个好主意。

© www.soinside.com 2019 - 2024. All rights reserved.