自动化测试之selenium

        为什么要进行自动化测试?手工测试局限性?自动化测试主要优点有哪些?这些问题网上都能找到一堆答案,在这里,我只想说的一点就是,你要明白该不该用,什么时候,什么地方使用,再考虑选取哪种自动化测试方案或技术实施。

       回到selenium上来,selenium是开源的Web自动化测试工具。下面我要讲的内容是针对selenium RC展开的。selenium RC支持多种浏览器,可使用多种编程语言进行测试案例编写,灵活、易维护、可扩展。简单说下,编写案例的一个流程:首先使用selenium RC提供的API获取页面元素、操作页面元素,达到“录制与自动回放”的目的,在其中,我们通过自己编写断言代码来达到功能测试点的效果。

      下面就讲下,如何使用selenium RC进行测试案例的编写(使用java编程语言)。

首先,创建了一个底层服务应用,它包含了提供给前面编写测试用例时所需的基础服务,包括数据库访问、日志、异常处理、自动化截图、工具类等。

然后,每个针对一个新项目,创建一个新的应用。该应用包含两大部分内容,一部分是pagefactory元素对象工厂,它是我们对页面元素对象pageobjects的获取、操作pagehandle的封装;另外一部分就是我们的场景模拟以及断言了。这样的设计分离了断言逻辑与selenium RC,编写断言的人不需要关注selenium RC,只需要关注断言逻辑本身。

        实际使用中,比如我们要对一个普通的查询页面编写测试案例,我会按照以下步骤来操作:1.创建pageobjects类并进行调试,保证页面所有所需元素均能正常获取 2.创建pagehandle类,对一些页面动作进行封装,比如:查询、导出 3.创建业务场景类,通过组合pagehandle类中的元操作来模拟手工操作。期间,穿插我们的断言语句。4.运行代码,调试代码。   

        业务场景类建议在testng中编写,testng有利于模块化我们的测试用例代码,以达到高度重用的目的。它可以通过配置文件或者注解来添加测试用例间的依赖关系。进行集成测试时,某一步骤出错,它可以跳过执行,当你重复执行时,就只需要执行上次跳过的用例。 并且它还支持参数化的测试。

       当然,我们还可以扩展我们的代码,比如:自定义报表、增加测试用例管理功能(含测试用例导入、测试计划设置)等功能。通过在实际项目中的使用,不断完善一个自动化测试框架。

猜你喜欢

转载自kelydia.iteye.com/blog/2152415