| Version 7 (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
- 2.安装python
- 3.安装selenium
4.论坛7.0如何实施自动化
- 1.重构,设计基类,避免重复代码。按模块设计测试类
- 2.实施自动化过程中遇到的部分问题解决方法
- 1.广告弹出,挡住页面中的按钮
- 2.如何滚动页面
- 3.如何移动鼠标,并触发onmouse事件
- 4.页面中使用iframe,无法定位到无素的问题
- 5.如何生成测试报告
- 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
-
cmt4_webtest.zip
(11.5 KB) -
added by chenyang 12 years ago.
-
house7.0_webtest.zip
(90.1 KB) -
added by chenyang 12 years ago.
![(please configure the [header_logo] section in trac.ini)](http://www1.pconline.com.cn/hr/2009/global/images/logo.gif)