TestNG套件测试

测试套件的测试是为了测试软件程序的行为或一系列行为的情况下,是一个集合。在TestNG,我们不能定义一套测试源代码,但它代表的套件是一个XML文件执行特征。这也允许灵活的配置要运行的测试。套件可以包含一个或多个测试和被定义由<suite>标签。

testng.xml中有<suite>根标签。它描述了一个测试套件,这反过来又是由多个<test>区段组成。

下表列出了所有的<suite>可接受合法属性。

属性 描述
name 此套件的名称。这是一个强制性的属性。
verbose 这个运行级别或冗长。一般verbose=从0到9的数,数越大表明testng的日志越详细,一般verbose=2
parallel 由TestNG 运行不同的线程来运行此套件。
thread-count 使用的线程数,如果启用并行模式(忽略其他方式)。
annotations 在测试中使用注释的类型。
time-out 默认的超时时间,将用于本次测试中发现的所有测试方法。

在本章中,我们会告诉你一个例子,有两个Test1 & Test2测试类一起运行测试套件。

创建一个类

创建一个Java类进行测试 MessageUtil.java 在 C:\ > JUNIT_WORKSPACE

/*
* This class prints the given message on console.
*/
public class MessageUtil { private String message; // Constructor // @param message to be printed public MessageUtil(String message) { this.message = message; } // prints the message public String printMessage() { System.out.println(message); return message; } // add "Hi!" to the message public String salutationMessage() { message = "Hi!" + message; System.out.println(message); return message; } }

创建测试用例类

创建一个Java类文件名 Test1.java 在C:\ > TestNG_WORKSPACE

import org.testng.Assert; import org.testng.annotations.Test; public class Test1 { String message = "Manisha"; MessageUtil messageUtil = new MessageUtil(message); @Test public void testPrintMessage() { System.out.println("Inside testPrintMessage()"); Assert.assertEquals(message, messageUtil.printMessage()); } }

创建一个Java类文件名 Test2.java 在C:\ > TestNG_WORKSPACE

import org.testng.Assert; import org.testng.annotations.Test; public class Test2 { String message = "Manisha"; MessageUtil messageUtil = new MessageUtil(message); @Test public void testSalutationMessage() { System.out.println("Inside testSalutationMessage()"); message = "Hi!" + "Manisha"; Assert.assertEquals(message,messageUtil.salutationMessage()); } }

现在,让我们编辑写入testng.xml 在C:\ > TestNG_WORKSPACE ,将包含<suite>标签如下:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > <suite name="Suite1"> <test name="exampletest1"> <classes> <class name="Test1" /> </classes> </test> <test name="exampletest2"> <classes> <class name="Test2" /> </classes> </test> </suite>

Suite1 包括 exampletest1 和 exampletest2.

所有Java类编译使用javac。

C:\TestNG_WORKSPACE>javac MessageUtil.java Test1.java Test2.java

现在运行 testng.xml,将运行提供的测试用例类中定义的测试用例。

C:\TestNG_WORKSPACE>java -cp "C:\TestNG_WORKSPACE" org.testng.TestNG testng.xml

验证输出。

Inside testPrintMessage()
Manisha
Inside testSalutationMessage()
Hi!Manisha===============================================
Suite1
Total tests run: 2, Failures: 0, Skips: 0
===============================================

您也可以检查测试输出文件夹;下Suite1文件夹中,可以看到两个HTML创建的exampletest1.html 和 exampletest2.html 内容如下:

文章转载自:易百教程 [http://www.yiibai.com]
本文标题:TestNG套件测试
转载请保留原文链接:http://www.yiibai.com/html/testng/2013/0915298.html

转载于:https://www.cnblogs.com/111testing/p/6184140.html

testng入门教程5TestNG套件测试相关推荐

  1. testng入门教程10 TestNG参数化测试

    在TestNG的另一个有趣的功能是参数测试.在大多数情况下,你会遇到这样一个场景,业务逻辑需要一个巨大的不同数量的测试.参数测试,允许开发人员运行同样的测试,一遍又一遍使用不同的值. TestNG让你 ...

  2. TestNG 入门教程

    1 - 介绍 TestNG是一个测试框架,旨在简化广泛的测试需求,从单元测试(测试一个孤立的类)到集成测试(测试包含几个类,几个包甚至几个外部框架,如应用服务器的系统). 编写测试通常是以下三步过程: ...

  3. TestNG入门教程-2-写第一个基于TestNG的用例

    说明:由于该系列是好友之邀,优先提供给好友的自媒体账号发布Testng系列文章,所以可能大家会提前看过接下来的这些文章内容. 前面一篇,介绍了TestNG的特点和官网地址,以及在IDEA上的配置过程. ...

  4. TestNG入门教程-6-enabled和priority属性

    说明:由于该系列是好友之邀,优先提供给好友的自媒体账号发布Testng系列文章,所以可能大家会提前看过接下来的这些文章内容. 本篇来继续学习@Test下的注释,这篇学习两个属性的基本使用.第一个是设置 ...

  5. JMeter入门教程(自己做测试了)

    本文版权归xmeter.net所有.欢迎转载,转载请注明出处. 简介 本文由xmeter君写给想了解性能测试和JMeter的小白,适合对这两者了解很少的同学们,如果已经有使用经验的请绕道,别浪费时间: ...

  6. python快速编程入门教程-python从入门到精通之30天快速学python视频教程

    python从入门到精通之30天快速学python视频教程 课程目录: python入门教程-1-Python编程语言历史及特性.mkv python入门教程-2-Python编程语言初接触.mkv ...

  7. Android渗透测试Android渗透测试入门教程大学霸

    Android渗透测试Android渗透测试入门教程大学霸 第1章  Android渗透测试 Android是一种基于Linux的自由及开放源代码的操作系统,主要用于移动设备,如智能手机.平板等.目前 ...

  8. TestNG 自动化测试入门教程--典型示例

    TestNG介绍 TestNG是Java中的一个测试框架, 类似于JUnit 和NUnit,   功能都差不多, 只是功能更加强大,使用也更方便 Java中已经有一个JUnit的测试框架了.  Tes ...

  9. python测试开发教程_python3测试工具开发快速入门教程

    现有的优秀python教程大多来自国外,但是翻译过来文章,有些丧失了原意.且现有的python3教程,很少有结合项目能快速上手.为此我们退出为零基础的初学者提供python入门教程(资深python使 ...

最新文章

  1. 存储架构|Bitcask 引擎的设计,秒!
  2. linux x下载工具,Linux下强大的Axel下载工具
  3. Mybatis中 Integer 值为0时,默认为空字符串的解决办法
  4. Dockerfile----ubuntu-java
  5. Rsync 3.1.0 发布,文件同步工具
  6. 「我去,这也能行!」令人惊叹的8个深度学习应用
  7. 移动通信例题整理_第3章_无线信号的衰落
  8. vue图片加载失败使用默认图片,el-image支持懒加载,自定义占位、加载失败等
  9. oracle配置控制文件快照的位置以及名称为,oracle的备份与恢复
  10. 固定ip_1分钟学会查看跨境卫士费用和选择固定IP
  11. 浅析:浅拷贝 及 深拷贝的传统写法
  12. java swing jcheckbox_Swing JCheckBox类
  13. 3种方法实现Android按钮的点击事件,建议收藏!
  14. Google Hack
  15. win10显示未安装任何音频输出设备问题解决
  16. 又一华尔街之狼?从洗碗工到公司董事长成功之路
  17. IT运维面试问题总结
  18. 实现LOL游戏中英雄技能的释放
  19. jquery 遍历java对象_jquery中object对象循环遍历的方法
  20. 税务系统计算机设备管理制度,区国税局计算机设备管理办法_规章制度

热门文章

  1. 解决Eclipse中Android图标不见了
  2. 提升用户体验的必杀器——A/B实验统计方法解密
  3. [Python]网络爬虫(四):Opener与Handler的介绍和实例应用
  4. 使用Nomad构建弹性基础架构:重新启动任务
  5. Consul入门04 - Consul集群
  6. JS校验金额格式的正则表达式
  7. 数据库外键的使用原则
  8. 青少年蓝桥杯_2020_steam考试_中级组_第四题
  9. Java判断一个数是否是回文数
  10. 安装mysql提示找不到msv_安装mysql服务时提示“找不到msvcp140.dll”