标题 | 基于Selenium进行Web应用测试研究 |
范文 | 卢晨 摘要:基于Selenium自动化测试技术对出差管理系统进行了自动化测试设计,介绍了Selenium在Web应用程序中进行自动化测试的过程。通过案例说明Selenium对Web应用程序进行自动化测试的优势。 关键词:Selenium;自动化测试;信息管理系统 DOIDOI:10.11907/rjdk.143288 中图分类号:TP391 文献标识码:A 文章编号文章编号:16727800(2015)001015402 0 引言 随着软件应用复杂度的增加,保证软件质量变得越来越难,需要测试人员寻找很多测试方法和技术,以解决产品质量问题。自动化测试不仅可以大大减少测试人员的工作量,降低工作难度,还可以避免不必要的人为疏忽与问题,加快测试速度,保证产品质量和进度,提高效益。 目前自动化测试研究如火如荼,涌现了很多自动化测试[1]工具,例如占据主流应用HP的QTP。QTP对系统环境要求很高,运行时会占用很大的内存空间,且价格昂贵。另外,软件开发需求千变万化,自动化测试工具要不断适应这些变化。 1 Selenium概述 Selenium是一个用于Web应用程序测试的工具,它提供了一系列测试函数,用于支持Web自动化测试[2]。这些函数非常灵活,能够通过多种方式定位界面元素,并将结果与系统实际结果进行比较。作为一款强大的测试工具,Selenium具有以下几个特性:①可以对多种浏览器进行测试,如IE、Firefox、Safari、Chrome、Android手机浏览器等;②支持多种语言,如Java、C#、Python、Ruby、PHP等;③跨平台,如Windows、Lunix、iOS、Android等;④开源免费。 Selenium提供很多工具组供测试工程师选用:①Selenium IDE:用于构建脚本的初级工具;②Selenium 1(Selenium RC):Selenium最主要的测试工具之一,支持多语言和多浏览器;③ Selenium 2:集成了WebDriver,WebDriver通过原生浏览器支持或者浏览器扩展直接控制浏览器。测试者可以根据不同的平台、不同浏览器选择不同的WebDriver去执行测试。WebDriver可以驱动本地或远程机器上的浏览器。对比Selenium 1 时代的Selenium RC,WebDriver优势明显[3];④ Selenium Grid:一般用于分布式测试和集群测试,Selenium 能同时并行地、在不同环境上运行多个测试任务,极大地加快了Web应用的功能测试。 本文采用Selenium2测试工具,对某公司出差管理系统的核心功能进行了一整套Selenium自动化测试,主要步骤是:①需求分析;②测试用例设计;③根据测试用例设计测试脚本,并执行测试;④分析测试结果。 2 Selenium测试分析 以某公司外派到日本的员工出差信息管理系统为例,其功能模块如图1所示。 图1 出差管理系统功能结构 系统的核心功能主要是对各种信息进行增加、删除、修改、查找。针对这些核心功能,需要分别设计测试用例并编写测试脚本,通过脚本运行,可以有效完成各功能的测试。 3 Selenium测试设计 根据系统功能结构图和系统需求,对整个系统进行模块划分。以个人信息模块为例,其主要功能有新增个人信息、修改个人信息、按不同条件查找个人信息和删除个人信息等4大功能,功能界面如图2所示。 图2 功能界面 利用黑盒测试用例设计方法设计测试,见表1。 4 脚本编写与运行结果 根据设计的测试用例TC001编写测试脚本,代码如下: (1) 通过driver打开网站链接: WebDriver driver = new FirefoxDriver(); driver.get("网站地址"); (2) 获取“新增员工”按钮并点击: WebElement element = driver.findElement (By.id("按钮id")) ; element.click(); (3) 获取界面组件并输入内容: WebElement element = driver.findElement(By.id("组件id")); element.sendKeys(“输入内容”); (4) 点击提交按钮: WebElement element = driver.findElement (By.id("提交按钮id")) ; element.click(); (5) 等待提交后的系统反馈: try { Thread.sleep(3000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } (6) 获取弹出对话框信息: Alert alert = driver.switchTo().alert(); String text = alert.getText(); System.out.println("alert:"+text); If(text ==预期结果) System.out.println(“Pass”); alert.accept(); 5 语结 本文介绍了Selenium,并以出差管理系统的新增操作为例,对系统进行了自动化用例设计和脚本编写。使用过程中,Selenium的优势非常明显:因为使用的是面向对象的程序设计语言,编写代码简便、易懂,相比较用QTP录制脚本,Selenium脚本更易于维护,整个测试框架可以用面向对象思想进行设计,框架复用性高。不足之处是Selenium对测试步骤中的验证支持度不够。 |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。