Eclipse中怎么安装TestNG单元测试框架
在Eclipse中安装TestNG单元测试框架的步骤:1、启动Eclipse,在Help->Software Update->Find and Install, 在弹出的向导中,选择"Search New Features to Install", 点击"New Remote Site",如图所示。在URL中输入 http://beust.com/eclipse,点击"OK"。2、如图所示,点击"Finish",Eclipse会自动完成下面的安装。3、安装好TestNG后,在Eclipse中单击"Window"->Show View->Other->Java->TestNG, TestNG的视图就打开了。
Eclipse中怎么安装TestNG单元测试框架
方法/步骤
1
进行常用的eclipse的开发的工具,进行到了eclipse的界面中之后,进行点击菜单中的"Help",弹出下拉菜单中进行选择为install new software的选项。
2
进入到了install的选项界面中,进行点击菜单中的add的选项。
3
就会弹出了add epository的,在name备注昵称,location为testng的下载路径位置,设置完成之后,进行点击“OK”的选项。
4
在这里这个选项之前,需要进行一定时间上加载,加载完成之后,进行再name中,进行勾选上,然后进行点击next下一步即可。
5
点击下一步完成之后,进入到install detalls的选项界面中,对需要下载的信息确认,可以直接点击next。
6
然后到了review licenses的选项界面中,需要同意license,选中完成之后,点击finish。
7
这样就需要下载一段时间,等待弹出了一个software updates的选项,安装完成之后需要进行重启,点击yes。
8
重启完成之后,确认是否安装完成,进行进入到了,windows>show view,进行查看是否有testNG
testng的dataprovider怎么传参
testng中传递参数可以使用@Dataprovider,这种参数主要用于指定的参数集合,但是如果是从testng外部传入参数的话,@Dataprovider则无法获得或者说无法直接获得
这种情况可以通过标签,在testng.xml中定义参数的值。对于同一参数,可以在不同地方定义不同值,因此需要注意testng.xml中的测试范围的问题。
和标签定义了suite和test两种测试范围:一个test可以包含一系列的测试方法,一个
suite可以包含多个独立的test。这两种测试范围有什么区别呢?一个test的所有测试方法都是针对同一测试对象,测试方法之间可以相互影响。而一
个suite的每个test都是针对一个单独测试对象,两个test中的测试方法不会相互影响。
在这两种测试范围定义的参数,满足如下规律:
1)在Suite范围内定义某个参数的值,对所有的Test都有效。
2)在Test范围内定义某个参数的值,只是针对该Test有效。
3)如果同时在Suite和Test中定义某个参数,Test范围的值会屏蔽Suite的值。
[html] view plain copy print?
在suite中都定义了username和password两个参数,同时也在test1中也定义了这两个参数,但是在test2中没有定义。因
此,test1中所有测试方法的username和password分别为“root2”和“pwd2”,而test2中所有测试方法的username
和password分别为“root”和“pwd”。
在java代码中,给测试方法传递参数的示例代码如下:
[java] view plain copy print?
@Parameters({"username"})
@Test(groups = "login")
public void inputUsername(String username) {
System.out.println("Input Username: " + username);
}
@Parameters({"password"})
@Test(groups = "login")
public void inputPassword(String password) {
System.out.println("Input Password: " + password);
}
如果带参的函数被@Test标记为测试函数,但是没有被@Parameters标记,或者被@Parameters标记了,但是没有指定传递参数的名字,都会抛出一个TestNGException,这个函数就会被认为fail掉。
testng.xml只能传输简单类型的参数,不能传递Object类型。可以通过间接的方式,传递Object类型的参数。将所有参数化放到一个xml
文件中,然后将该xml文件名作为参数,传递到一个XML解析器中。将xml解析的参数作为属性,创建所需的Object对象,然后对这些对象执行测试方
法。
对比@Dataprovider
@DataProvider标记专门为测试方法提供参数的方法。这类方法必须返回Object[ ][
]类型的二维数组,Object[]的每一行,都是测试方法的一个测试数据集,测试方法会为每个测试数据集执行一次。如果没有指定参数的名称,则默认为方
法的名称,方法的名称没有限制。
@DataProvider标记的方法一般情况下没有参数,其实也可以带参数,但是这些参数的传递受到下面的两个限制:
1)@DataProvider标记的方法不可能是测试函数,因此不能通过@Parameters传递参数。
2)@DataProvider标记的方法只能被TestNG调用,因此用户不能通过调用的方式传递参数。
基于上面两个限制,@DataProvider标记的方法的参数化必须是特殊类型的,即TestNG在调用该方法时,可以通过反射机制获得。例如,例子中
传递的参数是java.lang.reflect.Method类型,TestNG会将当前测试函数的名称传递给这个参数。当多个测试函数同时使用相同
@DataProvider提供的参数时,需要根据测试方法提供不同的测试数据集时,这种特殊类型参数就显得非常有用。

