TestNG意为test next generation,是Java中的一个测试框架,Java中已经有一个JUnit的测试框架,类似于JUnit和NUnit,但TestNG比JUnit功能更加强大,使用也更方便,测试人员一般用TestNG来写自动化测试。
TestNG最简单的测试
下面是TestNG的一个例子
packageTankLearn2.Learn
importorg.junit.AfterClass
importorg.junit.BeforeClass
importorg.testng.annotations.Test
publicclassTestNGLearn1{
@BeforeClass
publicvoidbeforeClass(){
System.out.println("this is before class")
}
@Test
publicvoidTestNgLearn(){
System.out.println("this is TestNG test case")
}
@AfterClass
publicvoidafterClass(){
System.out.println("this is after class")
}
}
TestNG的基本注解
注解 描述
@BeforeSuite 注解的方法将只运行一次,运行所有测试前此套件中。
@AfterSuite 注解的方法将只运行一次,此套件中的所有测试都运行之后。
@BeforeClass 注解的方法将只运行一次先行先试在当前类中的方法调用。
@AfterClass 注解的方法将只运行一次后已经运行在当前类中的所有测试方法。
@BeforeTest 注解的方法将被运行之前的任何测试方法属于内部类的标签的运行。
@AfterTest 注解的方法将被运行后,所有的测试方法,属于内部类的标签的运行。
@BeforeGroups 组的列表,这种配置方法将之前运行。此方法是保证在运行属于任何这些组第一个测试方法,该方法被调用。
@AfterGroups 组的名单,这种配置方法后,将运行。此方法是保证运行后不久,最后的测试方法,该方法属于任何这些组被调用。
@BeforeMethod 注解的方法将每个测试方法之前运行。
@AfterMethod 被注释的方法将被运行后,每个测试方法。
@DataProvider 标志着一个方法,提供数据的一个测试方法。注解的方法必须返回一个Object[] [],其中每个对象[]的测试方法的参数列表中可以分配。
该@Test方法,希望从这个DataProvider的接收数据,需要使用一个dataProvider名称等于这个注解的名字。
@Listeners 定义一个测试类的监听器。
@Parameters 介绍如何将参数传递给@Test方法。
@Test 标记一个类或方法作为测试的一部分。
TestNG组测试
在编写测试的过程中,经常遇到只想执行个别或者某一部分/某一类型的测试用例,TestNG提供了分组测试方法,可以按组来执行测试用例。
packageTankLearn2.Learn
importorg.testng.annotations.Test
publicclassGroupTest{
@Test(groups = {"systemtest"})
publicvoidtestLogin(){
System.out.println("this is test login")
}
@Test(groups = {"functiontest"})
publicvoidtestOpenPage(){
System.out.println("this is test Open Page")
}
}
TestNG依赖测试
有时,我们需要按顺序来调用测试用例,测试用例之间存在依赖关系,TestNG支持测试用例之间的依赖。
importorg.openqa.selenium.WebElement
importorg.testng.Assert
importorg.testng.annotations.Test
importpage.*
importutil.AppiumTest
importjava.util.List
importstaticutil.Helpers.*
@Test
publicvoidmethod1()
{
BookMarkEditPage bookMarkPageEdit =newBookMarkEditPage()
bookMarkPageEdit.addPoiToBookMark("清华东路西口")
Assert.assertTrue(bookMarkPageEdit.verifyAddPoiToBookMark("清华东路西口"),"添加poi点失败")
System.out.println("This is method 1")
}
@Test(dependsOnMethods = {"method1"})
publicvoidmethod2(){
BookMarkCommonPage bookMarkCommonPage =newBookMarkCommonPage()
bookMarkCommonPage.deleteAllItems()
Assert.assertTrue(bookMarkCommonPage.isDisplayed("你还没有添加收藏"),"删除失败!")
System.out.println("This is method 2")
}
TestNG忽略测试
当测试用例还没准备好时,可以给测试用例加上@Test(enable = false), 来禁用此测试用例。
packageTestng
importorg.junit.AfterClass
importorg.junit.BeforeClass
importorg.testng.annotations.AfterMethod
importorg.testng.annotations.BeforeMethod
importorg.testng.annotations.Test
publicclassLtg{
@BeforeMethod
publicvoidbeforeMethod(){
System.out.println("this is before method")
}
@Test(enabled =false)
publicvoidTestNgLearn1(){
System.out.println("this is TestNG test case 1")
}
@Test
publicvoidTestNgLearn2(){
System.out.println("this is TestNG test case 2") }
@AfterMethod
publicvoidafterMethod(){
System.out.println("this is after method")
}
}
TestNg执行顺序
BeforeMethod/AfterMethod会在每个方法中调用一次,这种适用场所,比如执行完第一个用例之后要重置数据才能执行第二条用例时,可以用这种方式,BeforeMethod 就放重置数据的方法,让每个方法执行之前都去调用这个方法
TestNG具体生命周期
TestNg特点
1、annotations注释,如@test @BeforeMethod ;
2、支持多线程执行case ;
3、支持数据驱动dataProvider ;
4、支持参参数 ;
5、能够作为eclipse的插件 ;
6、能够(配合reportng)生产客观的测试报告 ;
7、可通过testng.xml管理执行case和suite;
TestNG suite
testng.xml文档中最上层的元素
说明:一个xml文件只能有一个,是一个xml文件的根级
由和组成
suite定义一个测试套件,可以设置是否使用多线程,可包含多个测试用例或者测试group。
testng.xml 配置详解
简单的大概结构如下:
以下详细XML规则
-结-构-树
suite
–tests
—-parameters
—-groups
——definitions
——runs
—-classes
–parameters
比较详细的结构如下:
1、Robotium——安卓测试工具 Robotium是安卓系统最常用的自动化测试工具,并且是一款免费的安卓UI测试工具。它适合于各种不同的安卓版本及其下行版本。软件开发者经常把它称作安卓。Robotium创建的测试使用Java写的。事实上,Robotium是一个个体测试数据库。 但是Robotium需要花费很长时间努力去创建测试,就像为了自动化程序创建的源代码。它不适合互动的软件系统,不能锁住和解锁智能手机。Robotium没有记录和播放功能,它不支持截屏。 2、MonkeyRunner——安卓App测试工具 MonkeyRunner是最流行的有自动化功能的安卓软件测试工具。MonkeyRunner比起Robotium要低端一些。它并不处理源代码。测试创建是用Python写的,其中可能使用记录工具,为了创建测试。MonkeyRunner可以在连接状态的PC或者模拟器上运行测试。它有一个应用程序接口可以控制智能手机或者模拟器。但手机APP测试工具的最大缺陷是每个设备都要编写脚本。另一个缺陷就是,每次测试程序发生改变时都要调整。 3、Ranorex——安卓App测试工具 Ranorex是一个不错的自动化测试工具,不仅最新版本,Android 2.2.以上版本都是可以的。Ranorex的好处在于它有详细的截屏报告。他可以通过WiFi上网连接智能手机或者平板电脑。通过这个 Android 工具,自动化的测试工程师可以详细描述数据驱动测试,但不包括 XML 数据格式。Ranorex可以很轻松地创建测试,自动化测试工程师只需点击鼠标。Ranorex允许附加的程序模块。这个模块可以被用于开发更为复杂的测试场景中。Ranorex是一个商业化的移动应用程序的工具其许可价格是 1990欧元/年。Ranorex搜索相当慢它需要 30 秒的时间来执行 *** 作。其中一个必须为Ranorex文书的 APK 文件。否则它不能通过这个工具进行自动化测试,它只能在APK 文件下工作。 4、Appium——安卓自动化测试工具 Appium是为iOS和安卓系统创建的自动化测试框架,是一个免费工具。它支持 2.3 及更高版本的 Android 系统。Appium利用WebDriver界面运行测试。它支持许多编程语言,如 Java、 C#、Ruby和其他的WebDriver数据库。它可以在移动设备上控制 Safari 和Chrome。但是,一些自动化的测试工程师抱怨它提供的报告不足。它的缺点也减少了对于XPath在移动设备上的支持。 5、UI Automator——安卓自动化测试 谷歌最近推出了这一工具。它支持从4.1开始的安卓版本。我们应该选择另一个更早期的安卓应用程序进行自动化测试。UI Automator能够与各类安卓系统兼容,包括系统的应用程序。这使得UI Automator可以锁定和解锁智能手机或平板电脑。通过该工具创建的脚本可以在许多不同的安卓平台上执行。它允许复制用户的 *** 作复杂的序列。UI Automator也可以利用外部按钮的装置调节,打开和关闭设备的按钮。 UI Automator可以与测试框架TestNG集成。在这种情况下,用户界面自动可以生成内容丰富和详细的报告,类似于由Ranorex生成的报告。此工具搜索速度还非常快。在许多安卓平台上测试后,软件测试专家认为UI Automator是质量最好的移动应用程序。它是安卓做好的应用程序之一,它由谷歌推出。 通常大约 80%的新软件的 bug 都会重现支持的平台。其余 20%出现在其他平台上。这意味着,在大多数情况下,事先测试软件产品比盲目使用更好。 目前, Android 4.1 版本安装了约 66% *** 作系统的设备。这就是为什么许多自动化的测试工程师经常决定UI Automator是最合适的解决方案。1、下载安装JDK、配置环境变量1
jdk(java development
kit),java开发工具集,如果测试的环境需要搭建成java程序能够执行的,就需要在自己的电脑里安装jdk,jdk有可执行程序的安装和解压缩直
接可用两种。可以直接去oracle官网进行下载,也可以在网上寻找资源
2
如果你运行的是exe文件的安装,那么jdk的安装基本属于傻瓜式安装,只需要点击“下一步”完成安装,可以对保存路径进行更改,安装好jdk之后,需要对环境变量进行配置:
3
在环境变量中查看是否存在JAVA_HOME,CLASSPATH变量,这样标识是为了以后能够看出该变量属于哪一部分。
JAVA_HOME=你的jdk安装路径\jdk1.7
CLASSPATH=.%JAVA_HOME%\lib\dt.jar%JAVA_HOME%\lib\tools.jar
Path=%JAVA_HOME%\bin%JAVA_HOME%\jre\bin
Path下的路径是在以往存在路径之后添加分号(;),之后将上面的变量输入进去,而不是覆盖。
配置好之后查看是否配置成功使用命令 java -version
END
2、下载、安装ADT
1
ADT(android developmet kit)安卓开发工具包,这是安装开发不可缺少的,内部包含了一些开过过程中所需要的工具。网上有很多ADT的下载路径,可以下载较新版本的,如果有需要可以联系我。
2
下载好之后的ADT也属于一个压缩包,解压之后你会看到该压缩包里面包括三部分:eclipse、sdk、sdk manager
对其环境变量进行配置:
新增一个环境变量:
ANDROID=存放路径\sdk\
path=%ANDROID%\tools\%ANDROID%\platform-tools
END
3、安装AppiumForWindow
1
在官网或者网络资源上找appium下载资源,根据自己的电脑系统安装不同的appium,window系统安装appiumForWindow。
安装成功之后点击图标Appium,exe就可以启动了
2
创建安装模拟器,也就是安卓虚拟机,这里面需要eclipse软件,并且其中配置好了安卓开发环境。
启动eclipse----》window--->android virtual device manager 点击之后就可以创建安卓虚拟设备了。
new创建----》配置虚拟设备的型号、类型等等信息---》ok,就可以创建成功了
3
启动你刚刚配置好的安卓虚拟机,就可以看到一个手机界面了,该手机在你进行appium测试的时候可以根据需要调整其型号类型。
END
4、安装所需插件
1
由于eclipse测试程序需要一些必要的插件,所以必须进行插件的下载,此时不需要再单独下载,eclipse marketplace中已经给我们提供好了。
eclipse-->help--->eclipse marketplace搜索框中输入testng,下载即可,下载好之后会提醒你重新启动eclipse。
2
如同上一步,在eclipse marketplace中输入maven,查看到之后点击install即可完成安装,svn也需要这样进行安装,安装好之后一定要重新启动eclipse,如果不启动你安装的程序在此次无法使用。
3
环境变量搭建成功,接下来就可以进入到你的测试工作中去了。
http://jingyan.baidu.com/article/4e5b3e193c23f491911e2445.html
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)