我目前正在编写一个Sping Boot 应用程序,它将在另一个应用程序上执行负载测试。我想使用Gatling来管理测试,但我需要它来访问我在Spring应用程序的bean中定义的配置。
以下是我希望看到的效果:
public class MySimulation extends Simulation {
@Autowired
private JMSConnectionFactoryBeanClass myConnectionFactory;
public MySimulation() {
JmsProtocolBuilder jmsProtocol = jms.connectionFactory(myBean);
ScenarioBuilder scn = scenario("My Simulation Scenario")
.exec(
jms("test")
.send()
.queue("myQueue")
.textMessage("message")
);
{
setUp(
scn.injectOpen(rampUsers(10).during(5))
).protocols(jmsProtocol);
}
}
当我将配置硬编码到模拟类中并删除所有@Autowired的东西时,一切都正常,所以它一定来自依赖注入。有人知道是否有办法在gatling模拟中使用spring bean吗?
3条答案
按热度按时间piwo6bdm1#
下面是我根据Stéphane Landelle的建议所做的工作,但我没有在模拟中创建应用上下文,而是使用gatling API来运行模拟沿着Spring应用:
下面是我修改spring应用的过程:
最后,为了在模拟中使用Springbean,我编写了一个上下文提供程序,它将在Spring和Gatling之间建立链接:
现在,要在模拟中得到一个bean,我所需要的就是这个:
6ss1mwsb2#
不能使用
@Autowired
,必须以编程方式创建一个ApplicationContext
,并从中提取JMSConnectionFactoryBeanClass。dnph8jn43#