【问题标题】:Uncoherent behaviour of CXF in JMeter testsJMeter 测试中 CXF 的不连贯行为
【发布时间】:2019-10-07 22:51:08
【问题描述】:

我在公司计算机上使用 Apache JMeter 测试 Fuse 时遇到问题:我正在使用 Java 7、JBoss Fuse 6.1.1 和 JMEter 3.0(和 3.2)。

我有一套测试在哪里

  1. 我发送一个 HTTP 请求;
  2. 已部署的应用程序通过 HTTP 请求的路径读取请求;
  3. 它意识到我正在调用 XML 中的存根文件;
  4. 应用程序读取了存根目录中的正确文件;
  5. 应用程序遵循业务逻辑。

令我惊讶的是,这个过程在我和我同事的笔记本上都能正常工作,但在公司的电脑上却不行。

在我公司的计算机中,该过程到达倒数第二个步骤,在最后一步我收到此错误:

ID:1 响应代码:500

内容类型:文本/纯文本

标题:{/*一些东西/}

有效负载:未找到响应的消息正文编写器 类 AnyBusinessProCessResultImpl。

AnyBusinessProCessResultImpl 是由我无法修改的其他文件(如 DSL)创建的 Java Bean。

阅读this question,错误喜欢由编组/解组或杰克逊的不正确使用产生, 那么可能需要在源代码中编写修复程序并部署新版本的工件。

但是这个版本的神器在我们的笔记本上运行正常,那么我认为这是JMeter或Fuse的问题(在3工作站中相同)。 3台工作站的配置相同, 主要区别是我在公司计算机中没有任何管理员权限(我在虚拟机中工作),在我的笔记本中,我有, 但我想在 Windows 7 工作站中发送/接收 HTTP 请求可以在用户空间上工作,没有任何管理员权限。

另一个想法是按正确顺序加载库的问题:可能在公司计算机中 Fuse 的库/模块 OSGI,但这似乎是一个太低级别的推测。

我注意到唯一的区别在于响应负载中的标头:在公司计算机中,它缺少有关内容类型的标头

Content-Type: text/plain
 
Headers: {/**some stuff*/} 

在笔记本中的样子

Content-Type: text/xml
 
Headers: {blabla, content-type="text/xml", blabla} 

但是,同样,我不明白工作站中相同配置之间的差异。

请问您还有其他建议或想法要调查吗?

【问题讨论】:

    标签: java jmeter cxf content-type jbossfuse


    【解决方案1】:

    您的AnyBusinessProCessResultImpl 不属于JMeter,它是自定义 的东西,很可能它是用于生成请求正文的Java Class 的某种形式。

    您需要交叉检查following folders的内容:

    • lib/ext
    • lib/junit

    以及下面properties的值

    • search_paths
    • user.classpath

    假设您将在 JMeter Classpath 下拥有相同的 Java 库集 - 您将能够获得相同的行为。

    最简单的方法是将 JMeter 安装从您的一台同事机器复制到您的机器/VM。

    还请注意,根据9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure 文章,您应该始终使用最新版本的 JMeter,因此请考虑升级到JMeter 5.1.1(或JMeter Downloads 页面上提供的最新稳定 JMeter 版本),以便下次有机会.

    【讨论】:

    • 嗨,我从另一个工作站复制了 JMeter 安装,但我遇到了问题。奇怪的是,如果我的一个同事登录到我的工作站并测试 JMeter,就可以了!因为我在工作站工作但使用虚拟机,我怀疑我的类路径中有一个奇怪的配置
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-07
    • 1970-01-01
    • 2020-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多