白盒测试笔记之:testng 单元测试
- 前言
前一篇文章我们简单了解了下单元测试的概念以及使用junit进行入门了。
但想更好做自动化测试,还是得了解下testng,毕竟,作为一名技术人,NG(下一代)的测试框架总得了解与跟进。
testng比junit的强大与好用还是在实际操作理解中体会。
有人说,一般来说,开发人员比较喜欢junit写单元测试,而测试人员喜欢用testng来写自动化测试。
而作为初学入门技术选型,个人建议可以直接上testng。长远来看,testng更好的管理和执行自动化测试用例。
异同点对比啥的网上很多都有说法了,如:
https://www.cnblogs.com/weiweiyao/p/4280062.html
http://www.sohu.com/a/288820372_216613
- testng 实例
- 新建一个testng测试用例
1. 引入testng 插件包
1)在eclipse- Help-Install new SoftWare-Add 输入链接http://beust.com/eclipse/ 一路next即可
2)也可以下载testng的包(https://testng.org/doc/download.html),把它放到eclipse的目录下,重启生效
3)或者打开Eclipse, 然后打开网址:https://marketplace.eclipse.org/content/testng-eclipse,把这个Install按钮直接拖拽到Eclipse中也会触发安装
2. 就可以创建一个testng的测试类了,效果如下

3.跑一个testng测试类
代码:
package testng;
public class Caculator {
/**
* 传入两个参数,求和
* @param a
* @param b
* @return
*/
public int add(int a,int b){
return a+b;
}
/**
* 传入两个参数,求差
* @param a
* @param b
* @return
*/
public int sub(int a,int b){
return a-b;
}
}
package testng; import org.junit.Assert;
import org.junit.Before;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test; public class testng {
@Test
public void f() {
} Caculator a=null; @BeforeTest
public void testBeforeClass()
{
a=new Caculator();
} @Test
//测试 add()方法
public void testAdd(){
int result = a.add(1, 2);
Assert.assertEquals(result, 4);
} @Test
//测试 sub()方法
public void testSub(){
int result = a.sub(2, 1);
Assert.assertEquals(result, 2);
}
}
运行效果:

2. 配置testng.xml
了解testng,能跑起来,但想做高级一点的,如集成到其它环境或多个包之间一键跑用例,还是要了解testng.xml:
1) eclipse 如何配置testng.xml?
进行选中一个测试的项目中,然后进行右键弹出下拉菜单中进行选择为“TestNG”.
这样就会弹出了一个下一级菜单中进行选择为“convert to testng”
这样就会在项目的列表中添加了一个testng.xml的一个文件。

配置如下(变更点为红色部分):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite">
<test thread-count="5" name="Test">
<classes>
<class name="testng.testng">
<methods>
<include name="testAdd" />
</methods>
</class>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
运行效果:

如果要运行多个不同包中的测试用例,则可以配置如下(变更点为红色部分)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite">
<test thread-count="5" name="Test">
<classes>
<class name="testng.testng">
<methods>
<include name="testAdd" />
</methods>
</class>
<class name="testng2.testng">
<methods>
<include name="testAdd" />
</methods>
</class>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
白盒测试笔记之:testng 单元测试的更多相关文章
- 白盒测试笔记之:Junit 单元测试以及测试覆盖率
单元测试: 单元测试是从代码层面验证代码的正确性. 一般考虑接口中的数据结构是否正确,变量的临界条件,如空字符串,空集合等. Junit入门 参考: Junit 入门教程: https://ww ...
- JAVA TestNG单元测试详解
TestNG单元测试详解 by:授客 QQ:1033553122 1. 测试环境 2 2. 介绍 2 3. Annotation 2 4. testng.xml 3 4.1. 例1 3 4.2. ...
- Eclipse中怎么安装TestNG单元测试框架
在进行使用的eclipse的进行开发的代码中,必然就会需要进行单元测试,在单元测试的情况提供较多的框架单元测试,例如使用junit单元测试,而在国外进行开发较好的单元测试,提供了较好的测试的报告,ju ...
- TestNG 单元测试框架的使用
JUnit让开发人员了解测试的实用性,尤其是在单元测试这一模块上比任何其他测试框架都要简单明了.凭借一个相当简单,务实,严谨的架构,JUnit已经能够“感染”了一大批开发人员.TestNG是一个测试框 ...
- ember.js:使用笔记9 开始单元测试
单元测试被限定在一个范围内,并且不需要Ember应用运行. 使用前准备: 加入Ember-QUnit:获取一系列测试助手帮助单元测试:加入 mian.js; 加入根元素(与集成测试的时候一样):App ...
- angular2 学习笔记 ( unit test 单元测试 )
第一次写单元测试. 以前一直都有听说 TDD 的事情. 今天总算是去尝试了一下. 先说说 TDD 的想法, 是这样的, 开发项目的流程 : 确定需求 -> 写类,接口,方法的名字(不写具体实现代 ...
- Scala学习笔记——断言和单元测试
1.断言 assert(conditon)将在条件不成立的时候,抛出assertionError assert(conditon,explanation)讲在条件不成立的时候,抛出explanatio ...
- powermock+mockito+testng 单元测试pom文件
0:Supported versions PowerMock version 1.7.0 and upper has experimental support of Mockito 2. A lot ...
- python学习笔记:unittest单元测试
单元测试:开发自测时写的代码 unittest基本原理: ♦整个平台的搭建使用的是python的unittest测试框架,这里简单介绍下unittest模块的简单应用. ♦unittest是pytho ...
随机推荐
- CodeFroces 758C - Unfair Poll
题意: 老师点名,顺序是1 -- n -- 1 排为一个循环,每列为1 -- m的顺序, 问点到最多次数和最少次数的人的次数以及(x,y)被点的次数. 分析: 由于点名有循环,故可先判断出每一个循环每 ...
- vue多套样式切换
最近根据设计要求app需要根据不同环境切换不同样式,网上找了很多方法都不理想,后面自己脑洞大开这么完成的,请大佬多指教! 一.新建全局变量js文件和公用样式文件,在main.js中引入 import ...
- Python 爬虫十六式 - 第六式:JQuery的假兄弟-pyquery
PyQuery:一个类似jquery的python库 学习一时爽,一直学习一直爽 Hello,大家好,我是 Connor,一个从无到有的技术小白.上一次我们说到了 BeautifulSoup 美味 ...
- ArrayList,LinkedList和String
import java.util.ArrayList; public class Demo{ public static void main(String[] args) throws Excepti ...
- Complete Tripartite
D - Complete Tripartite 思路:这个题是个染色问题.理解题意就差不多写出来一半了.开始的时候还想用离散化来储存每个点的状态,即它连接的点有哪些,但很无奈,点太多了,long lo ...
- $message的问题
项目中出现$message的问题: 拉取数据成功后 this.$message.success("数据拉取成功")点击拉取第一次不出现,但是代码执行了,后来多次点击就出现了 原因: ...
- Ubuntu16.04下安装最新版本的CMake
当前最新版CMake为3.9.1.. Ubuntu中更新cmake到最新版本,过程如下: 1. 卸载已经安装的旧版的CMake[非必需] apt-get autoremove cmake 2. 文 ...
- System.Runtime.CompilerServices.Unsafe
System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime.CompilerServices.Un ...
- 如何查看 SELinux状态及关闭SELinux
查看SELinux状态: 1./usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态 SELinux status: ...
- sentinel.conf样例
#禁止用localhost与127.0.0.1# Example sentinel.conf # 哨兵sentinel实例运行的端口 默认26379port 26379 # 哨兵sentinel的工作 ...