基于Selenium进行Web应用测试研究

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于Selenium进行Web应用测试研究
作者:卢晨
来源:《软件导刊》2015年第01期
摘要:基于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对测试步骤中的验证支持度不够。

相关文档
最新文档