seleninum + testNG + reportNG在Windows7搭建自动化测试环境
自动化,不可逃避的问题。还好环境配置越来越集成化,相对于最原始的安装简单了许多。
最近看客户使用selenium + testng + reportng搭建的自动化测试环境,将整个环境进行了层次化,想来是做集成测试开发使用,而且客户的环境是平行移植的,并不需要动手逐个部署。
要真正了解架构,亲手尝试是最好的办法,真正的问题来自于实践。
闲来技痒,自己动手尝试在Window7环境下搭建seleninum + testng + reportng的集成测试环境。
先列出基本过程,之后对问题收集、记录和修正。
不断完善,理解自动化测试的理念、框架和实现原理,而具体的项目实现只有到真实项目中不断历练和积累。
- 参考
1)Selenium:http://www.seleniumhq.org/
2)testng:http://testng.org/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-open.com/open213925.htm
4)eclipse:http://www.eclipse.org/
5)环境组件下载:http://www.grepcode.com/
6)配置参考:http://www.cnblogs.com/SH-xuliang/p/6733285.html
- Environment
http://www.grepcode.com/ -- canbe download from this site
1)OS:Window7 64bitOS 名称: Microsoft Windows 7 旗舰版 OS 版本: 6.1.7601 Service Pack 1 Build 7601 OS 制造商: Microsoft Corporation
2)Eclipse:Oxygen Release (4.7.0)
3)java:1.8.0C:\Users\Administrator>java -version java 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.4
- Deployment
1)下载并安装Eclipse
2)testNG插件:Help --> Eclipse Marketplace --> Search testNG: TestNG for Eclipse
3)reportNG插件:reportng-1.1.4.jar(http://www.grepcode.com/snapshot/repo1.maven.org/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 "http://testng.org/testng-1.0.dtd" >" at the top of your file, otherwise TestNG may fail or not work as expected. =============================================== Suite Total 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.0 org.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)验证reportNGtestSuite.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"http://testng.org/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"http://testng.org/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.context.Contextatjava.net.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的提示,按提示在 http://commons.apache.org/ 下载得到。
说明:eclipse的plugins已经包含了所需的commons组件,可能是由于版本问题无法正常使用。
seleninum + testNG + reportNG在Windows7搭建自动化测试环境相关推荐
- python搭建自动化测试平台_如何用python语言搭建自动化测试环境
原标题:如何用python语言搭建自动化测试环境 技术分享:基于Python语言的Web自动化测试环境搭建 近期发现很多初学者在学习自动化的过程当中,在环境安装环节总是出现问题,所以详细的出一篇环境搭 ...
- 使用Jenkins搭建自动化测试环境_环境准备_入门试炼01
平台介绍: 前置准备环境:数据库MySQL,测试环境OS CentOS. 文章目录 1. 平台介绍 2. 自动化测试环境部署带来的幸福感: 2.1. 程序自动部署,节约时间 2.2. 环境一键部署,不 ...
- python建立考试系统_python搭建自动化测试环境
防止忘记,写个简单的自动化环境搭建. 先写个大概的思路吧. 1.安装python和pycham 2.安装selenium库 3.安装和你的谷歌浏览器对应的webdriver 4.开始写脚本吧..... ...
- jenkins+testlink+python搭建自动化测试环境
一. 环境搭建 jenkins安装与配置请参考我的另一篇博文:https://www.cnblogs.com/wuxunyan/p/9592953.html testlink安装请参考博文:https ...
- linux docker 跑代码_使用Docker 搭建自动化测试环境
01 我经常是在 windows 上进行代码编写,但是无奈代码写完了总是要放到服务器上跑,自动化测试的代码也不例外. 但是当我把 windows 上写好的代码放到 linux 上的时候,总是会出现各种 ...
- c fread 快读 详解_万事开头难,手把手教你搭建Appium自动化测试环境,实践案例详解...
随着移动互联网的发展,各行各业纷纷引入了移动端相关测试技术,很多公司都已经研发了基于Web前端与App端的相关应用程序,为了更好的保证软件测试的质量,移动端自动化测试已走进测试世界,随着终端特性的多机 ...
- 手把手教你搭建firefox火狐浏览器下的自动化测试环境
自动化测试是时代趋势,因此很多测试人员开始研究自动化测试,web自动化测试化测试并不难,但是很多人都是被挡在了环境搭建这一步,后面学习激情全无,这里,我来手把手教大家搭建火狐浏览器下的自动化测试环境. ...
- 用Jenkins自动化搭建测试环境_jenkins基础搭建_入门试炼02
Jenkins基础: 本篇介绍Jenkins的安装.Jenkins中的常用插件的安装方法.Jenkins用户配置以及提醒邮件的配置. 接上一篇:使用Jenkins搭建自动化测试环境_环境准备_入门试炼 ...
- 测试小白基于java的selenium自动化测试环境搭建
本人是一个软件测试小白,自己在研究自动化测试时,真的入了不少坑,直到现在,才勉强将环境搭建了起来. 在此,我随随便便总结了一下基于java的selenium自动化测试环境搭建,送给正在学习软件测试的你 ...
最新文章
- 10种避免大型部署的方法
- Go 语言基础(一)
- GNOME Shell Extensions开发介绍
- 第三次学JAVA再学不好就吃翔(part99)--File类
- Postgres-XL数据库集群在RedHat/Fedora/Oracle/CentOS平台上的搭建
- GCC9.2/Python3.8/Libvirt6.0/QEMU4.2 编译/配置/安装
- 简练软考知识点整理-互联网+
- 2nd day in SG
- 从弧长的计算到逆时针与顺时针旋转的定义 (二维空间)
- Java web学生信息管理系统(jsp)
- 计算机硬件 试题,计算机硬件试题150完整版
- BootStrap4内容系列之文字排版
- DyLight 649-LCA;DyLight 649标记小扁豆凝集素(LCA)
- 离散型随机变量及其分布
- python 网页爬虫nike_python网络爬虫-爬取网页的三种方式(1)
- [Kong 与 Konga 与 Postgres数据库] 之 Kuberneres 部署
- vue-混入mixins
- 第一节云计算课程的感想
- torch编程-加载预训练权重-模型冻结-解耦-梯度不反传
- java dna框架_DNA - IOC依赖注入 - 组件类库 - JAVA开源项目 - 开源吧