我发送 GRPC 请求并抛出 Jmeter(使用此库 - https://github.com/zalopay-oss/jmeter-grpc-request)。当我发送请求正文时抛出邮递员 - al 工作正常 当我使用 Jmeter 发送请求时 - 我收到错误:
2024-05-03 13:10:54,009 ERROR v.z.b.GRPCSampler: java.lang.RuntimeException: Caught exception while parsing request for rpc
at vn.zalopay.benchmark.core.ClientCaller.buildRequestAndMetadata(ClientCaller.java:187)
at vn.zalopay.benchmark.GRPCSampler.initGrpcInCurrentThread(GRPCSampler.java:204)
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(null:-1)
在查看结果树中我有:
Thread Name:Thread Group 1-1
Sample Start:1970-01-01 03:00:00 MSK
Load time:0
Connect Time:0
Latency:0
Size in bytes:744
Sent bytes:0
Headers size in bytes:0
Body size in bytes:744
Sample Count:1
Error Count:1
Data type ("text"|"bin"|""):text
Response code: 400
Response message: GRPCSampler parsing exception: An unknown exception occurred before the GRPC request was initiated, See response body for the stack trace.
SampleResult fields:
ContentType:
DataEncoding: UTF-8
在树中的响应数据中我有:
java.lang.RuntimeException: Caught exception while parsing request for rpc
at vn.zalopay.benchmark.core.ClientCaller.buildRequestAndMetadata(ClientCaller.java:187)
at vn.zalopay.benchmark.GRPCSampler.initGrpcInCurrentThread(GRPCSampler.java:204)
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(null:-1)
我不明白原因,那我该如何调试呢?
获取 Java IDE
从 https://github.com/zalopay-oss/jmeter-grpc-request 获取您正在使用的插件的源代码
将项目导入IDE
添加运行/调试配置,以便在本地机器上进行远程调试
运行您的 JMeter 实例
java -jar --agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 ApacheJMeter.jar
浏览该函数(单步执行)并查看其失败的具体位置和原因
更多信息:如何调试 JMeter 测试脚本