uitls013_testNg的简单学习

package com.jingsong.testng;

import org.testng.TestNG;
import org.testng.annotations.*;
import org.testng.xml.Parser;
import org.testng.xml.XmlSuite;

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

/**
 * @author jingsong
 * @date 2022/5/10 23:35
 * @desc testNG的两种执行方式
 */
@SuppressWarnings("all")
public class TestngLearn {

    @BeforeSuite(alwaysRun = true)
    public void beforeSuite() {
        System.out.println("beforeSuite");
    }

    @BeforeClass(alwaysRun = true)
    public void beforeClass() {
        System.out.println("beforeClass");
    }

    @BeforeGroups(groups = {"first"})
    public void beforeGroup() {
        System.out.println("beforeGroup");
    }

    @Test(groups = {"first"})
    @Parameters({"param"})
    public void methodTest1(String param) {
        System.out.println(param);
    }

    @Test
    public void methodTest2() {
        System.out.println("hahaha");
    }

    public static void main(String[] args) throws IOException {
        // 1. 使用代码执行
        TestNG testNG = new TestNG();
        String filePath = "autotest/testng.xml";
        // 不用关流,自动关闭,很贴心
        InputStream is = TestngLearn.class.getClassLoader().getResourceAsStream(filePath);
        List<XmlSuite> suites = new ArrayList<>(new Parser(is).parse());
        testNG.setXmlSuites(suites);
        testNG.run();

        // 2. 执行运行xml文件即可

    }
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="this_suite_name" parallel="classes" thread-count="3">
    <test verbose="2" name="this_test_name">
        <parameter name="param" value="777"/>
        <groups>
            <run>
                <!-- beforeSuite和beforeClass在分组条件下不会执行,可以加上注解alwaysRun -->
                <include name="first"/>
            </run>
        </groups>
        <classes>
            <class name="com.jingsong.testng.TestngLearn">
                <parameter name="param" value="666"/>
                <methods>
                    <!-- methods里面写了哪些就执行哪些,优先于groups(注释methods看到效果) -->
                    <include name="methodTest1"/>
                    <include name="methodTest2"/>
                </methods>
            </class>
        </classes>
    </test>
</suite>

        <!--
        参考:http://t.csdn.cn/ACWD9
        suite为Test.xml的根节点
        @name: suite的名称,必须参数,会体现在测试报告中
        @parallel:是否多线程并发运行测试
        @configfailurepolicy:一旦Before/After Class/Methods这些方法失败后,是继续执行测试还是跳过测试;可选值 (skip | continue),默认"skip"
        @skipfailedinvocationcounts:是否跳过失败的调用,可选值(true | false),默认"false"
        @object-factory:一个实现IObjectFactory接口的类,用来实例测试对象
        @preserve-order:顺序执行开关,可选值(true | false) “true”
        @group-by-instances:是否按实例分组,可选值(true | false) “false”

        test.xml-test:
        @name:test的名字,必选参数,会体现在测试报告中。
        @parallel:是否多线程并发运行测试
        @enabled:设置当前test是否生效,可选值(true | false),默认"true"
        @skipfailedinvocationcounts:是否跳过失败的调用,可选值(true | false),默认"false"
        @preserve-order:顺序执行开关,可选值(true | false) “true”
        @group-by-instances:是否按实例分组,可选值(true | false) “false”
        -->
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值