- 浏览: 7943725 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (2425)
- 软件工程 (75)
- JAVA相关 (662)
- ajax/web相关 (351)
- 数据库相关/oracle (218)
- PHP (147)
- UNIX/LINUX/FREEBSD/solaris (118)
- 音乐探讨 (1)
- 闲话 (11)
- 网络安全等 (21)
- .NET (153)
- ROR和GOG (10)
- [网站分类]4.其他技术区 (181)
- 算法等 (7)
- [随笔分类]SOA (8)
- 收藏区 (71)
- 金融证券 (4)
- [网站分类]5.企业信息化 (3)
- c&c++学习 (1)
- 读书区 (11)
- 其它 (10)
- 收藏夹 (1)
- 设计模式 (1)
- FLEX (14)
- Android (98)
- 软件工程心理学系列 (4)
- HTML5 (6)
- C/C++ (0)
- 数据结构 (0)
- 书评 (3)
- python (17)
- NOSQL (10)
- MYSQL (85)
- java之各类测试 (18)
- nodejs (1)
- JAVA (1)
- neo4j (3)
- VUE (4)
- docker相关 (1)
最新评论
-
xiaobadi:
jacky~~~~~~~~~
推荐两个不错的mybatis GUI生成工具 -
masuweng:
(转)JAVA获得机器码的实现 -
albert0707:
有些扩展名为null
java 7中可以判断文件的contenttype了 -
albert0707:
非常感谢!!!!!!!!!
java 7中可以判断文件的contenttype了 -
zhangle:
https://zhuban.me竹板共享 - 高效便捷的文档 ...
一个不错的网络白板工具
1 testng最强大的功能就是分组了,先来看基本的分组功能,如:
@Test(groups={"test-group"})
public void testMethodOne(){
System.out.println("Test method one belonging to group.");
}
@Test
public void testMethodTwo(){
System.out.println("Test method two not belonging to group.");
}
@Test(groups={"test-group"})
public void testMethodThree(){
System.out.println("Test method three belonging to group.");
}
然后testng.xml中配置
<test name="Group Test">
<groups>
<run>
<include name="test-group" />
</run>
</groups>
<classes>
<class name="test.groups.TestGroup" />
</classes>
</test>
会执行所有包含(groups={"test-group"})的测试方法
2 测试属于多个组的类
<suite name="Multi Group Suite" verbose="1">
<test name="Group Test one">
<groups>
<run>
<include name="group-one" />
</run>
</groups>
<classes>
<class name="test.groups.MultiGroup" />
</classes>
</test>
<test name="Group Test two">
<groups>
<run>
<include name="group-two" />
</run>
</groups>
<classes>
<class name="test.groups.MultiGroup" />
</classes>
</test>
</suite>
@Test(groups={"group-one"})
public void testMethodOne(){
System.out.println("Test method one belonging to group.");
}
@Test(groups={"group-one","group-two"})
public void testMethodTwo(){
System.out.println("Test method two belonging to both group.");
}
@Test(groups={"group-two"})
public void testMethodThree(){
System.out.println("Test method three belonging to group.");
}
则输出:
Test method one belonging to group.
Test method two belonging to both group.
Test method three belonging to group.
Test method two belonging to both group.
3 包含或排除groups
<suite name="Exlude Group Suite" verbose="1">
<test name="Exclude Group Test">
<groups>
<run>
<include name="include-group" />
<exclude name="exclude-group" />
</run>
</groups>
<classes>
<class name="test.groups.ExcludeGroup" />
</classes>
</test>
</suite>
@Test(groups={"include-group"})
public void testMethodOne(){
System.out.println("Test method one belonging to group.");
}
@Test(groups={"include-group"})
public void testMethodTwo(){
System.out.println("Test method two belonging to a group.");
}
@Test(groups={"include-group","exclude-group"})
public void testMethodThree(){
System.out.println("Test method three belonging to two groups.");
}
则可以看到,<exclude name="exclude-group" />,所以只输出:
Test method one belonging to group.
Test method two belonging to a group.
4 也可以使用正则,如:
<suite name="Regular Exp. Group Suite" verbose="1">
<test name="Regular Exp. Test">
<groups>
<run>
<include name="include.*" />
<exclude name=".*exclude" />
</run>
</groups>
<classes>
<class name="test.groups.RegularExpressionGroup" />
</classes>
</test>
</suite>
@Test(groups={"include-test-one"})
public void testMethodOne(){
System.out.println("Test method one");
}
@Test(groups={"include-test-two"})
public void testMethodTwo(){
System.out.println("Test method two");
}
@Test(groups={"test-one-exclude"})
public void testMethodThree(){
System.out.println("Test method three");
}
@Test(groups={"test-two-exclude"})
public void testMethodFour(){
System.out.println("Test method Four");
}
输出:Test method one
Test method two
5 默认的组,在类的层次上指定组,比如:
<suite name="Default Group Suite" verbose="1">
<test name="Default Group Test one">
<groups>
<run>
<include name="default-group" />
</run>
</groups>
<classes>
<class name="test.groups.DefaultGroup" />
</classes>
</test>
<test name="Default Group Test two">
<groups>
<run>
<include name="test-group" />
</run>
</groups>
<classes>
<class name="test.groups.DefaultGroup" />
</classes>
</test>
</suite>
@Test(groups={"default-group"})
public class DefaultGroup {
public void testMethodOne(){
System.out.println("Test method one.");
}
public void testMethodTwo(){
System.out.println("Test method two.");
}
@Test(groups={"test-group"})
public void testMethodThree(){
System.out.println("Test method three.");
}
}
输出:
Test method one.
Test method three.
Test method two.
Test method three.
6 多个组的嵌套
<suite name="Group of group Suite" verbose="1">
<test name="Group of group Test">
<groups>
<define name="include-group">
<include name="test-one-include" />
<include name="test-two-include" />
</define>
<define name="exclude-group">
<include name="test-one-exclude" />
<include name="test-two-exclude" />
</define>
<run>
<include name="include-group" />
<exclude name="exclude-group" />
</run>
</groups>
<classes>
<class name="test.groups.RegularExpressionGroup" />
</classes>
</test>
</suite>
@Test(groups={"test-group"})
public void testMethodOne(){
System.out.println("Test method one belonging to group.");
}
@Test
public void testMethodTwo(){
System.out.println("Test method two not belonging to group.");
}
@Test(groups={"test-group"})
public void testMethodThree(){
System.out.println("Test method three belonging to group.");
}
然后testng.xml中配置
<test name="Group Test">
<groups>
<run>
<include name="test-group" />
</run>
</groups>
<classes>
<class name="test.groups.TestGroup" />
</classes>
</test>
会执行所有包含(groups={"test-group"})的测试方法
2 测试属于多个组的类
<suite name="Multi Group Suite" verbose="1">
<test name="Group Test one">
<groups>
<run>
<include name="group-one" />
</run>
</groups>
<classes>
<class name="test.groups.MultiGroup" />
</classes>
</test>
<test name="Group Test two">
<groups>
<run>
<include name="group-two" />
</run>
</groups>
<classes>
<class name="test.groups.MultiGroup" />
</classes>
</test>
</suite>
@Test(groups={"group-one"})
public void testMethodOne(){
System.out.println("Test method one belonging to group.");
}
@Test(groups={"group-one","group-two"})
public void testMethodTwo(){
System.out.println("Test method two belonging to both group.");
}
@Test(groups={"group-two"})
public void testMethodThree(){
System.out.println("Test method three belonging to group.");
}
则输出:
Test method one belonging to group.
Test method two belonging to both group.
Test method three belonging to group.
Test method two belonging to both group.
3 包含或排除groups
<suite name="Exlude Group Suite" verbose="1">
<test name="Exclude Group Test">
<groups>
<run>
<include name="include-group" />
<exclude name="exclude-group" />
</run>
</groups>
<classes>
<class name="test.groups.ExcludeGroup" />
</classes>
</test>
</suite>
@Test(groups={"include-group"})
public void testMethodOne(){
System.out.println("Test method one belonging to group.");
}
@Test(groups={"include-group"})
public void testMethodTwo(){
System.out.println("Test method two belonging to a group.");
}
@Test(groups={"include-group","exclude-group"})
public void testMethodThree(){
System.out.println("Test method three belonging to two groups.");
}
则可以看到,<exclude name="exclude-group" />,所以只输出:
Test method one belonging to group.
Test method two belonging to a group.
4 也可以使用正则,如:
<suite name="Regular Exp. Group Suite" verbose="1">
<test name="Regular Exp. Test">
<groups>
<run>
<include name="include.*" />
<exclude name=".*exclude" />
</run>
</groups>
<classes>
<class name="test.groups.RegularExpressionGroup" />
</classes>
</test>
</suite>
@Test(groups={"include-test-one"})
public void testMethodOne(){
System.out.println("Test method one");
}
@Test(groups={"include-test-two"})
public void testMethodTwo(){
System.out.println("Test method two");
}
@Test(groups={"test-one-exclude"})
public void testMethodThree(){
System.out.println("Test method three");
}
@Test(groups={"test-two-exclude"})
public void testMethodFour(){
System.out.println("Test method Four");
}
输出:Test method one
Test method two
5 默认的组,在类的层次上指定组,比如:
<suite name="Default Group Suite" verbose="1">
<test name="Default Group Test one">
<groups>
<run>
<include name="default-group" />
</run>
</groups>
<classes>
<class name="test.groups.DefaultGroup" />
</classes>
</test>
<test name="Default Group Test two">
<groups>
<run>
<include name="test-group" />
</run>
</groups>
<classes>
<class name="test.groups.DefaultGroup" />
</classes>
</test>
</suite>
@Test(groups={"default-group"})
public class DefaultGroup {
public void testMethodOne(){
System.out.println("Test method one.");
}
public void testMethodTwo(){
System.out.println("Test method two.");
}
@Test(groups={"test-group"})
public void testMethodThree(){
System.out.println("Test method three.");
}
}
输出:
Test method one.
Test method three.
Test method two.
Test method three.
6 多个组的嵌套
<suite name="Group of group Suite" verbose="1">
<test name="Group of group Test">
<groups>
<define name="include-group">
<include name="test-one-include" />
<include name="test-two-include" />
</define>
<define name="exclude-group">
<include name="test-one-exclude" />
<include name="test-two-exclude" />
</define>
<run>
<include name="include-group" />
<exclude name="exclude-group" />
</run>
</groups>
<classes>
<class name="test.groups.RegularExpressionGroup" />
</classes>
</test>
</suite>
发表评论
-
复习:强迫线程顺序执行方式
2019-01-03 23:42 1579方法1: 三个线程,t1,t2,t3,如果一定要按顺序执行, ... -
(转)不错的前后端处理异常的方法
2019-01-02 23:16 2019前言 在 Web 开发中, 我们经常会需要处理各种异常, 这是 ... -
info q的极客时间大咖说等资料下载
2018-08-15 08:40 3472info q的极客时间大咖说等资料下载,还有不少思维导图 链 ... -
CXF 客户端超时时间设置(非Spring配置方式)
2018-07-03 22:38 2236import org.apache.cxf.endpoint. ... -
(转)synchronized关键字画像:正确打开方式
2018-06-14 09:25 490https://mp.weixin.qq.com/s/b3Sx ... -
CountDownLatch的例子
2018-06-13 14:10 691public class StatsDemo { ... -
两道面试题,带你解析Java类加载机制
2018-06-12 16:29 611https://mp.weixin.qq.com/s/YTa0 ... -
Spring中获取request的几种方法,及其线程安全性分析
2018-06-11 09:03 671https://mp.weixin.qq.com/s/KeFJ ... -
内部类小结
2018-06-06 10:25 438https://mp.weixin.qq.com/s/hErv ... -
JVM虚拟机小结1
2018-06-04 20:43 5441 jps -l //列出详细的类名和进程ID 2)jps ... -
windows下自带命令行工具查看CPU资源情况等
2018-06-04 12:53 3101微软提供了不少命令行 ... -
(收藏)深入分析Java的序列化与反序列化
2018-05-30 15:21 617https://mp.weixin.qq.com/s/T2Bn ... -
apache common包中的序列化工具
2018-05-30 09:10 1844什么是序列化 我们的 ... -
JAVA8 JVM的变化: 元空间(Metaspace)
2018-05-24 22:30 967本文将会分享至今为至我收集的关于永久代(Permanent G ... -
(转)服务器性能指标(一)——负载(Load)分析及问题排查
2018-05-21 21:03 1363原创: Hollis Hollis 负载 ... -
(转)对象复用
2018-05-20 15:27 863public class Student { priv ... -
mapreduce中入门中要注意的几点
2018-05-06 08:59 674在 mapreduce中,比如有如下的词: I love b ... -
HDFS的基本操作
2018-05-02 21:47 941-mkdir 在HDFS创建目录 ... -
一个不错的开源工具类,专门用来解析日志头部的,好用
2018-05-02 20:00 772一个不错的开源工具类,专门用来解析日志头部的,好用。 http ... -
介绍个不错的RESTFUL MOCK的工具wiremock
2018-04-27 21:02 1907介绍个不错的RESTFUL MOCK的工具wiremock,地 ...
相关推荐
3. **类测试支持**:不必为每个测试方法创建单独的测试类,TestNG支持默认情况下重用类实例。 4. **独立的编译时间与运行时配置**:测试代码与运行时配置分离,允许在不重新编译的情况下改变测试配置。 5. **运行时...
TestNG 是一个强大的自动化测试框架,受到 JUnit 和 NUnit 的启发,但在功能和灵活性上有所增强,特别适合进行单元测试、功能测试、端到端测试和集成测试。它需要 JDK 5 或更高版本来运行。TestNG 的设计目标是为...
### TestNG 学习笔记概览 #### 一、JUnit 的局限性与 TestNG 的优势 ##### JUnit 缺陷概述 - **最初的用途限制**:JUnit 最初被设计为一个仅适用于单元测试的框架,但随着时间的发展,其功能已扩展至支持多种类型...
TestNG自动测试框架是当今流行的自动化测试框架之一 它可以帮助自动化测试工程师把精力集中在编写和实施测试用例和测试脚本上,提升软件测试执行和回归测试效率 分成4大模块 第一模块java 基础知识:JDK安装以及环境...
### Selenium+Eclipse+JUnit+TestNG自动化测试学习笔记 #### 一、环境搭建与配置 **1. 安装 JDK** - **版本**: JDK 1.7 - **下载地址**: ...
3. **Spring Boot**:Spring Boot简化了Spring应用程序的初始设置和配置,使得开发者可以快速启动并运行项目。它集成了许多默认配置,如数据源、Tomcat服务器和日志系统,大大提高了开发效率。 4. **MyBatis**:...
测试是任何软件项目的重要组成部分,可能会使用JUnit或TestNG进行单元测试,确保每个独立的代码模块都能正常工作。而Spring Boot自带的MockMVC可以用来进行模拟HTTP请求的集成测试。 在部署方面,项目可能使用...
- **spring-test**:提供了对 JUnit 或 TestNG 进行集成测试的支持。 - **junit**:一个常用的单元测试框架。 ### 二、数据库访问 #### Spring JDBC 模块 - **spring-jdbc**:提供了对 JDBC 的封装,使得数据访问...
《Maven3实战笔记(全)》是一本全面深入介绍Maven3的实践指南,由一位具有独特风格的作者撰写,以其风趣幽默的方式解析了Maven3的各种核心概念和使用技巧。这本书涵盖了从Maven的基础安装与配置,到复杂的仓库依赖...
3. **新建TestNG框架**: - 创建Package:在src目录下新建一个Package。 - 创建TestNG测试类:在Package中创建一个TestNG测试类,使用注解`@BeforeMethod`和`@AfterMethod`来定义测试前后的操作。 **编写测试代码...
### Java学习笔记要点 #### 一、了解Java ##### 1.1 Java的起源与发展历程 - **起源**: Java 最初是由 Sun 公司在 Green Project 中为了开发 Star7 应用程序而创建的一种编程语言。 - **命名**: 语言的名字来源于 ...
5. **自动化测试**:随着敏捷开发的普及,自动化测试工具如Selenium、JUnit、TestNG、Appium等的使用变得尤为重要。笔记会介绍如何创建测试脚本,进行回归测试,以及持续集成。 6. **性能测试**:包括负载测试、...
Eclipse、IntelliJ IDEA等IDE为Java开发提供了强大的集成环境,Maven或Gradle用于项目构建和依赖管理,Junit、TestNG等支持单元测试。 本Java体系笔记覆盖了从基础知识到高级特性的全面内容,帮助读者建立扎实的...
- **测试工具**:JUnit、TestNG 等工具用于进行单元测试和集成测试。 - **项目库**:Maven Central Repository 等仓库提供大量的 Java 项目依赖。 - **论坛与文档**:Stack Overflow、Oracle Java 文档等资源对于...
4. **开发工具**:标签中的"工具"可能指的是开发者在Web开发过程中使用的各种辅助软件,如IDE(IntelliJ IDEA、Eclipse)、版本控制系统(Git)、构建工具(Maven、Gradle)、调试器、测试框架(JUnit、TestNG)等。...
5. **测试框架集成**:Selenium可以与JUnit、TestNG等测试框架结合,构建更复杂的测试套件。这样,你可以编写结构化的测试用例,方便管理和执行。 6. **浏览器模拟**:Selenium支持多种浏览器,如Chrome、Firefox、...
### Java+JDK6学习笔记知识点详解 #### 一、Java简介 - **起源与历史:** - 最初由Sun公司的Green Project发起,旨在创建一个名为Star7的应用程序编程语言。 - 名称来源于创始人James Gosling窗外的一棵橡树...
3. 数据驱动测试:通过外部数据文件(如CSV或Excel)提供测试输入,使测试用例更灵活,易于管理和扩展。 4. 页面对象模型(POM):这是一种设计模式,将页面元素和相关操作封装,降低脚本维护成本,提高代码复用性...
- **Test**:支持测试Spring应用,包括JUnit和TestNG集成。 2. **Spring框架的搭建** 搭建Spring环境首先需要引入必要的依赖库,例如:aopalliance、commons-logging、spring-aop、spring-beans、spring-context...
同时,IDEA也支持JUnit和TestNG等单元测试框架,方便进行测试编写和运行。 9. **插件安装**: IDEA的扩展性极强,可以在"File" -> "Settings" -> "Plugins"中搜索并安装各种插件,以满足特定需求,如Lombok插件、...