论文部分内容阅读
Web应用正在快速的发展,它与人们的工作和生活紧密联系着。Web应用的开发人员和测试人员既要在开发过程中提高Web应用的质量,也要在测试过程中验证Web应用的功能。这时在项目中需要建立一个优秀的测试框架,降低测试模块之间的耦合,提高测试效率和覆盖率,同时降低成本和保证软件质量[1]。本文设计并实现一个面向Web应用的分布式并行的测试框架,将手工测试用例转化为自动化测试脚本,在测试机器上运行测试脚本测试软件功能。本文设计的测试框架,首先它是一个面向Web应用的自动化测试框架。测试人员根据框架上的规范和要求,编写适用于自己Web应用项目的测试用例,实现测试用例的自动化,为今后的测试,特别是回归测试节约大量的时间和人力成本。其次,这个框架提供了分布式并行的运行模式。测试人员根据项目需要,选择本地或远程、并行或串行、在不同的浏览器上运行测试用例执行测试。最后,这个框架还提供给测试人员一个完整、友好的HTML的测试结果报表、运行日志以及重要步骤的截图。测试人员通过测试结果、日志和截图,准确的定位到Web应用的缺陷,通过测试结果报表了解到Web应用的质量。这样提高了软件质量的覆盖率和测试人员的工作效率,同时降低了项目的成本。测试脚本是基于Selenium Web Driver编写的,Selenium Web Driver模拟真实的用户的操作和Web应用进行交互。该框架还运用到了页面对象模式和关键字驱动测试。页面对象的基本思想是将Web应用中的每个页面看作一个对象,也就是将一个页面中出现的元素的对象定义在一个对象类中,将一个页面中出现的操作定义在一个操作类中。关键字驱动测试就是根据框架中定义的关键字测试用例的格式,将手工测试用例编写成XML格式的关键字测试脚本。该框架配置文件和常用的变量定义在外部文件中,它提供了对文件的操作类,例如对TXT、Excel、XML、数据库的操作。分布式并行测试是通过Selenium Grid和Test NG来实现的。基于Test NG批量运行测试脚本。Selenium Grid中包含Hub和Node,先启动一个Hub,然后在其他机器上启动Node,让它们和Hub连接上。在Node机器上指定要运行的浏览器的类型和版本,在Hub上指定要运行的测试脚本,和这些脚本运行的浏览器的类型和版本。这样在Hub机器上分发测试脚本到Node上,脚本在Node机器上执行测试,最后收集测试日志和结果。该框架基于SLF4J和Logback定义不同级别的日志类;还基于Report NG提供给测试人员友好的、易读的、HTML格式的测试结果报表。将上述架构部署在Jenkins上,实现持续集成的配置测试方案、运行测试脚本、查看测试结果。最后本文选取了Git Hub的Web应用作为测试对象验证该测试框架的功能。步骤是熟悉该网站的功能;编写部分手工测试用例;基于该测试框架编写测试脚本;搭建分布式测试环境;分布并行的运行测试脚本;查看测试结果;维护测试脚本等。如果运用在实际的企业中,将这个框架的代码部署在SVN或云端,Jenkins中指定的虚拟机采用云服务,这样节省了项目的维护成本和开销。