蔡建华 章晓琳
摘要:软件产业的不断发展使得软件测试在软件的开发和推广使用中的地位越来越大,发展自动化的软件测试工具是软件测试长期发展的必然趋势。本文对自动化的测试工具Selenium进行研究分析。
关键词:Selenium;软件自动化测试;测试工具;测试脚本
中图分类号:TP311.56 文献标识码:A 文章编号:1007-9416(2018)09-0088-01
当今时代背景下软件自身的质量受到人们的广泛关注,软件测试作为保障软件实际质量的重要手段在软件开发的生命周期中具有不可忽视的地位。软件的自动化测试需要测试工具给予必要的辅助,除了那些功能完备的商业测试框架之外,很多开源工具也有广泛的应用基础,Selenium就是很好用的功能性Web自动化测试框架之一。相对于传统的人工测试而言,合理使用自动化测试技术你能节省大量的人力和物力,在测试效率上也有较大提升,在自动化脚本和编程语言的支持下能够缩短软件的测评周期。
1 Selenium技术介绍
Selenium是一整套的开源自动化测试技术的实现平台,Selenium支持IE、Chrome等多种浏览器,在当前普遍推广使用的Windows操作系统上可以稳定的运行,脚本对不同的编程语言均可转换识别[1]。
1.1 Selenium IDE
Selenium IDE是编写和运行测试脚本的集成开发环境。它隶属于火狐浏览器上的一种插件,能够方便录制和回放用户的操作。随后生成测试用例,并将其转换为其他语言的自动化脚本,进而开展对软件的测试。在需要时可以查看记录的回放,帮助相关测试技术人员进行预期的软件测试工作,进而降低软件测试工作对测试人员的技术性要求,以现代化的信息技术作为支持,提高操作的精准性和效率[2]。Selenium IDE 还能够将脚本语言根据需要转化,类似于将HTML的脚本转化为Java和C#等其他语言的脚本,满足后续各项测试工作的实际需要。
1.2 Selenium Server
Selenium Server负责控制浏览器行为,在自动化测试过程中就是要保证Selenium Remote Control的脚本稳定运行。在Selenium Server经优化改善之后,可以将Selenium Grid的各项功能应用到Selenium Server中,使分布式测试软件成为可能。它可以把测试用例同时发送到具有不同浏览器和操作系统的多台服务器上去,通过这种方式能优化软件测试的过程和步骤,进而缩短软件测试阶段需要花费的时间。Selenium Server是兼容应用的基础架构,通过不断的优化改善,对Selenium RC API和WebDriver API提供必要的支持。
1.3 Selenium WebDriver
Selenium2.0后引入WebDriver,为Web应用程序提供编程接口,使兼容性得到增强,并支持更多浏览器。Selenium WebDriver采用的基础架构和传统方式并不相同,它可以让测试工具直接调用浏览器的原生方法,支持更多语言,驱动不同平台,突破了原有架构的局限性。Selenium WebDriver支持例如Java、C#、Ruby、Python等多种编程语言,具有充分的灵活性和多元性,其并不依赖于任何特定测试框架开展工作,因此单元测试或者main方式都能够很好地使用Selenium WebDriver技术,该技术能够广泛的运用到生产检测当中。
2 Selenium WebDriver的工作方式
WebDriver在设计上是按照软件/委托方的模式进行设计并工作的,其中软件端允许测试代码启动浏览器,它主要负责等待委托方发出请求讯号并对讯号及时反映。委托方为测试代码,其各项工作均以HTTP请求方式发送给被测试浏览器,以远程服务器方式等待回应。软件端在接收到请求之后立刻执行规范化的操作,在Response中返回执行的实时状态和执行的返回值等重要信息。软件端的各项功能的合理运行是由于网页内驱动软件(WebDriver)对一些主流浏览器例如IE、Firefox、Chrome等都能够实现正常工作,当下支持大部分主流浏览器,因此委托方能以统一的restful的接口对浏览器进行自动化操作,以编辑好的脚本控制Web,进而完成一系列的工作[2]。
在网页测试上采用了和语言编写测试类的Selenium Remote Control的代理服务器差异较大的实现机制,只需要使用网页内驱动软件按照实际运行即可,不需提前启动进程或安装程序,进而优化了工作步骤,网页内驱动软件主要通过浏览器自身的支持或者浏览器的扩展达到控制浏览器的目的,从而起到弥补传统的Selenium测试软件的弊端,跳出JavaScript沙箱的目的。HtmlUnit Driver使用HtmlUnit时并不会打开真实的浏览器,而是在内存中执行代码,进而运行速度较快,是当前相关技术中运行较快的一种,它也支持Android和iPhone的移动端软件测试,具有广泛的应用推广价值。
3 案例分析
以对智能教学云平台的开发测试来分析应用Selenium技術,对软件测试的编程以及自动化的软件测试步骤进行详细分析[3]。
采用Selenium IDE技术录制脚本。Selenium IDE在火狐浏览器中通过添加组件的方式将其自身安装到工具栏当中,安装后打开测试软件即可在火狐浏览器中单独运行。在GUI的自动化测试工具支持下,可以先录制需要的脚本,之后采取一定的操作完善自动化测试的工作要求。测试该系统的登录功能的时候,在网站中的登录页面,其中在火狐浏览器中打开智能教学系统登录的网页,在Selenium IDE的Base URL中填入指定的网页地址,登录之后在Selenium IDE中新建名为“systemLogin”的测试,点击录制按钮对操作内容实施录制。
在火狐浏览器中已打开的登录页面上按照测试要求填写用户名和密码信息之后登录系统内部,可通过对应网页里的命令快捷键添加断言方便测试。在实际的填写和登录过程中,Selenium IDE将记录相应操作的各个步骤,转换为脚本保存。在录制完成之后,通过查看测试的用例部分可以获得Selenium IDE记录的命令及参数。
脚本录制完成之后还要及时检查录制的科学性和正确性,将错误的代码及时进行修正,之后可以按需转化为Java或C#等语言的程序,为后续的编程提供相应便利。
4 结语
综上所述,Selenium是现代化的一种完整的开源软件测试工具,其本身具备脚本录制功能,并且能够快速的将脚本转换为编程语言,在生成语言的开发环境下测试用例。自动化测试技术的出现提高了软件测试的效率,这能减少行业开发成本,提高生活体验和工作效率,促进软件开发产业的不断健康发展。
参考文献
[1]陈斌仙,陈佳丽,陈阿妹.基于Selenium的自动化测试研究[J].赤峰学院学报(自然版),2016,(9):19-21.
[2]吴莹.基于Selenium的Web自动化测试框架[J].科技传播,2011,(18):223-224.
[3]辛庆.基于Selenium的Web UI自动化测试[D].华南理工大学,2012.