【问题标题】:JMeter JUnit SpringRunner issueJMeter JUnit SpringRunner 问题
【发布时间】:2013-06-26 12:39:08
【问题描述】:

我的 JUnit 测试是这样定义的:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "/spring-test.xml" })
public abstract class MyTest {

当测试通过 maven 等正常运行时,它工作得很好。 但是,当我尝试使用 JMeter 运行它时,似乎它不再设置 xml 文件中定义的 spring 依赖项,看起来这个 RunWith 注释被忽略了。尝试使用弹簧注入的依赖时,我得到了 NPE。 有没有解决方法如何正确解决?

【问题讨论】:

    标签: java spring testing junit jmeter


    【解决方案1】:

    几天后就开始尝试让同样的事情正常工作。
    但是注释有问题。
    它在 jmeter 中运行而不使用注释,例如使用以下方法加载上下文:

    ApplicationContext context = new FileSystemXmlApplicationContext("Spring-Module.xml");
    context.getBean("helloWorld");
    

    【讨论】:

    • 是的,我也这样做作为一种解决方法,但这很烦人。
    • 是的。 @RunWith 是 Jmeter jar 中 Junit(使用 4.11)的一部分。尽管在 jmeter 的 lib 下进行了 spring-test,但它无法获取 SpringJUnit4ClassRunner 令人困惑。
    • 我有很多使用注释的现有测试用例;所以这个解决方法不会削减它。
    • 我所有的测试都是从一个抽象的扩展而来的,它有这个注释。所以我只需要在一个地方改变它;)
    【解决方案2】:

    JUnit Sampler 实现没有使用标准的 JUnit Runner 工具。 请参阅文档中的第 7 点 (http://jmeter.apache.org/usermanual/component_reference.html#JUnit_Request)。

    另请阅读此票中的讨论: https://issues.apache.org/bugzilla/show_bug.cgi?id=47888#c1.

    如果您对实现感兴趣,请查看org.apache.jmeter.protocol.java.sampler.JUnitSampler

    【讨论】:

    • > Apache JMeter 是一个 100% 纯 Java 桌面应用程序,旨在加载测试客户端/服务器软件(例如 Web 应用程序)。 (请参阅jmeter.apache.org/usermanual/intro.html)如果这不是您的方案,那么 JMeter 不是正确的工具。您是否考虑过使用 Ant/Maven 来触发您的单元测试?
    • 我想将 jmeter 与 maven 和 jenkins 集成,这样我们就可以对使用 jenkins 运行的一些重要集成测试获得持续的性能指标
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-07
    • 2020-03-13
    • 2021-07-28
    • 1970-01-01
    相关资源
    最近更新 更多