Selenium WebDriver 自动测试

随着计算机软件的不断发展,Web应用程序正变得越来越重要,软件质量越来越引起业界的关注,那么这就对Web应用程序的测试提出了更高的要求。为了节省大量的时间和开支,必须使用自动化测试技术代替频繁重复的手工测试,软件自动化测试是使用计算机执行测试行为的软件测试技术,即通过自动化测试工具或者用某种程序设计语言编制的自动化测试程序,控制被测软件中的各种类和对象,模拟手工测试步骤,完成测试工作。
1.Selenium简介
Selenium是Thoughtworks公司专门为Web 应用而开发的自动化测试工具系列,后来与WebDriver 项目进行合并,目前已经发展到Selenium 3.0。从本质上说,它是一套开源的自动化测试框架,可以用于单元测试、回归测试、冒烟测试、集成测试、验收测试等。它支持IE、Firefox、Opera、Chrome 等多种浏览器,可以在Windows、Linux、Mac 和Solaris 等多种操作系统上运行,而且可以支持各类编程语言。
2.Selenium IDE
Selenium IDE 是一个Firefox 插件,能够录制并回放用户在浏览器中的一系列操作,可将所记录的Selenium Commands 生成各种类型的脚本,使得即便对语言不是很了解的测试人员也可以方便地编写测试用例,这在一定程度上降低了编写测试用例的门槛和难度。Selenium IDE 还有一个功能就是脚本转换,它可以把HTML 的脚本转换为C#、Java、Python 等其它语言的脚本。
3.Selenium RC
Selenium RC是Selenium中的最主要的测试工具,可以使用Java、Javascript、Ruby、PHP、Python、Perl或C# 等语言编写脚本,它通过Selenium RC服务器作为代理服务器去访问Web 应用从而达到测试的目的。Selenium RC的使用包括服务器和脚本两部分。服务器是一个已经打包好的JAVA程序,在运行测试脚本时需先启动。
4.Selenium WebDriver
WebDriver采用了与Selenium Remote Control中的代理服务器完全不同的实现机制,在使用它之前不需要启动任何额外的进程或者运行任何安装程序。WebDriver是按照Server /Client 的模式设计的,Server端( Remote Server) 可以是被测试代码启动的任意浏览器,它的职责就是等待Client 发送请求并做出响应;Client 端就是测试代码,其中的各项操作以HTTP 请求的方式发送给被测试浏览器,也就是Remote Server;Server 端接受请求,并执行相应操作,并在Response 中返回执行状态、返回值等信息。WebDriver的具体实现目前主要包括HtmlUnit Driver、Firefox Driver、Internet Explore Driver、Chrome Driver、Edge Driver等,其中HtmlUnit Driver 是目前运行最快的实现形式之一。
5.使用WebDriver进行自动测试

  • 使用Selenium IDE进行录制脚本。
    如图1,点击K形状的按钮,便弹出图2的录制对话框,点击New,然后Record,进行操作,操作完后,点击Stop,便录制完成。
    Selenium WebDriver 自动测试
    图1

Selenium WebDriver 自动测试
图2

  • 转换脚本代码
    Selenium IDE可以将录制的脚本转换成C# 、Java、PHP、Python等语言。在Selenium IDE中执行[Export ]->[Python 2]命令即可轻松将脚本转换成Python语言的脚本。

  • 修改脚本代码
    对之前转换的脚本代码按照需求进行修改,若无修改需求直接进行下一步。

  • 进行测试
    测试程序编制完成后,通过比较测试用例的预期结果和实际运行结果来决定测试结果。执行以上测试脚本。B/S架构软件的测试工作量巨大,Selenium提供了一套低成本高效率的Web测试方案,测试人员灵活运用Selenium WebDriver能更好地保障B/S架构软件产品的质量,提高产品竞争力,同时将给相关企业带来效益上的巨大提升。