1

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!");
    }

}
4

2 回答 2

1

您可以转到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 请求的类名下拉菜单中看到它们(测试计划 --> 线程组 --> JUnit 请求)。

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

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

于 2013-01-10T01:01:05.953 回答
0

对于 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!");
    }
}

对我来说工作得很好

于 2012-10-22T09:35:55.913 回答