[Android测试] AS+Appium+Java+Win 自动化测试之四: 单元测试框架和TestNg

原创 2016年09月21日 12:23:25

一、 单元测试框架

单元测试是 开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为

我们之前的测试添加联系人脚本就是用默认的JUNIT 单元测试框架,实现注解的方式执行case用例。

每个方法上面的 @XXXXX 就是注解,我们需要知道的就是:带了注解的方法将会在某个时机运行,注解具体内容请百度一下。

package com.example;

import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterGroups;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeGroups;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.BeforeTest;

import java.io.IOException;
import java.net.MalformedURLException;

/**
 * Created by LITP on 2016/9/21.
 */

public class Test  {

    @BeforeMethod
    public void BeforeMethod() throws IOException {

    }

    @BeforeClass
    public void beforeClass() {
    }


    @BeforeGroups
    public void beforeGroups() {

    }


    @BeforeSuite
    public void beforeSuite() throws MalformedURLException {

    }


    @BeforeTest
    public void beforeTest() {


    }


    @AfterMethod
    public void afterMethod() {

    }

    @AfterClass
    public void afterClass() {

    }

    @AfterGroups
    public void afterGroups() {

    }

    @AfterSuite
    public void afterSuite() {

    }

    @AfterTest
    public void afterTest() {

    }
}

1. Junit:

JUnit是Java单元测试框架,从Junit4开始,通过注解的方式来识别测试方法,我们的Junit4在导入的selenium-server-standalone-3.0.0-beta3 这个包里面。目前支持的主要注解有:

注解 说明
@BeforeClass 全局只会执行一次,而且是第一个运行
@Before 在测试方法运行之前运行
@Test 测试方法
@After 在测试方法运行之后允许
@AfterClass 全局只会执行一次,而且是最后一个运行
@Ignore 忽略此方法

例如我们上一章导入的源码就有Test、Before、After

2.Testng:

它的目的就是是优于JUnit,消除了大部分的旧框架的限制,使开发人员能够编写更加灵活和强大的测试。

特点:

  • 灵活的插件API
  • 支持多线程测试
  • 灵活的运行时配置
  • 使用Java和面向对象的功能
  • 独立的编译时间测试代码运行时配置/数据信息
  • 支持依赖测试方法,并行测试,负载测试,局部故障
  • 支持综合类测试(如: 默认情况下,没有必要创建一个新的测试每个测试方法的类的实例)
  • 测试组。当编译测试,只要问TestNG运行所有的“前端”的测试,或“快”,“慢”,“数据库”等

官网文档地址: http://testng.org/doc/documentation-main.html

注解有:

注解 解析
@BeforeSuite 注解的方法将只运行一次,运行在此套件中的所有测试之前。
@AfterSuite 注解的方法将只运行一次,运行在此套件中的所有测试之后。
@BeforeClass 注解的方法将只运行一次,运行在该class运行之前。
@AfterClass 注解的方法将只运行一次,运行在该class之后。
@BeforeTest class的标签之前被运行。
@AfterTest class的标签之后被运行。
@BeforeGroups 组的列表,这种配置方法将之前运行。此方法是保证在运行属于任何这些组第一个测试方法,该方法被调用。
@AfterGroups 组的名单,这种配置方法后,将运行。此方法是保证运行后不久,最后的测试方法,该方法属于任何这些组被调用。
@BeforeMethod 注解的方法将每个测试方法之前运行。
@AfterMethod 被注释的方法将被运行后,每个测试方法。
@DataProvider 标志着一个方法,提供数据的一个测试方法。注解的方法必须返回一个Object[][],其中每个对象[]的测试方法的参数列表中可以分配。该@Test 方法,希望从这个DataProvider的接收数据,需要使用一个dataProvider名称等于这个注解的名字。
@Factory 作为一个工厂,返回TestNG的测试类的对象将被用于标记的方法。该方法必须返回Object[]。
@Listeners 定义一个测试类的监听器。
@Parameters 将参数传递给@Test方法。
@Test 标记一个类或方法作为测试的一部分。

PS: 设置程序信息一般放在BeforeClass或者BeforeSuite里面,不要放BeforeMethod里,为什么呢,如果有时候不止一个测试方法,放BeforeMethod里面就会导致调用多次,就会报错了。还有你要并行测试的话,设置信息一定得放在BeforeClass,不然就会导致只初始化一次,就会只有一台手机测试 。所以,初始化放在BeforeClass是最安全的,(例如我第十篇文章并行那里有讲到)。

二、 Testng和Junit的简单对比

  1. testng底层调用junit

  2. 历史上曾有testng优于junit的一段时期,但随后junit已更新并追赶上来

  3. testng的data provider使用较方便

  4. testng能做的事情junit都能做,但是有的地方会比较麻烦

三、 使用Testng

开始就用了,根本停不下来,就不用junit,先看看本来使用的单元 测试框架,看看导包就知道了

这里写图片描述

1.下载Testng

Android studio 添加依赖即可 ,在gradle的dependencies下面添加
(当前最新是6.9.6)

compile 'org.testng:testng:6.9.6'

这里写图片描述

2.添加Testng插件

AndroidStudio已经默认添加了,在File-Setting-Plugins 搜索即可看到
这里写图片描述

3.使用Testng

新建一个测试类,新建方法,在方法上面添加注解即可。例如文章开头的代码。

这里写图片描述

4.运行Testng

在测试的module的根目录下新建testng.xml, 名字随你,内容正常即可。详细的内容配置可以看官网: http://testng.org/doc/documentation-main.html#testng-xml

这里写图片描述

右键,运行即可

这里写图片描述

版权声明:本文为博主原创文章,转载请带上出处,谢谢。

[Android测试] AS+Appium+Java+Win自动化测试之三: 基础知识和Appium界面

一、 Selenium 是什么?Selenium是一套完整的web自动化测试工具集,它包含了测试的录制(Selenium IDE)、编写及运行(Selenium Remote Control)和测试的...

[Android测试] AS+Appium+Java+Win 自动化测试之十:testng多设备并行测试实例封装

一、什么是并行测试多台设备同时执行多个用例。。。二、原理appium启动多个服务,每个用例对应手机,占用不同的服务端口进行测试。利用testng的多线程实现并行。 网上有些教程说grid,然后加什么...

Appium+TestNG实现Android真机自动化测试 安装配置说明

Appium-TestNG自动化测试 安装配置 1.安装JDK,环境配置 2.ADT安装,环境配置 ANDROID_HOME  Path  %ANDROID_HOME%\tools;%ANDROI...

TestNG 使用介绍

TestNG TestNG是一个测试Java应用程序的开源框架,类似JUnit和NUnit。 环境配置 配置好java环境,命令行java -version查看 官网 , 下载对应系统下jar文件...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

接口自动化测试TestNG框架环境搭建 (1)

TestNG是什么? TestNG是一个功能强大的测试框架,是Junit的一个增强版本,Junit在使用多年之前,TestNG才生效存在。NG 代表“下一代”。 TestNG框架提供了以下功能和解答...

TestNg JAVA 自动化单元测试框架Demo

TestNg java 自动化测试

Eclipse+TestNG搭建接口自动化测试框架

一、环境安装 1、前提 安装好jdk 配置好Java环境变量 安装Eclips 这些网上都有,就不再详细介绍。 资源分享链接:http://pan.baidu.com/s/1v9Fw6...

Android Studio+Appium+TestNG数据驱动框架搭建

Eclipse+Appium+TestNG项目迁移到Android Studio 1,文件迁移 Eclipse中完整的Maven Project数据驱动框架结构: 收起src/test/java文件夹...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[Android测试] AS+Appium+Java+Win 自动化测试之四: 单元测试框架和TestNg
举报原因:
原因补充:

(最多只允许输入30个字)