美文网首页
批量执行测试用例

批量执行测试用例

作者: 不知名的蛋挞 | 来源:发表于2018-10-16 10:22 被阅读73次

    想要批量执行测试用例,可以使用TestNG这个插件,配合maven使用。

    1. 创建testng.xml文件

    1)首先要声明一个suite的名字,用于描述将要运行的测试脚本集,可以根据自己需要任意命名,最终这个名字会在testng的测试报告中看到。

    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
    <suite name="SuiteName" verbose="1" >  
        <test name="TestName" >
    

    2)选择测试脚本可以从包、类、方法三个层级进行。
    选择一个包

    <packages>
        <package name = "packageName" />
    </packages>
    

    选择一个类

    <classes>
        <class name = "className" />
    </classes>
    

    选择一个方法

    <classes>
        <class name = "className" />
           <methods>
              <include name = "methodName" />
           </methods>
        </class>
    </classes>
    

    3)如果选择的测试脚本是基于组的(使用了@Test (groups={"student"})这样的注解),那么接下来需要声明如何使用这些组:包含或者排除。如果使用了include标签标注某些组,那么在选择的测试脚本中,只有属于那些组的测试脚本会被运行。那些未被选中的测试脚本,或者被选中却不属于某些组的测试脚本都不会被运行。需要注意,一个测试脚本可以属于很多个组,只要有一个组被include标签标注,那么它就会被运行。如果使用了exclude标签标注某些组,那么在选择的脚本中,只有不属于那些组的测试脚本会被运行。

    <groups>
      <run>
         <include name = "includedGroupName" />
         <exclude name = "excludedGroupName" />
      </run>
    </groups>
    

    【xml文件样例】

    1)选择一个包中的全部测试脚本(包含子包)

    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
    <suite name="First suite" verbose="1" >
    <test name = "allTestsInAPackage" >
       <packages>
          <package name = "whole.path.to.package.* />
       </packages>
    </test>
    </suite>
    

    2)选择一个类中的全部测试脚本

    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
    <suite name="Second suite" verbose="1" >
    <test name = "allTestsInAClass" >
       <classes>
      <class name="whole.path.to.package.className />
       </classes>
    </test>
    </suite>
    

    3)选择一个类中的部分测试脚本

    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
    <suite name="Third suite" verbose="1" >
    <test name = "aFewTestsFromAClass" >
       <classes>
      <class name="whole.path.to.package.className >
          <methods>
             <include name = "firstMethod" />
             <include name = "secondMethod" />
             <include name = "thirdMethod" />
          </methods>
      </class>
       </classes>
    </test>
    </suite>
    

    4)选择一个包中的某些组

    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
    <suite name="Fourth suite" verbose="1" >
    <test name = "includedGroupsInAPackage" >
       <groups>
          <run>
             <include name = "includedGroup" />
          </run>
       </groups>
       <packages>
          <package name = "whole.path.to.package.* />
       </packages>
    </test>
    </suite>
    

    5)排除一个包中的某些组

    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
    <suite name="Fifth suite" verbose="1" >
    <test name = "excludedGroupsInAPackage" >
       <groups>
          <run>
             <exclude name = "excludedGroup" />
          </run>
       </groups>
       <packages>
          <package name = "whole.path.to.package.* />
       </packages>
    </test>
    </suite>
    

    3. 运行TestNG

    方法一:在IDE,例如IntellJ IDEA中,鼠标右击testng.xml文件,选择run即可。

    方法二:在maven的pom.xml文件中配置testng.xml

    需要在pom文件中,指明testng.xml文件的位置。maven使用surefire这个插件进行测试,可以执行testng或者Junit脚本。

    <dependencies>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-api</artifactId>
                <version>2.8</version>
            </dependency>
        </dependencies>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.19</version>
                    <configuration>
                        <suiteXmlFiles>
                            <suiteXmlFile>testng.xml</suiteXmlFile>//该文件位于工程根目录时,直接填写名字,其它位置要加上路径。
                        </suiteXmlFiles>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    

    进入到项目工程的根目录,使用 mvn clean test -Dtestng.xml命令,结果如下:

    [INFO] Scanning for projects...
    [INFO]                                                                         
    [INFO] ------------------------------------------------------------------------
    [INFO] Building ArtifactIdWang 1.0-SNAPSHOT
    [INFO] ------------------------------------------------------------------------
    .
    .
    .
    -------------------------------------------------------
     T E S T S
    -------------------------------------------------------
    Running TestSuite
    now start test
    Test started runningtemplistener1at:1487125608088
    i'm listenerTest1
    Result success
    Test started runningtemplistener2at:1487125608660
    i'm listenerTest2
    Result success
    now finish test
    Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 7.125 sec - in TestSuite
    
    Results :
    
    Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
    
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 01:13 min
    [INFO] Finished at: 2017-02-15T10:26:51+08:00
    [INFO] Final Memory: 22M/182M
    [INFO] ------------------------------------------------------------------------
    

    相关文章

      网友评论

          本文标题:批量执行测试用例

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