我的应用程序从WebSphere MQ读取XML请求,并使用单个或多个java对象进行响应。虽然我可以使用JMS点对点采样器发布XML请求和订阅者采样器来捕获我的应用程序发回的java对象。现在我希望java对象的反序列化能够断言相同。我有所需的jar可以帮助我反序列化,但我不知道如何在jmeter中执行此操作。有人可以提供关于我如何进行的指示吗?
答案 0 :(得分:0)
您需要在JMeter' / lib文件夹中拥有所有必需的依赖项。
然后,您可以添加一个JSR-223采样器/后处理器,使用这些依赖项执行您想要的Java代码。您可以选择那里的任何脚本语言,但要注意其中一些语言存在的性能问题(BeanShell会导致GC滞后)。
答案 1 :(得分:0)
添加JSR223 PostProcessor作为JMS P2P Sampler的子代,并将反序列化代码放入其中。将二进制响应转换为String时,您可以将值分配给JMeter变量:
vars.put("variableName", variableValue);
并在断言中使用它(JMeter Assertions可以定位JMeter变量)。
建议使用Groovy作为JSR223元素语言作为JavaScript,Beanshell等。解释器有一些性能问题,除了它们已经过时并且Groovy脚本可以编译成字节码(假设测试元素)正确配置)提供最佳性能。
有关如何设置groovy脚本引擎支持,有关缓存/使用变量/等的最佳实践的说明,请参阅Beanshell vs JSR223 vs Java JMeter Scripting: The Performance-Off You've Been Waiting For!指南。和某种形式的不同脚本引擎基准。