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

2015-03-02 12:38卢晨
软件导刊 2015年1期
关键词:自动化测试信息管理系统

卢晨

摘要:基于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对测试步骤中的验证支持度不够。

猜你喜欢
自动化测试信息管理系统
三维可视化信息管理系统在选煤生产中的应用
信息管理系统在工程项目管理的应用
基于三维TGIS的高速公路综合信息管理系统
SaaS模式下的房地产中介公司信息管理系统
高速公路绿色通道信息管理系统开发与实践
浅谈空调控制器自动化测试