1. 概述

  1. 简介 testng.xml 中的格式, 元素

2. 背景

  1. testng.xml

    1. 概述

      1. 测试套件 的配置文件
  2. 问题

    1. 一下生成了那么多内容

      1. 我有点看不懂
      2. 一上来就看不懂, 其实很正常, 慢慢说

3. 环境

  1. ide

    1. idea

      1. 2018.2
  2. 配置文件

    1. testng.xml
  3. 测试类

    1. TestClass

      1. 有至少一个测试方法

        1. public
        2. void
        3. @Test
      2. 这个我就不细说了
        1. 这个算是基础吧, 需要有点
        2. TestNG 入门教程
          1. 知名博主小坦克的 testng 教程

            1. 他写的比我好, 如果看他的能明白, 就不用来找我了...
      3. 而且这次, 主要是讲的 testng.xml 文件
        1. java 类里的注解, 后面有机会会提到

4. 配置文件

  1. 自动生成的文件, 内容如下, 我简单做了些调整, 影响不大

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="All Test Suite">
    <test verbose="2" preserve-order="true" name="test 1">
    <classes>
    <class name="com.test.TestClass"/>
    </classes>
    </test>
    </suite>

4. 元素解释

  1. xml 抬头

    1. 概述

      1. 这玩意, 我也不知道比较正式的, 该怎么叫
      2. 头两行
    2. 格式

      1. testng.xml 的头两行, 固定是这个内容
    3. 内容

      1. 约定 xml 版本
      2. 约定文件编码
      3. 指定 dtd 属性
      4. 其实上面三个也是不太细致的了解
        1. 这些我也不太懂, 就不说得太细
  2. suite

    1. 概述

      1. 测试套件
    2. 本质

      1. testng.xml 的根元素

        1. 一个 testng.xml 文件, 只能有一个

          1. 多了会报错
      2. before/after
        1. 有专门的 before 和 after 方法支持
      3. 子元素
        1. 一个 测试套件 里, 可以包含多个 测试
    3. 属性

      1. name

        1. 必填项
      2. 其他选填项

        1. 后面再做介绍
  3. test

    1. 概述

      1. 测试
    2. 本质

      1. 一组测试

        1. 这个在结果的报告里, 都会有划分
      2. before/after
        1. 有专门的 before 和 after 方法支持
      3. 子元素
        1. 一个 test 下可以有 多种子元素

          1. 测试范围相关

            1. packages
            2. classes
            3. groups
          2. 其他元素
            1. 暂略
    3. 属性

      1. verbose

        1. 日志级别

          1. 1 到 10
          2. 值越大, 越详细
      2. preserve-order

        1. 暂时不懂
      3. name

        1. 必填项
        2. 测试名称
  4. classes

    1. 概述

      1. 类组
    2. 本质

      1. 一个 类组

        1. 包含多个类
      2. before/after
        1. 有专门的 before 和 after 方法支持
      3. 子元素
        1. class
    3. 属性

  5. class

    1. 概述

    2. 本质

      1. 一个类

        1. 可能包含多个方法

          1. 这里没有列出来
      2. before/after
        1. 有专门的 before 和 after 方法支持
      3. 子元素
        1. method
        2. 其他

5. 关系整理

  1. 概述

    1. 之前整理了下 testng.xml 中的元素
    2. 现在准备简单整理下这些元素的关系
      1. 元素的属性暂时忽略
  2. 思路上的疑问

    1. ps 里简单记录下, 这里不是重点

      1. 记录了我为啥要这么讲
  3. 整理

    1. 根元素 suite

      1. 测试根元素
      2. 只能有一个
      3. 子元素是 test
        1. >= 1
    2. test

      1. 测试
      2. 子元素类型比较多
        1. packages

          1. 用 包 来划分执行范围
        2. classes
          1. 用 类 来划分执行范围
        3. groups
          1. 用 分组 划分执行范围
    3. package

      1. packages 的子元素
        1. packages 可以有多个 package
      2. 元素
        1. package

          1. 具体的包
          2. 子元素以后讲
    4. class

      1. classes 的子元素
        1. classes 可以有多个 class
      2. 元素
        1. class

          1. 具体的类
          2. 子元素以后讲
    5. group

      1. groups 的子元素
        1. groups 可以有多个 group
      2. 元素
        1. group

          1. 具体的方法分组
          2. 子元素以后讲
  4. 简单说

    1. suite 是根元素, 全局唯一
    2. test 是测试, suite 直接子元素, 可以有多个
    3. test 划分范围方式主要有三种
      1. packages 划分
      2. classes 划分
      3. groups 划分
    4. 其他的细分, 属性等, 以后再拓展

ps

  1. ref

    1. java idea中集成testng,Maven
  2. 后续

    1. 简单介绍下 testng 的一些情况
  3. 整理疑问

    1. 其实这块我也不知道怎么讲, 会比较顺畅

      1. 内容

        1. 元素内容
        2. 元素关系
      2. 本来我想先讲关系

        1. 但是感觉这个关系的模型, 对一般人来说, 可能会不太好说

          1. 本来 package, class, method 这个模型, 大家还是很熟悉

          2. 但是, 这里有多了几个 概念

            1. suite
            2. test
            3. packages
            4. classes
            5. groups
            6. group
            7. include
            8. exclude
            9. run
          3. 感觉想把这些概念一下插入进去, 真的不太现实

      3. 后来的思路成了这样

        1. 生成配置

          1. 当然是个最简答的配置
        2. 描述元素
          1. 简单介绍下各个元素
          2. 这些东西应该不难的
        3. 串联关系
          1. 将元素的关系串联起来
          2. 简单形成一个体系
        4. 主键加深
          1. 一步一步将内容加深

            1. 添加新元素
            2. 添加新属性
  4. 后续

    1. testng.xml

      1. package
      2. class
      3. group
    2. 注解

      1. 这个东西, 也需要总结的
  5. 时隔半年回来, 又看了看自己写的东西

    1. 感觉并不是 那么满意

      1. 我的出发点, 是 教程
      2. 但是结果, 却写成了一个类似 字典 的东西, 光顾着整理知识, 而忽略了 教程 的理解, 引导, 循序渐进
      3. 有点想 重写 的冲动...

Java - Test - TestNG: testng.xml 简介的更多相关文章

  1. Java自动化测试框架-12 - TestNG之xml文件详解篇 (详细教程)

    1.简介 现在这篇,我们来学习TestNG.xml文件,前面我们已经知道,TestNG就是运行这个文件来执行测试用例的.通过本篇,你可以进一步了解到:这个文件是配置测试用例,测试套件.简单来说,利用这 ...

  2. testng的xml文件说明(TestNG DTD)

    testNG启发自JUnit和NUnit的一种测试框架,通过使用testNG使的测试更简单.,比如如下的一些特点: 1.通过注释来管理测试 2.多线程并发执行测试,且是安全的 3.支持数据驱动测试 4 ...

  3. Java+maven+selenium3+testng 自动化测试环境IDEA

    idea .java环境变量jdk maven安装及环境变量配置这里就不多说了,网上有很多教程 这里我们只检测一下java.maven环境是否安装成功 win+R,运行cmd命令行:mvn -v   ...

  4. java 测试框架 TestNG

    Java中print.printf.println的区别 printf主要是继承了C语言的printf的一些特性,可以进行格式化输出 print就是一般的标准输出,但是不换行 println和prin ...

  5. Exception in thread "main" java.lang.NoSuchMethodError: org.testng.TestNG.configure(Lorg/testng/CommandLineArgs;)V

    TestNG运行时报以下错误: Exception in thread "main" java.lang.NoSuchMethodError: org.testng.TestNG. ...

  6. jenkins通过maven指定testng的xml文件,并给testng代码传参

    1.jenkins设置参数化构建,设置要传的参数名和值 2.指定testng的xml文件,在jenkins的输入以下 3.在pom.xml文件分别引用jenkins的参数,设置两个property & ...

  7. Ant中批量调用TestNG的XML文件,并调用TestNgXlst生成漂亮的html测试报告

    from:http://blog.csdn.net/bwgang/article/details/7865184 1.在Ant中设置如下: <target name="run_test ...

  8. 使用XStream是实现XML与Java对象的转换(1)--简介及入门示例

    一.简单介绍 XStream是thoughtworks开发的开源框架,用于实现XML数据于Java对象.Json数据的转换.它不需要schema或其他的mapping文件就可以进行java对象和xml ...

  9. testNG jar包启动找不到org.testng.TestNG

    主要是因为打包时依赖的jar包没有打入,网上有很多需要将对应的jar单独拷贝出来然后通过classpath引用启动,但是感觉这个就是个无底洞.拷贝了这么多个包最后还是说找不到ObjectId 启动命令 ...

  10. Java中的的XML文件读写

    XML简介 要理解XML,HTML等格式,先来理解文档对象模型DOM 根据 DOM,HTML 文档中的每个成分都是一个节点,这些节点组成了一棵树.DOM 是这样规定的:整个文档是一个文档节点每个 HT ...

随机推荐

  1. [CF546C] Soldier and Cards - 模拟

    两个人玩牌,首先两个人都拿出自己手牌的最上面的进行拼点,两张拼点牌将都给拼点赢得人,这两张牌放入手牌的顺序是:先放对方的牌再放自己的.若最后有一个人没有手牌了,那么他就输了,求输出拼点的次数和赢得人的 ...

  2. java序列化与反序列化的使用

    个人博客 地址:http://www.wenhaofan.com/article/20180925214701 1.什么是序列化和反序列化 Serialization(序列化)是一种将对象以一连串的字 ...

  3. 最长公共子串2(LCS2) lg SP1812

    题意:n个字符串(n<=10)求最长公共子串的长度 前置技能点:https://www.cnblogs.com/wenci/p/10432932.html (两个字符串求最长公共子串的长度) 既 ...

  4. hdu1716--全排列(dfs+有重复数字+输出格式)

    Ray又对数字的列产生了兴趣: 现有四张卡片,用这四张卡片能排列出很多不同的4位数,要求按从小到大的顺序输出这些4位数.  Input每组数据占一行,代表四张卡片上的数字(0<=数字<=9 ...

  5. macaron 根目录默认为templates文件夹,所以如果启动目录同目录下有templates目录,要给它指定另一个文件夹

    m *macaron.Macaron //随便指向一个目录,因为web没用到模板,不能使用默认值templates,因为这个目录被其他模板占用了m.Use(macaron.Renderer(macar ...

  6. eclipse的安装和环境配置

    一,eclipse下载 地址:https://www.eclipse.org/downloads/ 一般浏览器都有翻译功能 二.有32位和64位的版本根据自己的需求下载,选下载的选下载量最多的下载. ...

  7. Vue项目接入MQTT

    Vue项目接入MQTT 安装mqtt库 npm install mqtt --save Vue代码实现 <template> <div id="app"> ...

  8. 快速ni

    代码: while(p>0)                   (mul(a,b)) = a*b; { 等同于二分 if(p%2==1) mul(ans,a); 目的是为了二分个基数的二次方乘 ...

  9. linq和匿名方法、委托、匿名委托、lambda

    委托相当于JavaScript中的闭包,c++中的函数指针. c#为了引进这个函数指针,将其进行包装成“委托”,同时将非托管的变成托管的. 1.最初的委托该怎么用 弊端:写的代码量过多,还要写一个显示 ...

  10. apk 测试入门基本操作

    通过以上两个方法查询到运行的system service后,就可以在dumpsys后面加上service的名字,查看指定的service信息. // 查看Activity相关信息adb shell d ...