【问题标题】:Junit testsuite in JmeterJmeter中的Junit测试套件
【发布时间】:2012-10-12 01:55:21
【问题描述】:

Jmeter 是否支持 Junit 测试套件?
这个问题困扰了我好几天,无论是junit 3还是4的风格,测试用例都运行良好。但是测试套件无论如何都是愚蠢的。
有什么建议吗?

我的代码如下:

public class LoginLogout extends TestCase {
    private static Logger log = Logger.getLogger(LoginLogout.class);

    public static Test suite() {
        try{
            log.info("test suite start!");

            TestSuite suite = new TestSuite(LoginLogout.class.getName());
            //$JUnit-BEGIN$
            suite.addTestSuite(Login.class);
            suite.addTestSuite(Logout.class);

            return new TestSetup(suite) {
                protected void setUp(){
                    log.info("test suite setup!");
                }
                protected void tearDown(){
                    log.info("test suite finished!");
                }
            };
        }catch(Exception e){
            log.error(e.getMessage());
        }
        return null;
    }

}

public class Login extends TestCase {
    private static Logger log = Logger.getLogger(Login.class);
    @Test
    public void testLogin() throws Exception {
        log.info("login start!");
        log.info("login end!");
    }
}

public class Logout extends TestCase {
    private static Logger log = Logger.getLogger(Logout.class);
    @Test
    public void testLogout() throws Exception {
        log.info("logout start!");
        log.info("logout end!");
    }

}

【问题讨论】:

  • 你混淆了 JUnit 3 和 4。删除测试用例中的 @Test 注解。也许这可以解决问题。或者您将所有内容都转为 JUnit 4。另一个问题可能是,您在包含您的套件()方法的类中扩展了 TestCase
  • 我在 Google 中搜索了所有相关主题,但在 Jmeter 中没有找到 junit testsuite 的示例,这就是为什么我怀疑它是否真的存在。

标签: java junit jmeter


【解决方案1】:

对于 JUnit4,套件将是:

@RunWith(Suite.class)
@SuiteClasses({Login.class, Logout.class})
public class LoginLogout {
  private static Logger log = Logger.getLogger(LoginLogout.class.getName());
}

TestClass 是:

public class Login {
    private static Logger log = Logger.getLogger(Login.class.getName());
    @Test
    public void testLogin() throws Exception {
        log.info("login start!");
        log.info("login end!");
    }
}

对我来说很好用

【讨论】:

  • 你的意思是它在 Jmeter 中有效吗?这是我最初的尝试,但看起来 Jmeter 不支持 Junit 4 风格的测试套件,@RunWith 注释似乎无法识别。
  • 我没有用JMeter尝试过,但是据此linkJUnit 4应该由JMeter提供
【解决方案2】:

您可以转到http://jmeter.apache.org/ 上的“下载 Apache JMeter”页面,并下载“apache-jmeter-2.8_src.zip”(或任何当前版本)。

解压后在apache-jmeter-2.8_src\apache-jmeter-2.8\src\junit\test目录下可以找到如下java文件(jmeter 2.8版本):

对于 JUnit4:

AfterAnnotatedTest.java
BeforeAnnotatedTest.java
DummyAnnotatedTest.java
Junit4AnnotationsTest.java

对于 JUnit3:

RerunTest.java
SetupTestError.java
SetupTestFail.java
TearDownTestFail.java

您可以在 JMeter 的 JUnit 请求的 Classname 下拉菜单中看到它们(测试计划 --> 线程组 --> JUnit 请求)。

这些 JUnit 测试用例默认由 JMeter 提供,因此我假设对其代码的简单复制和粘贴并从那里开始工作应该可以工作;但是,到目前为止,我无法在 Classname 下拉菜单中看到我的测试用例。

这是我发现的其他有用链接;但是,它们都没有解决我当前遇到的问题:

【讨论】:

  • 还有这个链接:anzaan.com/2012/07/…
  • 我已经解决了这个问题:“到目前为止,我无法在 Classname 下拉菜单中看到我的测试用例。” (如上所述)我没有使用“mvn install”(通过 pom.xml)来创建测试用例 jar 文件,而是简单地使用 Eclipse IDE 的“导出”功能来创建 jar 文件(不是 Runnable Jar,只是一个jar),然后将新建的jar文件复制到JMeter安装目录的“\src\junit”子文件夹中。
猜你喜欢
  • 1970-01-01
  • 2010-10-02
  • 1970-01-01
  • 2022-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-10
相关资源
最近更新 更多