以上解决方法是否可行?
您的解决方案将起作用。但是,如果您长期需要它,我建议您实现自定义Java
Sampler,而不要使用客户端类和使用BeanShell sampler
。这是非常实用的,因为它在工作方式上与实现自定义客户端+
BeanShell采样器脚本相似/相同,但是Java采样器通常比BeanShell采样器更有效,并且这种解决方案的可维护性会更好(您不会拥有2个合作伙伴依赖的组件进行维护)。
一个更合适的选择是创建自己的JMeter插件(我在这里提供的链接是旧的,虽然不太准确,但这是一个很好的起点)。这是一项相当大的投资,但是如果您发现更简单的解决方案通常可以使用,但是有一些主要限制,或者您需要更高级别的可配置性和控制能力,那么最终还是值得的。
每个线程都会创建一个单独的TCP连接吗?
每个线程独立运行,但是每个线程是否将具有自己的连接将取决于您如何实现它们。在直接实现中(采样器创建和销毁连接),每个线程将具有一个单独的TCP连接。但是JMeter具有在线程之间共享的属性,线程之间可以共享对象。因此,您可以通过这种方式在线程之间共享连接。或者,您可以实现配置元素,该元素可以包含一个由所有线程共享的连接池。



