JMeter测试中CXF的不连贯行为

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

我在公司计算机上使用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,该错误可能是由于编组/解组或错误使用Jackson所致,那么可能需要用源代码对修复程序进行编码并部署新版本的工件。

但是此版本的工件在我们的笔记本中正常运行,然后我认为这是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 fuse
1个回答
0
投票

您的AnyBusinessProCessResultImpl不属于JMeter,这是custom,最有可能是某种形式的Java Class,用于生成请求正文。

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

  • lib
  • 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版本)。

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