博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TestNg JAVA 自动化单元测试框架Demo
阅读量:7145 次
发布时间:2019-06-29

本文共 3158 字,大约阅读时间需要 10 分钟。

hot3.png

  1. TestNg

    TestNg 是java的一个自动化单元测试框架
    参考:

  2. 环境准备

    既然是java 的自动化单元测试框架,就必须要有java的环境了,这里使用的编辑器是Eclipse,已经安装过TestNg 插件,如果环境准备好就可以开始了

  3. 代码实例

    代码结构如图
    这里写图片描述

    新建一个java项目,之后添加一个TestNg类,之后会生成一个测试类,和一个xml文件

    (如果发现TestNg编辑是出错,无法调用TestNg的标签函数,那么导入TestNg.jar.可以右键点击项目,之后BuildPath ->add Libary->选择TestNg 即可)
    这里写图片描述


    简单地TestNg类

    package TestNgDemo;//使用TestNg 测试框架import org.testng.Assert;import org.testng.annotations.Test;import org.testng.annotations.BeforeClass;import org.testng.annotations.AfterClass;public class NewTest {
    //测试开始前执行一次 @BeforeClass public void beforeClass() { System.out.println("开始前执行一次"); } @Test public void case1() { System.out.println("case1"); } @Test public void case2() { int a = 2; int b = 3; int sum = a+b; Assert.assertEquals(sum, 5, "Result Error"); System.out.println("case2"); } //测试结束时执行一次 @AfterClass public void afterClass() { System.out.println("结束时执行一次"); }}

    对应的Xml配置文件(TestNg 都是通过注释标签,有点类似Junit,并且通过xml文件托管):


    使用TestNg Xml 进行数据驱动传递参数

    package TestNgDemo;//使用TestNg 传递参数import org.testng.annotations.Parameters;import org.testng.annotations.Test;import org.testng.annotations.BeforeMethod;import org.testng.annotations.AfterMethod;public class NewTest2 {
    @BeforeMethod public void beforeMethod() { System.out.println("每个方法运行时运行"); } //通过Parameters 获取Xml 中指定的参数 @Parameters({
    "name","age"}) @Test public void case1(String name,int age) { System.out.println("case1 Name is"+ name); System.out.println("case1 Age is"+ age); } @Test public void case2() { System.out.println("case2"); } @AfterMethod public void afterMethod() { System.out.println("每个方法结束时运行"); }}

    对应的xml如下:


    通过xml设置分组,运行不同的case

    package TestNgDemo;//TestNg 分组运行import org.testng.annotations.AfterMethod;import org.testng.annotations.BeforeMethod;import org.testng.annotations.Parameters;import org.testng.annotations.Test;import org.testng.annotations.BeforeClass;import org.testng.annotations.AfterClass;public class NewTest3 {
    @BeforeMethod public void beforeMethod() { System.out.println("Begain"); } @Parameters({
    "name","age"}) @Test(groups="CaseGroup1") public void case1(String name,int age) { System.out.println("case1 Name is"+ name); System.out.println("case1 Age is"+ age); } @Test(groups="CaseGroup2") public void case2() { System.out.println("case2"); } @AfterMethod public void afterMethod() { System.out.println("End"); }}

    对应的xml文件如下,需要运行那个组的时候,就可以直接更改:


  4. TestNg 是通过Xml文件管理测试累的,可以看到,每个测试方法都可以看做一条Case,并且开头都有 作为测试标记

    更多的TestNg xml管理的例子可以参考:
    TestNg 主要的就是通过Xml 托管,注释标签调用

转载于:https://my.oschina.net/hiphopcoder/blog/745620

你可能感兴趣的文章
如何不花钱得到一辆特斯拉Model 3,挖漏就成
查看>>
python设计模式(六):桥接模式
查看>>
手写Java线程池
查看>>
编排管理成容器云关键 Kubernetes(K8s)和Swarm对比分析 ...
查看>>
Spring Cloud Hystrix源码分析
查看>>
AMD的双向田忌赛马:7nm中端CPU挑落顶级i9,旗舰GPU只对位NV三当家 | CES 2019 ...
查看>>
云服务器ECS出现速度变慢 以及突然断开怎么办? ...
查看>>
“水泊梁山“互联网有限公司一百单八将内部社交网络
查看>>
国内最大母婴社区宝宝树创始人邵亦波辞任公司董事,将专注慈善事业
查看>>
一入爬虫深似海,总结python爬虫学习笔记!
查看>>
Python零基础学习笔记(十九)—— 死循环
查看>>
「镁客·请讲」诺亦腾刘昊扬:VR教育了市场,但动作捕捉技术的契机绝不止于VR...
查看>>
IoT与区块链的机遇与挑战
查看>>
阿里腾讯在海南智慧城市之争
查看>>
如何确保文件数据的传输安全性!
查看>>
Linux 磁盘管理基础知识全汇总
查看>>
程序员好心帮应届生改代码后,结果扎心了!
查看>>
Streaming System 第三章:Watermarks
查看>>
【对讲机的那点事】出租车司机开车时使用对讲机 大家怎么看?
查看>>
【对讲机的那点事】如何设置灵通LD7000H数字对讲机的信道?
查看>>