wiki:webtest

Version 16 (modified by chenyang, 12 years ago) (diff)

--

1.为什么要测试自动化

  • 可以提高代码质量,缩短测试周期
  • 自动化测试如果由开发人员编写,可以强化开发人员的质量意识,有利于开发人员成长。也是保证开发人员日常开发质量的有力武器
  • 测试人员编写自动化测试,可以提高测试效率,可以将测试人员从大量的重复,枯燥的工作解脱出来。
  • 传统手工测试依赖于人,容易出错,自动化测试与手工测试相比,能避免人为出错。
  • 自动化测试脚本,是非常好的测试文档,与传统的手工测试用例相比,脚本记录了测试点,测试拓扑图,测试设计思路等。

2.选择使用什么样的工具

目前,支持web自动化测试的工具有Watir,Selenium,MaxQ,WebInject之所以选择Selenium,是因为:
1.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样
2.支持多种语言,Java,python,Ruby,Perl,C#等,公司主要使用开发语言为java,python也是使用最广泛的脚本语言之一,推广起来更容易
3.目前selenium使用最广泛,参考资料也更丰富一些。
这三个优势让selenium从众多测试工具中脱颖而出。

  • 1.selenium + java 与 selenium + python 组合的比较

公司使用的开发语言为java,使用java作为自动化测试语言的话,没有任何门槛,学习成本较低,只要掌握selenium java api就可以了

但使用java的话,selenium依赖较多的第三方jar包,需要集成开发环境来管理,运行测试较不方便.在评论系统自动化测试中,我选择了java + selenium, 相关代码请去[7.附录]中下载附件1。

选择python的话,公司熟悉pythoh这门脚本语言的开发人员相对少很多,但python这门脚本语言较易学习,学习成本并不高。选择python,也需要掌握

selenium python api,但只要安装selenium 模块就可以了,运行测试很方便。在家居网论坛7.0自动化测试中,我选择了python + selenium, 相关代码请去[7.附录]中下载附件2.

  • 2.为什么选择selenium webdriver 而不是 selenium RC

selenium 提供了两种实现自动化测试的方法,分别是: selenium webdriver 和 selenium RC
selenium RC由两部分组成:

a,selenium Server: 主要控制浏览器行为,总的来说,selenium server由三部分组成:launcher,http proxy,selenium core

其中selenium core是在selenium server启动浏览器时,嵌入到浏览器中的。selenium core是一堆javascript函数的集合,当selenium rc通过网络与 selenium server通讯时,seleniumserver解析客户端请求为selenese command然后就会调用相应的js函数来控制浏览器操作。

b,selenium libraries:写测试案例时主要控制selenium server库,客户端提供了编程接口,允许你可以通过编程运行selenium命令,

client libraries为每一种编程语言提供了selenium RC服务器通讯的编程接口。一个selenium客户端类库时间上是提供一套函数集合, 你可以通过运行你的测试程序来运行selenium command,类库中的每一个接口都是和selenium command对应的 客户端类库通过发送一个selenium command与selenium server通讯,从而使被测应用程序执行相应的操作。客户端类库收到selenium command命令返回结果, 并把结果返回给应用程序并赋值给相应的便利。

seleniumRC 存在一些缺点,不能处理 本机键盘和鼠标事件,同源策略XSS/HTTP,也不能处理弹出框,对话框(基本身份认证,自签名的证书和文件上传/下载)

selenium webdriver弥补selenium RC的不足,


WebDriver与之前Selenium的JS注入实现不同,直接利用了浏览器native support来操作浏览器。所以对于不同平台,不同的浏览器,必须依赖一个特定的浏览器的native component来实现把WebDriver API的调用转化为浏览器的native invoke。


3.安装firefox23.0.1, python2.7, selenium

  • 1.安装firefox23.0.1

 http://rdtrac.pc.com.cn/2011junit/wiki/webtest/install_ff

  • 2.安装python

下载地址: http://www.python.org/getit/, python最新版本是3.3,由于目前selenium只支持python2.7版本,建议下载2.7,然后安装

  • 3.安装selenium

 http://rdtrac.pc.com.cn/2011junit/wiki/webtest/install_selenium

  • 4.安装selenium ide 插件

 http://rdtrac.pc.com.cn/2011junit/wiki/webtest/install_ide

4.论坛7.0如何实施自动化

  • 1.重构,设计基类,避免重复代码。按模块设计测试类

 http://rdtrac.pc.com.cn/2011junit/wiki/webtest/base_module

  • 3.核心功能自动化
    • 1.发帖功能
    • 2.版块页
      • 一般功能
      • 管理员功能
    • 2.帖子页
      • 一般功能
      • 管理员功能
  • 4.如何在其它浏览器中进行测试
    • 1.ie
    • 2.chrome

  • 5.为每一个bug添加自动化测试


5.selenium实施自动化测试过程中遇到的问题

  • 1.暂时还没有解决如何从本地选择图片通过flash上传到upc
  • 2.web应用页面大改版的时候,测试代码需要重新开发,有较高的维护成本。

6.selenium的缺点

  • 1.selenium还不够健壮稳定,一段测试代码会出现时而能通过,时而不能通过的情况,相信随着以后发布新的版本,应该会有所改善。
  • 2.虽然号称支持firefox,ie,chrome,opera等众多浏览器。但除了firefox,api对其它浏览器支持较差,即使支持firefox最好, 也只支持旧一点的firefox版本,当前最新的是 firefox24,就不支持
  • 3.需要图形环境的支持,因此很难集成到公司的linux服务器上

7.附录

  • 附件1,(selenium + python) 家居网7.0论坛测试脚本
  • 附件2,(selenium + java) 评论系统测试代码

Attachments