Junit在Jmeter中测试

时间:2012-10-22 09:24:00

标签: java junit jmeter

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

}

2 个答案:

答案 0 :(得分: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

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

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

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

答案 1 :(得分: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!");
    }
}

为我工作好