仓酷云

标题: 来看寻求代码质量 - 利用Selenium和TestNG举行编程式测试 [打印本页]

作者: 精灵巫婆    时间: 2015-1-18 11:27
标题: 来看寻求代码质量 - 利用Selenium和TestNG举行编程式测试
Java编译的是字节码,跟C++相反,启动不够快,效率不够高,难以精确控制内存,但是优点是编程比C++容易,代码比较安全但是容易留下性能隐患,跨平台靠字节码在各个平台复制(一处编译到处调试)
Selenium是一种Web测试框架,它搭建了考证Web使用程序的新路子。与年夜多半实验摹拟HTTP哀求的Web测试工具分歧,Selenium实行Web测试时,就似乎它自己就是扫瞄器。当运转主动的Selenium测试时,该框架将启动一个扫瞄器,并经由过程测试中形貌的步骤实践驱动扫瞄器,用户将利用这类体例与应用程序交互。
因为开辟职员和非开辟职员都可以利用Selenium轻松地编写测试,使得它从浩瀚测试框架使用程序中锋芒毕露。在Selenium中,能够经由过程编程的体例编写测试,大概利用Fit款式的表,而且编写了测试后,可使测试完整主动化。利用一个Ant构件(例如说)运转完全的Selenium套件十分复杂,而且还能够在延续集成(ContinuousIntegration,CI)情况中运转Selenium测试。
这个月,我将先容Selenium,并一一检察使它成为优异Web测试框架的一些特征——特别是在分离利用TestNG、DbUnit和Cargo如许的软件时。
验收测试
因为Selenium可以很好地摹拟用户的举动,它经常用于举行验收测试,即在完成的体系上运转一整套测试。验收测试一般必要运转全部使用程序,以使测试发扬感化。假如您要测试一个Web使用程序,则必要会见使用程序数据库,和一台Web服务器,一个容器和运转使用程序所需的任何设置元素。
利用Selenium举行编程式测试
在Selenium中,您可使用本人喜好的言语大概Fit款式的表经由过程编程来编写测试。从测试的角度来讲,不论利用甚么言语,测试历程和了局都不会有显著的不同。在此,我但愿研讨Selenium的编程办法,由于在分离利用TestNG时,它供应了一些风趣的可行办法能性。
利用具有相似TestNG如许的框架的Selenium举行编程式测试具有如许一个长处,它同意您创立智能fixture,而利用Fit款式的表则很难做到这一点。TestNG特别合适与Selenium分离利用,由于它使您可以完成其他框架没法做到的测试,比方利用依附项举行测试,从头运转失利了的测试,和利用独自文件中界说的参数举行参数化测试。一切这些特征分离在一同,固然可以使它在浩瀚Web使用程序测试框架中锋芒毕露,可是,正如您将看到的,在完整主动化的验收测试中利用这些特征令它加倍出众。
设置第一个测试
Selenium架构实践上由两个逻辑实体构成:您编写的代码和可以简化与测试中的使用程序的交互的Selenium服务器。要乐成地实行测试,必需要启动并运转Selenium服务器实例和要测试的使用程序。(固然,测试了局取决于您编写的使用程序是不是优异!)
侥幸的是,Selenium服务器是一种轻量级程序,能够在实践的测试局限内通过编程启动和中断它。Selenium服务器(利用Selenium对象嵌进)的启动和中断由一个fixture来实行。
要经由过程编程的体例启动Selenium服务器,必需创立一个新的Selenium对象,并告知它要利用哪种兼容的扫瞄器——我鄙人面的示例中利用的是Firefox。您还必需供应运转服务器实例的地位(一般是localhost,但不是必须的),和被测试的使用程序利用的基URL。
在清单1中,我设置了一个当地Selenium实例,利用它在当地安装的Web使用程序上驱动Firefox(http://localhost:8080/gt15/)。正如您从参数中揣度的一样,Selenium是作为被测试的使用程序的代办署理,并响应地增进测试。
清单1.设置SeleniumServer
Selenium driver =
 new DefaultSelenium("localhost", SeleniumServer.getDefaultPort(),
  "*firefox", "http://localhost:8080/gt15/");

driver.start();
//go to web pages and do stuff...
driver.stop();
创立了Selenium实例后,您能够启动并在运转时中断它。这意味着您可以经由过程编程与Selenium服务器交互,并经由过程一个测试程序使它驱动扫瞄器。
<p>
j2EE和asp比较,其实也没什么比的,原因和我上面说那些比较差不了多少,也是稳定性,安全性,J2EE比asp高,速度上比不过asp,asp也是延续着它的拖拽控件的方法,提高速度。
作者: 简单生活    时间: 2015-1-21 07:00
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
作者: 谁可相欹    时间: 2015-1-29 06:21
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
作者: 深爱那片海    时间: 2015-1-30 21:03
Java 编程语言的风格十分接近C、C++语言。
作者: 爱飞    时间: 2015-1-30 22:50
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
作者: 不帅    时间: 2015-2-3 12:37
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
作者: 再见西城    时间: 2015-2-9 00:39
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
作者: 金色的骷髅    时间: 2015-2-26 15:39
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
作者: 乐观    时间: 2015-3-8 15:49
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
作者: 透明    时间: 2015-3-13 02:07
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
作者: 蒙在股里    时间: 2015-3-20 09:22
是一种将安全性(Security)列为第一优先考虑的语言




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2