1. 程式人生 > >TestNG多執行緒測試-用xml檔案實現

TestNG多執行緒測試-用xml檔案實現

MultiThreadOnXml類:

package com.janson.multiThread;

import org.testng.annotations.Test;

public class MultiThreadOnXml {

    @Test
    public void test1() {
        System.out.printf("Thread Id : %s%n",Thread.currentThread().getId());
    }

    @Test
    public void test2() {
        System.out.printf(
"Thread Id : %s%n",Thread.currentThread().getId()); } @Test public void test3() { System.out.printf("Thread Id : %s%n",Thread.currentThread().getId()); } }

在resources資料夾下面新建一個thread.xml檔案:

在<suite>標籤中用parallel和thread-count兩個屬性宣告多執行緒:parallel代表級別,thread-count代表最大併發執行緒數

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="thread" parallel="methods" thread-count="2">
    <!--
    tests級別:不同的test標籤(tag)下的用例可以在不同的執行緒下執行
               相同的test標籤(tag)下的用例只能在同一個執行緒中去執行
    methods級別:所有用例都可以在不同的執行緒下去執行
    classes級別:相同的classes標籤下的用例在同一個執行緒中執行
                不同的classes標籤下的用例可以在不同的執行緒下執行
    thread-count: 代表了最大併發執行緒數
    xml檔案配置這種方式不能指定執行緒池,只有方法上才可以指定執行緒池
     
--> <test name="threadTest"> <classes> <class name="com.janson.multiThread.MultiThreadOnXml"/> </classes> </test> <test name="threadTest2"> <classes> <class name="com.janson.multiThread.MultiThreadOnXml"/> </classes> </test> </suite>

執行結果如下:

Thread Id : 11
Thread Id : 12
Thread Id : 12
Thread Id : 13
Thread Id : 14
Thread Id : 13