java testng 源代码_java testng框架的windows自动化-自动运行testng程序上篇

本文旨在让读者简单了解testng的自动运行

怎么说呢,在网上已经有了各个前辈进行代码演示以及分享,我力争说到点子上

接上文,之前讲的大部分是juint的自动化代码运行,从未涉及到testng,但是在测试领域,如果使用java代码,一般都是juint或者testng,总得来说,我都用过,深深的感觉,确实testng比juint功能更加的强大,不过也没有说到了完全望尘莫及的程度,能用juint做的,testng也能做,能用testng做的,用juint也一定能做,只是比较累而已,,,testng的话我确实感觉到是juint的进化版本,就像是一个人多年使用juint并发现其中的问题,然后重新改写源码来做的新的框架,但是,修改之后的testng的问题也在于,由于代码注释和xml等比juint复杂得多,它的入门和使用的门槛,略高于juint,需要对java,ant等有一定了解。

https://blog.csdn.net/luozhuwang/article/details/14646839 这个博文对junit和testng做出了表面的比较,怎么说呢,说的很在理,但是测开有几个人只会juint和testng呢?其他的过河桥,可以使得两者的差异并不明显。不过我认为,读这样的文章很重要,可以有一个较为粗浅的认识

如果你看完了之前的博客,就会发现juint并不依赖于java编译,它往往会使用已经编译好的class文件来执行(当然,你也可以使用ant命令使得java文件编译为class),下图是我画的大概框图

e858cd4780f5e2f3184b9cc8fcc6e61d.png

总得来说这样的xml会直接在里面指定执行的东西的位置,再由执行的位置来定位执行的方法等等

但是我们不禁要想到以下问题

1,如果系统中要求只执行一部分代码,比如执行查询接口,或者只执行插入接口,如何去做

2,如何让每个class,甚至每个方法,按照一定的方式优先级来执行

3,方法的依赖问题,又该如何处理

4,如果需要一个或者多个变量(如cookie),如何在代码中传输,使得今天和明天使得都是能用的不同的参数

5,,,

以上问题都是在面试中面试人员问过我的,,,我一般都能说出来实现方式junit版本,不过估计不是他们想要的答案,说实话,都能解决,但是都比较的取巧吧,而且费劲

testng在这些方面都要做的更好,本文逐一演示,下面是testng的大概思路

c00cb9ed6af0c35d799daa4db610c0ae.png

testng和juint比较大的区别在于,它相当于又多了一个xml文件来管理,ant的build.xml只需要指定一个路径,然后不需要修改,而执行哪些方法和class,如何执行,完全由testng自身定义的一个xml来规定,在juint中,这一件事情完全由build.xml和配置文件来完成

首先下载好testng的包,并采用标准的非mvn结构把包放到lib文件夹之下,现在代码里面开一个zlr3的文件,他的目录结构以及运行效果是这样的(读了这么多我的博客,我相信各位一定已经不用再花一个博文的篇幅来介绍这些内容了,直接略过)

742f8ab92441fd06e7bfa64a851f78fe.png

然后我new一个文件,可以叫做testNG.xml,与src同级目录,如图所示

34fdddc08028e05ae48a20f294945a07.png

里面写上如下代码

这个方法是直接运行整个class,其中name要指定要运行的class然后点击执行即可

f988c97e48d3ffae25ddb00cd08355f0.png

这里是使用java自身的代码处理的效果,如果读者能做到这个程度,就可以开始尝试进行下一步操作,使用ant来执行

在自己的系统中再创建一个xml,比如叫做build.xml,然后在其中写下如下代码

haltonfailure="true"

useDefaultListeners="false">

其中,笔者由于build.xml也在该工程下,所以 basedir=".",指的是当前目录

代码中分为clean->compile->run,其中lib/*.jar会把所有的jar都加载,而这一行需要指明

includes="testNG.xml"这样的参数来直接写出刚刚的xml直接调用,其中的打包啥的都可以修改路径,请自行摸索,下图是执行效果

27263faf5d54ae907b10f8438f472a59.png

可以看到,正确打印出了zlr,而且内容中也正常运行了代码,真的很不错

总得来说testng的代码,外面这个build.xml是不需要改动的,改动的只是代码中的xml,从这个xml中会指定运行的方法以及代码模块,这样的话代码上只需要对xml和java的代码这方面进行一系列讲解就好,虽然比junit代码更加的复杂一些,不过也还好,让程序员更专注的写xml,比如发邮件等工作会放在外面的xml中,而传参的代码写到里面的xml中,怎么说呢,虽然说得很费劲和绕,不过更加的各司其职,还好啦

至于如何自动运行ant程序,其实实际上和juint一样,有兴趣的读者可以从https://www.cnblogs.com/xuezhezlr/p/7725301.html这里看一下大概流程本文不做赘述

其中testng的代码结构又细分为多种,下一篇博客进行详细讲解,主要是说一下xml和一些相关的test文件目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值