开发者社区 > 云原生 > 云原生可观测 > 正文

PTS的Jmeter场景下beanSheel导包报错能帮忙看一下嘛?

PTS的Jmeter场景下beanSheel导包报错能帮忙看一下嘛?08743cf7fd7c77d53b9fbd6244b67284.png

展开
收起
三分钟热度的鱼 2023-07-04 18:45:14 86 0
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    当在JMeter的BeanShell脚本中引用外部Java类时,可能需要将类的jar包文件添加到JMeter的classpath路径中,否则会导致类找不到或无法加载的错误。以下是一些可能的解决方法:

    将jar包文件放到JMeter的lib目录下
    在JMeter的安装目录中,有一个名为lib的目录,可以将要引用的jar包文件放到该目录下。这样,在运行JMeter时,jar包文件就会被自动加载到classpath中,可以在BeanShell脚本中直接引用。

    在BeanShell脚本中手动添加classpath
    在BeanShell脚本中,可以使用以下语句手动添加需要引用的jar包文件所在的路径到classpath中:

    reasonml
    Copy
    import java.net.URL;
    import java.net.URLClassLoader;
    URL[] urls = new URL[] {
    new URL("file:/path/to/myjar.jar")
    };
    ClassLoader loader = new URLClassLoader(urls, this.getClass().getClassLoader());
    Thread.currentThread().setContextClassLoader(loader);
    其中,/path/to/myjar.jar表示要引用的jar包文件的路径。该语句会将jar包文件所在的路径添加到当前线程的classpath中,并返回一个新的类加载器对象。在使用脚本中需要引用的Java类时,可以通过该类加载器对象来加载对应的类。

    2023-07-30 15:07:53
    赞同 展开评论 打赏
  • 有可能是版本不兼容。Gson的用法和fastjson一样的。import com.google.gson.Gson;后9b6d21e6dcf15591b752cfff3313f166.png我刚刚试了一下,h.chncpa.org 连接超时,是不是开启ip白名单了,可以把这些beanshell都try cach一下,对异常logger.error,对脚本的入参也log.info看下,有可能实际入参和脚本预期不一致,导致fastjson反序列化为空,或者是超时还是什么原因,导致返回的response内没有值,于是反序列化得到的结果是空。此回答整理自钉群“【4群】PTS用户交流群”

    2023-07-04 20:37:27
    赞同 展开评论 打赏

云原生可观测基于Prometheus、Grafana 、OpenTelemetry 等核心产品, 形成指标、链路存储分析、异构数据源集成的数据层, 通过标准PromQL和SQL提供大盘展示、告警与探索能力。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载