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

最近看客户使用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 64bit

    OS 名称:          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.0

    C:\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.jar
12)验证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"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搭建自动化测试环境相关推荐

  1. python搭建自动化测试平台_如何用python语言搭建自动化测试环境

    原标题:如何用python语言搭建自动化测试环境 技术分享:基于Python语言的Web自动化测试环境搭建 近期发现很多初学者在学习自动化的过程当中,在环境安装环节总是出现问题,所以详细的出一篇环境搭 ...

  2. 使用Jenkins搭建自动化测试环境_环境准备_入门试炼01

    平台介绍: 前置准备环境:数据库MySQL,测试环境OS CentOS. 文章目录 1. 平台介绍 2. 自动化测试环境部署带来的幸福感: 2.1. 程序自动部署,节约时间 2.2. 环境一键部署,不 ...

  3. python建立考试系统_python搭建自动化测试环境

    防止忘记,写个简单的自动化环境搭建. 先写个大概的思路吧. 1.安装python和pycham 2.安装selenium库 3.安装和你的谷歌浏览器对应的webdriver 4.开始写脚本吧..... ...

  4. jenkins+testlink+python搭建自动化测试环境

    一. 环境搭建 jenkins安装与配置请参考我的另一篇博文:https://www.cnblogs.com/wuxunyan/p/9592953.html testlink安装请参考博文:https ...

  5. linux docker 跑代码_使用Docker 搭建自动化测试环境

    01 我经常是在 windows 上进行代码编写,但是无奈代码写完了总是要放到服务器上跑,自动化测试的代码也不例外. 但是当我把 windows 上写好的代码放到 linux 上的时候,总是会出现各种 ...

  6. c fread 快读 详解_万事开头难,手把手教你搭建Appium自动化测试环境,实践案例详解...

    随着移动互联网的发展,各行各业纷纷引入了移动端相关测试技术,很多公司都已经研发了基于Web前端与App端的相关应用程序,为了更好的保证软件测试的质量,移动端自动化测试已走进测试世界,随着终端特性的多机 ...

  7. 手把手教你搭建firefox火狐浏览器下的自动化测试环境

    自动化测试是时代趋势,因此很多测试人员开始研究自动化测试,web自动化测试化测试并不难,但是很多人都是被挡在了环境搭建这一步,后面学习激情全无,这里,我来手把手教大家搭建火狐浏览器下的自动化测试环境. ...

  8. 用Jenkins自动化搭建测试环境_jenkins基础搭建_入门试炼02

    Jenkins基础: 本篇介绍Jenkins的安装.Jenkins中的常用插件的安装方法.Jenkins用户配置以及提醒邮件的配置. 接上一篇:使用Jenkins搭建自动化测试环境_环境准备_入门试炼 ...

  9. 测试小白基于java的selenium自动化测试环境搭建

    本人是一个软件测试小白,自己在研究自动化测试时,真的入了不少坑,直到现在,才勉强将环境搭建了起来. 在此,我随随便便总结了一下基于java的selenium自动化测试环境搭建,送给正在学习软件测试的你 ...

最新文章

  1. 10种避免大型部署的方法
  2. Go 语言基础(一)
  3. GNOME Shell Extensions开发介绍
  4. 第三次学JAVA再学不好就吃翔(part99)--File类
  5. Postgres-XL数据库集群在RedHat/Fedora/Oracle/CentOS平台上的搭建
  6. GCC9.2/Python3.8/Libvirt6.0/QEMU4.2 编译/配置/安装
  7. 简练软考知识点整理-互联网+
  8. 2nd day in SG
  9. 从弧长的计算到逆时针与顺时针旋转的定义 (二维空间)
  10. Java web学生信息管理系统(jsp)
  11. 计算机硬件 试题,计算机硬件试题150完整版
  12. BootStrap4内容系列之文字排版
  13. DyLight 649-LCA;DyLight 649标记小扁豆凝集素(LCA)
  14. 离散型随机变量及其分布
  15. python 网页爬虫nike_python网络爬虫-爬取网页的三种方式(1)
  16. [Kong 与 Konga 与 Postgres数据库] 之 Kuberneres 部署
  17. vue-混入mixins
  18. 第一节云计算课程的感想
  19. torch编程-加载预训练权重-模型冻结-解耦-梯度不反传
  20. java dna框架_DNA - IOC依赖注入 - 组件类库 - JAVA开源项目 - 开源吧

热门文章

  1. Java保皇游戏发牌模拟
  2. 突发公共安全事件应急预警与指挥系统解决方案
  3. 设置自动保存的时间间隔、路径位置
  4. 公司安装电脑监控软件时应该怎样选择?
  5. 收集的那些好玩的东西
  6. 浅谈 大数据分析:市场分析、运营分析、用户行为分析
  7. 将metalink中的网页链接用python 提取
  8. 【个性化推荐系统】简介
  9. 清除计算机垃圾cmd命令,如何使用cmd命令窗口清理电脑废物
  10. hle机器人_Theshy败FPX后首玩诺手,踢爆HLE上单!最后一波骚操作扭转定乾坤