코드로testng을 터치하여 동시 테스트를 실현하다

3137 단어
때때로 테스트 용례가 코드로 터치되기를 원하고testng이 이런 조작을 지원하는 것을 발견하여 기록합니다.
테스트 의존도를 먼저 추가하려면:
    
      org.testng
      testng
      6.9.10
    

그리고 호출될 테스트 용례를 실현한다.
/**
 * testng         
 */
public class ConcurrentTest {

    @Test(threadPoolSize = 10, invocationCount = 10, timeOut = 1000)
    public static void display() {
        System.out.println(UUID.randomUUID().toString());
    }
}

다시 코드를 사용하여 이 테스트 용례를 터치합니다.
/**
 *     testng  
 */
public class TestNgDemo {

    public static void main(String[] args) {
        /**   testNG  */
        TestNG testNG = new TestNG();
        TestListenerAdapter listener = new TestListenerAdapter();

        testNG.addListener(listener);

        /**            */ testNG.setTestClasses(new Class[]{ConcurrentTest.class}); /**      */ testNG.run(); /**    */ List pass = listener.getPassedTests(); List failed = listener.getFailedTests(); List interval = pass.stream().map(x -> (x.getEndMillis() - x.getStartMillis())).collect(Collectors.toList()); /**    */ long maxtime = interval.stream().max(Comparator.naturalOrder()).get(); /**    */ long mintime = interval.stream().min(Comparator.naturalOrder()).get(); /**    */ double avgtime = interval.stream().mapToDouble(i -> i).average().getAsDouble(); System.out.println(String.format("test result: [success: %s],[failure: %s]",pass.size(),failed.size())); System.out.println(String.format("performance analysis: [maxtime: %s(ms)],[mintime: %s(ms),[avgtime: %s(ms)]]", maxtime, mintime, avgtime)); } }

최종 실행 결과는 다음과 같습니다.
[TestNG] Running:
  Command line suite

894eecc7-6d39-4b8d-bc6f-36c94296ff13
f7bdeb99-2baf-4894-a0a3-40fd0792432a
ce27be2e-402b-46bb-8b71-c983f2d3b36c
4b042268-ede8-4c75-9d9a-e5ea7cf63d93
a2dd8b48-56e9-4187-b2f8-004a99164b3c b4d188e2-1ba4-4635-a546-7131faa2dede cbffc694-f0f5-48e3-80ec-e9cebdb054b9 904eaab1-3ef7-4627-bc6c-0e890510b119 3db7eb16-f369-449c-be2c-cb89e9647ad0 c4baf3ce-a162-40e0-aa27-e538cc09fb99 =============================================== Command line suite Total tests run: 10, Failures: 0, Skips: 0 =============================================== test result: [success: 10],[failure: 0] performance analysis: [maxtime: 8(ms)],[mintime: 0(ms),[avgtime: 2.8(ms)]] Process finished with exit code 0

좋은 웹페이지 즐겨찾기