zoukankan      html  css  js  c++  java
  • testNG执行测试用例

    测试人员一般用TestNG来写自动化测试。  开发人员一般用JUnit写单元测试。

    在我们创建测试用例时,大概分三个层级。

    • 测试包(目录)
    • 测试类(文件)
    • 测试用例(@Test 注解的方法)

    接下来介绍,如何控制这三个级别用例的执行

    核心还是通过 testng.xml 文件配置

    1.用例分组

    2.用例执行顺序

    3.用例依赖(上一个用例执行失败,下一个依赖的用例不在执行)

    4.测试组件依赖(dependsOnGroups 来设置组的依赖,testAdd1()和 testAdd2() 同属于于 funtest组,testAdd3() 依赖于funtest组,该组有中有一条用例运行失败,则testAdd3() 不再执行。)

    5.

    通过 @DataProvider 实现参数化

    package com.net.suit.discover;

    import static org.testng.Assert.assertEquals;

    import org.testng.annotations.DataProvider;
    import org.testng.annotations.Parameters;
    import org.testng.annotations.Test;

    public class DataProviderTest {

    // @Test
    // @Parameters({"add1","add2","result"})
    // public void testAdd1(int add1,int add2,int result) {
    // assertEquals(add1+add2,result);
    //
    // }

    //定义对象数组
    @DataProvider(name="add")
    public Object[][] Users(){
    return new Object[][] {
    {3,2,5},
    {2,2,4},
    {3,3,7},
    };

    }

    @Test(dataProvider="add")
    public void testAdd2(int add1,int add2,int result) {
    assertEquals(add1+add2,result);
    }

    }

    <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
    <suite name="Suite1">
    <test name="test12" preserve-order="false">
    <classes>
    <class name="com.net.suit.discover.DataProviderTest">
    <methods>
    <include name="testAdd2" />

    </methods>
    </class>
    </classes>
    </test>
    </suite>

    xml配置按方法来配置就行了,如果是通过parameter 传参数,就按 下面的配置


    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
    <suite name="测试套件">
    <test name="简单测试">
    <parameter name="add1" value="3"/>
    <parameter name="add2" value="2"/>
    <parameter name="result" value="5"/>
    <classes>
    <class name="test.sample.DataProviderTest" />
    </classes>
    </test>

    6.

    当然我们也可以设置测试报告的内容级别. 

    verbose="2" 标识的就是记录的日志级别,共有0-10的级别,其中0表示无,10表示最详细

    <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
    <suite name="Suite1">
    <test name="test12" verbose="2">
    <classes>
    <class name="TankLearn2.Learn.TestNGLearn1" />
    </classes>
    </test>
    </suite>

  • 相关阅读:
    AlwaysOn配置时在连接步骤时报错(35250)
    MongoDB 在系统数据库local上无法创建用户的解决方法
    Elasticsearch 安装操作手册
    SQL Server 数据库调整表中列的顺序操作
    SQL Server 数据库部分常用语句小结(二)
    一个磁盘I/O故障导致的AlwaysOn FailOver 过程梳理和分析
    他人言,以为是,铭记于此。
    MongoDB 基本操作和聚合操作
    MySQL MHA FailOver后,原Master节点自动以Slave角色加入集群的研究与实现
    SQL Sever AlwaysOn的数据同步原理
  • 原文地址:https://www.cnblogs.com/aprial/p/10149399.html
Copyright © 2011-2022 走看看