美文网首页我爱编程
TestNg Beginner's Guide--阅后总结之Te

TestNg Beginner's Guide--阅后总结之Te

作者: 默默的joy | 来源:发表于2017-02-16 14:03 被阅读0次

    Textng.xml是TestNG的配置文件,用来定义TestNG中的test suit和test。Textng.xml在test suit中提供了很多不同的选择,包括包,类和依赖测试方法,他也允许我们在一个单一的测试环境中运行多个test,也允许我们在多线程的环境中运行多个test。

    1.Textng.xml配置方式:

    A.creating a test with classes
    执行不同包下的不同的类,Textng.xml脚本如下

    <suite name="Class Suite" verbose="1">
    <test name="Test">
    <classes>
    <class name="test.firstpackage.FirstTestClass" />
    <class name="test.secondpackage.FirstTestClass" />
    <class name="test.thirdpackage.FirstTestClass" />
    </classes>
    </test>
    </suite>
    

    B.creating a test with packages
    执行包下的所有类,Textng.xml脚本如下

    <suite name="Package Suite" verbose="1">
    <test name="Package Test">
    <packages>
    <package name="test.firstpackage" />
    <package name="test.secondpackage" />
    </packages>
    </test>
    </suite>
    

    C.creating a test with methods
    执行类下的特定的方法,Textng.xml脚本如下

    <suite name="Method Suite" verbose="1">
    <test name="Method Test">
    <classes>
    <class name="test.firstpackage.FirstTestClass">
    <methods>
    <include name="firstTest" />
    </methods>
    </class>
    </classes>
    </test>
    </suite>
    

    D.creating a test suite with package, class, and test method
    在一个test suit中可以一起执行 package, class, 和test method ,Textng.xml脚本如下

    <suite name="Combine Suite" verbose="1">
    <test name="Combine Test">
    <packages>
    <package name="test.firstpackage" />
    </packages>
    <classes>
    <class name="test.secondpackage.FirstTestClass" />
    <class name="test.thirdpackage.FirstTestClass">
    <methods>
    <include name="firstTest" />
    </methods>
    </class>
    </classes>
    </test>
    </suite>
    

    E.test suite to include a particular package
    执行某个包名包含某个关键词的包,Textng.xml脚本如下

    <suite name="Include Package Suite" verbose="1">
    <test name="Include Package Test">
    <packages>
    <package name="test.*">
    <include name="test.secondpackage" />
    </package>
    </packages>
    </test>
    </suite>
    

    F.test suite to exclude a particular package
    排除某个包,Textng.xml脚本如下

    <suite name="Exclude Package Suite" verbose="1">
    <test name="Exclude Package Test">
    <packages>
    <package name="test.*">
    <exclude name="test.secondpackage" />
    </package>
    </packages>
    </test>
    </suite>
    

    G.test suite to exclude a particular method
    排除某个特定的方法,Textng.xml脚本如下

    <suite name="Exclude Method Suite" verbose="1">
    <test name="Exclude Method Test">
    <classes>
    <class name="test.firstpackage.FirstTestClass">
    <methods>
    <exclude name="firstTest" />
    </methods>
    </class>
    </classes>
    </test>
    </suite>
    

    H.using regular expressions for test
    使用正则表达式来描述执行的方法,Textng.xml脚本如下

    <suite name="Regular Exp Suite" verbose="1">
    <test name="Regular Exp Test">
    <classes>
    <class name="test.regularexppackage.RegularExpClass">
    <methods>
    <include name=".*Test.*" />
    </methods>
    </class>
    </classes>
    </test>
    </suite>
    

    2.suite标签中的属性
    A.使用 parallel 属性来让测试方法运行在不同的线程中。这个属性可以带有如下这样的值:

    <suite name="My suite" parallel="methods" thread-count="5">
    
    <suite name="My suite" parallel="tests" thread-count="5">
    
    <suite name="My suite" parallel="classes" thread-count="5">
    
    <suite name="My suite" parallel="instances" thread-count="5">
    

    parallel="methods": TestNG 会在不同的线程中运行测试方法,除非那些互相依赖的方法。那些相互依赖的方法会运行在同一个线程中,并且遵照其执行顺序。

    parallel="tests": TestNG 会在相同的线程中运行相同的<test>标记下的所有方法,但是每个<test>标签中的所有方法会运行在不同的线程中。这样就允许你把所有非线程安全的类分组到同一个<test>标签下,并且使其可以利用TestNG多线程的特性的同时,让这些类运行在相同的线程中。

    parallel="classes": TestNG 会在相同线程中相同类中的运行所有的方法,但是每个类都会用不同的线程运行。

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

    thread-count:允许你为当前的执行指定可以运行的线程数量。

    相关文章

      网友评论

        本文标题:TestNg Beginner's Guide--阅后总结之Te

        本文链接:https://www.haomeiwen.com/subject/udvmmttx.html