2012-10-22 234 views
1

Jmeter是否支持Junit測試套件?
這個問題困擾了我好幾天,測試用例都運行良好,無論是3或4的junit風格。但測試套件無論如何都是愚蠢的。
有什麼建議嗎?Jmeter中的Junit測試套件

我下面的代碼:

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

} 
+0

你混了JUnit 3和4刪除@Test標註在測試用例。也許這可以解決問題。或者你把所有的東西都變成JUnit 4. 另一個問題可能是,你在包含你的suite()的類中擴展TestCase - 方法 – kirschmichel

+0

我在Google搜索了所有相關的主題,但Jmeter中沒有任何一個junit測試套件的例子發現,爲什麼我懷疑它是真實存在的。 – pangbuddy

回答

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

工作得很好,我

+0

你的意思是它在Jmeter中工作嗎?這是我最初的嘗試,但它看起來Jmeter不支持Junit 4風格的測試套件,@RunWith註釋似乎無法識別。 – pangbuddy

+0

我還沒有用JMeter試過,但是根據這個[link](http://jmeter.apache.org/changes_history.html)JUnit 4應該由JMeter – kirschmichel

1

你可以去「下載Apache JMeter」頁面在http://jmeter.apache.org/上下載並下載「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請求)上的Classname下拉菜單中看到它們。這些JUnit測試用例默認由JMeter提供,所以我假設他們的代碼的簡單複製和粘貼以及從那裏開始工作;但是,到目前爲止,我無法看到我的測試用例出現在Classname下拉菜單中。

下面是我找到的其他有用的鏈接;然而,他們沒有解決目前的問題,我遇到:

+0

提供,這個鏈接也是:http:// www。 anzaan.com/2012/07/integrating-selenium-with-jmeter-for-application-load-testing/ – Martin

+0

我已經解決了這個問題:「到目前爲止,我無法看到我的測試用例出現在Classname下拉列表中菜單。」 (如上所述) 而不是使用「mvn install」(通過pom。xml)來創建測試用例jar文件,我只是使用Eclipse IDE的「導出」功能來創建jar文件(不是Runnable Jar,只是一個普通的Jar),然後將新創建的jar文件複製到「\ src \ junit「JMeter安裝目錄的子文件夾。 – Martin

相關問題