原文:http://www.jianshu.com/p/8e333a0ec42a 前两天学了一下@DataProvider,今天有时间总结一下.testng很强大,提供了很多注解,其中利用@DataProvider可以做数据驱动,数据源文件可以是EXCEL,XML,甚至可以是TXT文本.下面以读取XML为例. 通过@DataProvider读取XML文件中数据,然后测试方法只要标示获取数据来源的DataProvider,那么对应的DataProvider会把读取的数据传给该test方法,我简单的…
上一篇我们介绍用如何用yaml结合testng做数据驱动,就又想来个数据库的参数化 备注:@DataProvider的返回值类型只能是Object[][]与Iterator<Object>[] 思路: 解析sql查询返回结果,然后把解析出来的list转换成Object[][]类型的数据,且结合在@DataProvider中. 然后把解析出来的list转换成Object[][]类型的数据,且结合在@DataProvider中. DbDataHeleper.java import org.test…
前言 早期我们使用TestNG 来做数据驱动进行测试,测试数据是写在测试用例脚本中.这会使得测试脚本的维护工作量很大.因此我们可以将测试的数据和脚本分开. 而我们经常使用会使用csv文件来做为导出数据时的存储文件,因此,可以通过读取 CSV文件存储数据,然后将数据传递给测试脚本进行测试.那么接下来我们将进行讲解使用csv文件做数据驱动. 使用csv做数据驱动测试 使用csv做数据驱动 创建csv数据文件 具体代码示例如下: import org.testng.annotations.DataPr…
TestNG中使用DataProvider有个好处,就是: 1. 在执行用例的时候dataProvider迭代中的每组数据都是作为一个用例执行 2. 在测试数据有规律的情况下,免去了添加testXML测试数据的烦恼,直接将测试数据,按个或者组,放到dataProvider中即可 注意:但是dataProvider作为数据提供者只能返回Object[][]和Iterator<Object[]>类型的数据 那我们的数据是按照对象存储的该怎么写入和输出呢,我这里提供一个简单的样例: // 返回Ite…
这里是一份TestNG中的可用注解及其属性的概述. 一.用于一个TestNG类的信息配置的注解: @BeforeSuite:被BeforeSuite注解的方法将在其所在suite中的所有test运行之前执行: 注:例如BeforeSuite方法在Class1中,test1方法在Class1中,test2方法在Class2中,Class2在testng中优先级较高,则执行顺序BeforeSuite->test2->test1 @AfterSuite:被AfterSuite注解的方法将在其所在su…
TestNg常用注解介绍,先来张图: 先看一下,以上各个注释的运行次序: @Test 表示的意义:    1.表示示该方法是一个测试方法,在运行时,会自动的运行有@Test注脚的方法. 示例: @BeforeMethod/@ AfterMethod 表示的意义:    1.beforemethod这个注脚是指加了该注脚的方法在每个测试方法运行之前会自动的被调用运行    2.aftermethod该注脚的方法在每一个测试方法运行之后会自动的被调用运行 示例: @BeforeClass/@Afte…
数据驱动是做自动化测试中很重要的一部分,数据源的方案也是百花八门了,比如利用外部文件,直接在@DataProvider中写死等等,我们今天介绍一下利用enum来做数据源,先来看一下enum的写法: public enum TestEnum { OK(200,"success"), FAIL(300,"fail"); private int retCode; private String msg; private TestEnum(int retCode, Strin…
数据驱动是做自动化测试中很重要的一部分,数据源的方案也是百花八门了,比如利用外部文件,直接在@DataProvider中写死等等,我们今天介绍一下利用enum来做数据源,先来看一下enum的写法: public enum TestEnum { OK(200,"success"), FAIL(300,"fail"); private int retCode; private String msg; private TestEnum(int retCode, Strin…
说明:EXCEL 支持xls 和xlsx 俩种格式 : 已经过测试 ! package main.java; import org.apache.poi.ss.usermodel.*; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List;…
简介 TestNG是一个设计用来简化广泛的测试需求的测试框架,从单元测试到集成测试,这个是TestNG设计的出发点,不仅仅是单元测试,而且可以用于集成测试.设计目标的不同,对比junit的只适合用于单元测试,TestNG无疑走的更远.可以用于集成测试,这个特性是我选择TestNG的最重要的原因. 先了解这两个注解的意思 @DataProvider    标记一个方法用于为测试方法提供数据.被注释的方法必须返回Object[][], 其中每个Object[]可以指派为这个测试方法的参数列表. 从这…
承接上篇. 改变我们的测试驱动方式,灵活设置测试用例. 数据驱动测试 数据驱动测试的核心是: 测试数据与测试脚本分离,实现测试脚本参数化, 提高测试脚本的可重用性.在自动化功能测试中如果灵活使用数据源与测试脚本, 便能轻松创建与运行成百上千个测试用例.自动化测试框架必须要有与电子表格.文本文件.数据库集成的能力. 首先小伙伴们就会问,你要先解析Excel吧,那你肯定得给我上代码,是的,必须的上代码. package com.testapi.until; import java.io.FileIn…
testNG大部分是通过xml配置测试类和监听类 但是这种方法就像传统的spring框架一样需要引入大量的xml配置信息,而且在各层之间也需要通过new对象传递.如果testNG能使用注解注入bean对象,那么完成一个自动化项目的开发周期必然会缩短很多.于是在spring官网看到支持TestNG Support Classes.大致说明如下: 官方文档地址 可以通过抽象类AbstractTestNGSpringContextTests,实现bean查找或测试整个上下文的状态. 现在大部分后端项目…
下面是@DataProvider有name和没有name时 有name的时候可以引用name 即:@DataProvider(name="testData")---------->@Test(dataProvider="testData") package data_driver; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; public cla…
为了方便测试代码的复用性,常常采用参数化.传递参数给测试代码 有一下两种方法:1.通过配置XML文件实现.2.通过DataProvider 传递参数. 注意:DataProvider 传递参数返回的是一个Object对象或迭代器的对象. DataProvider 一.通过testng.xml 传递参数给测试代码 package com.TestNG.web; import java.util.concurrent.TimeUnit; import org.openqa.selenium.*; i…
1.自定义注解 需要验证登录的注解 package com.etaofinance.wap.common; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import java.lang.annotation.Retention…
package com.aop.log.anno; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME)//运行期 @Target({ElementType.M…
@parameters适合传递简单少量参数,复杂参数一般使用@DataProvider传递 @DataProvider语法: @DataProvider(name = "dataproviderName") public Object[][] createData([Method m]) { return Array; } @Test(dataprovider="dataproviderName"[, dataProviderClass = dataProvider…
今天一整天都在研究testng失败截图的方法,参考网上的前辈们的资料,加上自己的理解,终于搞出来了. package com.dengnapianhuahai; /** * 自定义注释 * */ import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation…
1. 单类,无继承父子关系 code: public class basicTest { @BeforeSuite(alwaysRun = true) public void beforeSuite_basicTest() throws InterruptedException { System.out.println("beforeSuite_basicTest"); Thread.sleep(1000); } @AfterSuite(alwaysRun = true) public…
一.前言 上一篇博客向大家介绍了Aop的概念,对切面=切点+通知 .连接点.织入.目标对象.代理(jdk动态代理和CGLIB代理)有所了解了.理论很强,实用就在这篇博客介绍. 这篇博客中,小编向大家介绍springAop很常见的使用方式--日志拦截 二.实战 2.1 全局观说明 说明: 假如service出错了,这样错误会抛出到controller,controller捕捉到后,抛出自定义异常.然后@ControllerAdvice + @ExceptionHandler 全局处理 Contro…
python代码如下: import unittestfrom openpyxl import load_workbookfrom openpyxl.styles import Fontfrom openpyxl.styles.colors import RED, GREEN wb = load_workbook(r"C:\Users\test\Desktop\q.xlsx")ws = wb.get_sheet_by_name('testData')rows = ws.max_row…
testng的功能很强大,利用@DataProvider可以做数据驱动,数据源文件可以是EXCEL,XML,YAML,甚至可以是TXT文本.在这以XML为例:备注:@DataProvider的返回值类型只能是Object[][]与Iterator[]TestData.xml: <?xml version="1.0" encoding="UTF-8"?> <data> <testmethod1> <input>1<…
testng的功能很强大,利用@DataProvider可以做数据驱动,数据源文件可以是EXCEL,XML,YAML,甚至可以是TXT文本.在这以yaml为例: 备注:@DataProvider的返回值类型只能是Object[][]与Iterator<Object>[] application.yaml: user: name: xiaoqiang passwd: "1236454" user1: name: xiaohong passwd: "1238309&q…
testng的功能很强大,利用@DataProvider可以做数据驱动,数据源文件可以是EXCEL,XML,YAML,甚至可以是TXT文本.在这以XML为例: 备注:@DataProvider的返回值类型只能是Object[][]与Iterator<Object>[] TestData.xml: <?xml version="1.0" encoding="UTF-8"?> <data> <testmethod1> &l…
转自: https://mp.weixin.qq.com/s/8Bd8LEhiC2pu2VMcyNMGlQ 学习使用TestNG进行数据驱动测试 赵吃饭 51Testing软件测试网 前天   学习使用TestNG进行数据驱动测试 一.数据驱动测试的应用场景 在实际的测试工作中,我们经常会遇到如此场景:同样的测试操作步骤,由于多组不同的输入数据,需要执行多次测试操作.在自动化测试用例中,针对这种情况,我们可以使用TestNG中的DataProvider注解来轻松实现这种操作. 二.TestNG中…
原文出处: 付学良的网志 原文出处2: http://www.importnew.com/16270.html -------------------------------------------- Junit 4 和 TestNG 都是 Java 方面非常流行的单元测试框架.在功能上两个框架都非常类似.到底哪个比较好?在Java项目中我们应该选择哪个框架? 下图将会对Junit 4 和 TestNG 做个功能特征的对比. 注解支持 Junit 4 和 TestNG 在注解方面的实现非常相似.…
数据驱动测试是自动化测试的主流设计模式之一,相同的测试脚本使用不同的测试数据来执行,测试数据和测试行为进行了完全的分离,这样的测试脚本设计模式称为数据驱动.实施数据驱动测试的步骤:1.编写测试脚本,脚本需要支持程序对象.文件或者数据库读入测试数据:2.将测试脚本使用的数据测试数据存入程序对象.文件或者数据库等外部介质中:3.运行脚本,循环调用存在外部介质的测试数据:4.验证所有的测试结果是否符合期望的结果. 下面分别使用4种方式实现数据驱动测试1.使用TestNG进行数据驱动测试2.使用CSV文…
Java自动化环境搭建笔记(1) 自动化测试 先搭建java接口测试的环境: 使用mvn命令构建项目 测试集通过testNG.xml组织并运行 测试数据解耦,通过Excel等文件提供 基础依赖 创建maven项目(包含一些基础的插件,见pom.xml) 引入testNG测试框架 引入allure报告框架 其他日志等依赖引入 测试依赖待开发 测试基类(统一数据提供方法) Excel读取工具类 注解与监听类 1. 基础环境 2. 项目结构 3. 代码开发 3.1 Excel读取 3.2 数据提供与监…
数据驱动部分,是自动化测试常用部分,也是参数化设计的重要环节,前面分享了,mysql.yaml做数据源,那么再来分享下excel做数据驱动 思路: 先用POI读取excel.解析读取数据,返回list,返回Object[][]即可 工具类文件: 读取excel,返回map对象list集合 ReadExcelUtil.java import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.…
方式一: 第一.读取csv数据源码 import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Iterator; impo…