TestNG 是我接触过的唯一自身支持多程技术的单元测试框架。虽然代码级别的单元测试运行得很快,多线程的意义并不大。但如果是UI自动化测试的话运行速度就会非常慢,这个时候多线程技术就会变得很重要。

多线程配置


这里只介绍 testng.xml 文件,其中的使用到的测试用例,请参考前面的章节创建。

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="测试套件" parallel="classes" thread-count="2" >
    <test name="简单测试">
        <classes>
            <class name="test.sample.FirstTest" />
            <class name="test.sample.SecondTest" />
        </classes>
    </test>
</suite>
  • parallel 设置多线程的级别划分。

    • parallel=“methods”: TestNG将在不同的线程中运行所有的测试方法。依赖方法也将在单独的线程中运行,但它们将尊重你指定的顺序。

    • parallel=“tests”: TestNG 将在同一个线程中运行相同的标记的所有方法,但是每个标记将在一个单独的线程中。这允许你将所有非线程安全的类分组在同一个中,并保证它们将在同一个线程中运行,同时利用尽可能多的线程来运行测试。

    • parallel=“classes”: TestNG将在同一个线程中运行同一个类中的所有方法,但是每个类都将在一个单独的线程中运行。

    • parallel=“instances”: TestNG将在同一个线程中运行相同实例中的所有方法,但是在两个不同实例上的两个方法将在不同的线程中运行。

  • thread-count 用于指定线程的个数。