700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > seleninum + testNG + reportNG在Windows7搭建自动化测试环境

seleninum + testNG + reportNG在Windows7搭建自动化测试环境

时间:2019-04-20 08:47:41

相关推荐

seleninum + testNG + reportNG在Windows7搭建自动化测试环境

自动化,不可逃避的问题。还好环境配置越来越集成化,相对于最原始的安装简单了许多。

最近看客户使用selenium + testng + reportng搭建的自动化测试环境,将整个环境进行了层次化,想来是做集成测试开发使用,而且客户的环境是平行移植的,并不需要动手逐个部署。

要真正了解架构,亲手尝试是最好的办法,真正的问题来自于实践。

闲来技痒,自己动手尝试在Window7环境下搭建seleninum + testng + reportng的集成测试环境。

先列出基本过程,之后对问题收集、记录和修正。

不断完善,理解自动化测试的理念、框架和实现原理,而具体的项目实现只有到真实项目中不断历练和积累。

参考

1)Selenium:/

2)testng:/doc/

TestNG is a testing framework inspired from JUnit and NUnit but introducing some new functionalities that make it more powerful and easier to use)

3)reportng:http://www.open-/open213925.htm

4)eclipse:/

5)环境组件下载:/

6)配置参考:/SH-xuliang/p/6733285.htmlEnvironment

/ -- canbe download from this site

1)OS:Window7 64bit

OS 名称:Microsoft Windows 7 旗舰版OS 版本:6.1.7601 Service Pack 1 Build 7601OS 制造商: Microsoft Corporation

2)Eclipse:Oxygen Release (4.7.0)

3)java:1.8.0

C:\Users\Administrator>java -versionjava version "1.8.0"Java(TM) SE Runtime Environment (build 1.8.0-b132)Java HotSpot(TM) 64-Bit Server VM (build 25.0-b70, mixed mode)

3)Software:Subclipse, subversion for eclipse -- 代码管理

selenium-server-standalone-2.53.0

testNG6.12

reportNG1.1.4Deployment

1)下载并安装Eclipse

2)testNG插件:Help --> Eclipse Marketplace --> Search testNG: TestNG for Eclipse

3)reportNG插件:reportng-1.1.4.jar(/snapshot//maven2/org.uncommons/reportng/1.1.4)

4)新建Java测试项目:File --> New --> Java Project: seAuto

5)新建package:src --> testSuite:testSuite

6)新建testNG:File --> Other --> TestNG --> TestNG class

Note: testNG具体说明,参考官方文档

7)引入testNG lib库

此时提示“The import org.testng cannot be resolved”,需要引用testNG lib库

Select Project --> Build Path --> Configure Build Path --> Libraries --> Add Library --> TestNG

8)验证testNG

testSuite.xml --> Run As --> TestNG Suite

此时会执行预设的测试,即testSuite.java中的标记为@test的测试 -- 参见,testSuite.java -- TestNG插件安装完毕

[RemoteTestNG] detected TestNG version 6.12.0[TestNGContentHandler] [WARN] It is strongly recommended to add "<!DOCTYPE suite SYSTEM "/testng-1.0.dtd" >" at the top of your file, otherwise TestNG may fail or not work as expected.===============================================SuiteTotal tests run: 2, Failures: 0, Skips: 0===============================================

使用reportNG插件

9)使用reporNG作为listeners: Window --> Preferences --> TestNG

10)testSuite.xml中注册reportNG

<!-- add listener --><listeners><listener class-name="org.uncommons.reportng.HTMLReporter"></listener></listeners>

11)使用reportNG

执行测试工:testSuite.xml --> Run As --> TestNG Suite,提示如下

[RemoteTestNG] detected TestNG version 6.12.0org.testng.TestNGException: Listener org.uncommons.reportng.HTMLReporter was not found in project's classpathat org.testng.TestNG.addListeners(TestNG.java:1009)at org.testng.TestNG.initializeConfiguration(TestNG.java:976)at org.testng.TestNG.initializeEverything(TestNG.java:1108)at org.testng.remote.support.RemoteTestNG6_12.initialize(RemoteTestNG6_12.java:22)at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:97)at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)

添加reportNG lib库 * Window --> Preferences --> Java --> Build Path --> User Libraries --> lib *Select Project --> Build Path --> Configure Build Path --> Libraries --> Add Library --> User Library: reportng1.1.4.jar12)验证reportNG testSuite.xml --> Run As --> TestNG Suite

[RemoteTestNG] detected TestNG version 6.12.0

===============================================

Suite

Total tests run: 2, Failures: 0, Skips: 0

===============================================

生成test-output目录,即reportNG报告

Note: 在执行过程中会提示安装velocity 和guice 插件,具体可参考Question 2

至此,Selenium + testNG + reportNG环境部署完成。
自己的测试项目框架配置

**** 原则: 易于实现、方便管理、减小维护成本、报告清晰易分析

逐步细化、分层管理:单一项目可以减少分层,减少维护量;多项目并行,要考虑项目间共用内容

1)分离自动化测试项目的公共方法业务方法

* 公共方法:将与具体项目业务无关的方法独立实现,供所有不同项目使用

如,系统初始化,测试异常处理

* 业务方法:专注具体项目业务,按业务场景实现测试,同时分离公共的业务操作

2)分离环境

* 分离不同的操作系统

* 分闻不同的浏览器

3)分离业务实现步骤

* 测试数据

* 测度对像操作

* 测试操作步骤

* 测试场景实现

* 测试结果验证

4)持续集成,根据代码变更,完成测试执行和报告生成

5)思考问题

* 哪些项目适合开展自动化测试?

* 使用什么工具开展自动化测试?自我开发?成形的框架?

* 如何提高自动化测试的可维护性?

* 如何提高自动化测试的覆盖率?

* 自动化测试如何发现更多的问题?

* 自动化测试 与 手工测试的配合?Question

1.[TestNGContentHandler][WARN] It is strongly recommended to add "<!DOCTYPE suite SYSTEM"/testng-1.0.dtd" >" at the top of yourfile, otherwise TestNG may fail or not work as expected

解决方法:修改testNG中的xml配置文件

<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEsuiteSYSTEM"/testng-1.0.dtd"><suitename="Suite" parallel="false"><!-- <test name="Test"><classes> <class name="testSuite.Suite"/></classes> </test> --><!-- test for Login --><testname="Login"><classes><classname="testCase.Login"/></classes></test><!-- add listener --><listeners><listenerclass-name="org.uncommons.reportng.HTMLReporter"></listener></listeners> </suite><!-- Suite -->

2.java.lang.ClassNotFoundException: org.apache.velocity.context.Context

java.lang.NoClassDefFoundError:org/apache/velocity/context/Contextatjava.lang.Class.getDeclaredConstructors0(Native Method)atjava.lang.Class.privateGetDeclaredConstructors(Unknown Source)atjava.lang.Class.getConstructor0(Unknown Source)atjava.lang.Class.newInstance(Unknown Source)atorg.testng.internal.ClassHelper.newInstance(ClassHelper.java:65)atorg.testng.TestNG.addListeners(TestNG.java:1012)atorg.testng.TestNG.initializeConfiguration(TestNG.java:976)atorg.testng.TestNG.run(TestNG.java:1102)atorg.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132)atorg.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:230)atorg.testng.remote.RemoteTestNG.main(RemoteTestNG.java:76)Caused by:java.lang.ClassNotFoundException:org.apache.velocity..URLClassLoader.findClass(Unknown Source)atjava.lang.ClassLoader.loadClass(Unknown Source)atsun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)atjava.lang.ClassLoader.loadClass(Unknown Source)...11 more

解决方法:下载velocity插件,并加载到lib路径中

3.如有兴趣,可以详细阅读相关的源码,以扩展功能,比如按日期和时间生成测试执行报告

反编译可以通过Help --> Eclipse Marketplace --> decompile 安装

4.项目执行中可能会出现缺少commons-*.jar的提示,按提示在 / 下载得到。

说明:eclipse的plugins已经包含了所需的commons组件,可能是由于版本问题无法正常使用。 

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。