testng入门教程5TestNG套件测试
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套件测试相关推荐
- testng入门教程10 TestNG参数化测试
在TestNG的另一个有趣的功能是参数测试.在大多数情况下,你会遇到这样一个场景,业务逻辑需要一个巨大的不同数量的测试.参数测试,允许开发人员运行同样的测试,一遍又一遍使用不同的值. TestNG让你 ...
- TestNG 入门教程
1 - 介绍 TestNG是一个测试框架,旨在简化广泛的测试需求,从单元测试(测试一个孤立的类)到集成测试(测试包含几个类,几个包甚至几个外部框架,如应用服务器的系统). 编写测试通常是以下三步过程: ...
- TestNG入门教程-2-写第一个基于TestNG的用例
说明:由于该系列是好友之邀,优先提供给好友的自媒体账号发布Testng系列文章,所以可能大家会提前看过接下来的这些文章内容. 前面一篇,介绍了TestNG的特点和官网地址,以及在IDEA上的配置过程. ...
- TestNG入门教程-6-enabled和priority属性
说明:由于该系列是好友之邀,优先提供给好友的自媒体账号发布Testng系列文章,所以可能大家会提前看过接下来的这些文章内容. 本篇来继续学习@Test下的注释,这篇学习两个属性的基本使用.第一个是设置 ...
- JMeter入门教程(自己做测试了)
本文版权归xmeter.net所有.欢迎转载,转载请注明出处. 简介 本文由xmeter君写给想了解性能测试和JMeter的小白,适合对这两者了解很少的同学们,如果已经有使用经验的请绕道,别浪费时间: ...
- python快速编程入门教程-python从入门到精通之30天快速学python视频教程
python从入门到精通之30天快速学python视频教程 课程目录: python入门教程-1-Python编程语言历史及特性.mkv python入门教程-2-Python编程语言初接触.mkv ...
- Android渗透测试Android渗透测试入门教程大学霸
Android渗透测试Android渗透测试入门教程大学霸 第1章 Android渗透测试 Android是一种基于Linux的自由及开放源代码的操作系统,主要用于移动设备,如智能手机.平板等.目前 ...
- TestNG 自动化测试入门教程--典型示例
TestNG介绍 TestNG是Java中的一个测试框架, 类似于JUnit 和NUnit, 功能都差不多, 只是功能更加强大,使用也更方便 Java中已经有一个JUnit的测试框架了. Tes ...
- python测试开发教程_python3测试工具开发快速入门教程
现有的优秀python教程大多来自国外,但是翻译过来文章,有些丧失了原意.且现有的python3教程,很少有结合项目能快速上手.为此我们退出为零基础的初学者提供python入门教程(资深python使 ...
最新文章
- 存储架构|Bitcask 引擎的设计,秒!
- linux x下载工具,Linux下强大的Axel下载工具
- Mybatis中 Integer 值为0时,默认为空字符串的解决办法
- Dockerfile----ubuntu-java
- Rsync 3.1.0 发布,文件同步工具
- 「我去,这也能行!」令人惊叹的8个深度学习应用
- 移动通信例题整理_第3章_无线信号的衰落
- vue图片加载失败使用默认图片,el-image支持懒加载,自定义占位、加载失败等
- oracle配置控制文件快照的位置以及名称为,oracle的备份与恢复
- 固定ip_1分钟学会查看跨境卫士费用和选择固定IP
- 浅析:浅拷贝 及 深拷贝的传统写法
- java swing jcheckbox_Swing JCheckBox类
- 3种方法实现Android按钮的点击事件,建议收藏!
- Google Hack
- win10显示未安装任何音频输出设备问题解决
- 又一华尔街之狼?从洗碗工到公司董事长成功之路
- IT运维面试问题总结
- 实现LOL游戏中英雄技能的释放
- jquery 遍历java对象_jquery中object对象循环遍历的方法
- 税务系统计算机设备管理制度,区国税局计算机设备管理办法_规章制度
热门文章
- 解决Eclipse中Android图标不见了
- 提升用户体验的必杀器——A/B实验统计方法解密
- [Python]网络爬虫(四):Opener与Handler的介绍和实例应用
- 使用Nomad构建弹性基础架构:重新启动任务
- Consul入门04 - Consul集群
- JS校验金额格式的正则表达式
- 数据库外键的使用原则
- 青少年蓝桥杯_2020_steam考试_中级组_第四题
- Java判断一个数是否是回文数
- 安装mysql提示找不到msv_安装mysql服务时提示“找不到msvcp140.dll”