Nicholas @ BlogJava

Coding the future!
posts - 1, comments - 7, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

用 Selenium 进行功能测试

Posted on 2006-11-02 16:34 Nicholas Ding 阅读(3494) 评论(7)  编辑  收藏 所属分类: 测试
最近在用 Selenium 对刚完工的系统做功能测试,因为周围提 Selenium 的人太多了,所以想尝试一下到底用起来怎么样。Tin 的文章 Selenium做功能测试的一点讨论 探讨了 Selenium 使用的一些问题,我再作点补充。

1、关于跨域问题,因为目前完工的系统有这个需求,这个AJAX应用需要启用跨域访问,当然是继承一个共同的父域。这时候就需要一个小小的 trick,手工给页面设置一个父域,如 document.domain = xxx.com.cn,Selenium IDE 没有这个问题是因为他是 FF 的插件,不想 RC 开了一个 iframe 在进行测试。那么如何在开始测试的时候执行一段脚本呢?下面是这个 trick:

waitForCondition("document.domain=xxx.com.cn;true", "3000")

waitForCondition 函数多用于 AJAX 的测试环境,这里通过这个函数达到一个小小的目的。

2、无法向 <input type="file"/> 里面输入路径。Tin 同学说如果这个能用会存在潜在不安全因素,的确没错。但是 Mozilla 系列的浏览器通过插件可以实现这个功能,Selenium IDE 就可以做到,RC 目前无法完成这个功能,所以在测试中间如果涉及文件上传的话就得另想办法了。

3、Selenium RC 的 interactive 模式,这个模式可以让你手工参与命令的执行,你可以在测试过程结束后不要把浏览器关闭,转而通过手工键入命令的形式作一些调试,还是非常有用的。

总结一下,使用 Selenium 的最好方式基本还是先通过 IDE 进行录制,然后转换成代码并且自己在修修改改。我个人认为 IDE 提供的 xpath 功能是定位的最佳方式,但是我还没有找到任何一个 ff 插件可以独立作这个事情。


评论

# re: 用 Selenium 进行功能测试  回复  更多评论   

2006-11-02 17:30 by inlife.cn
要是能给个视频就很爽啊。

# re: 用 Selenium 进行功能测试  回复  更多评论   

2006-11-02 20:15 by netfishx[匿名]
关于xpath,试试XPath Checker。是ff插件

# re: 用 Selenium 进行功能测试  回复  更多评论   

2006-11-02 21:25 by Nicholas Ding
@netfishx[匿名]

我试了,Selenium IDE 产生的 xpath 是以 // 开头的,这点 ff 的其他 xpath 插件都没法做到。

Selenium 用的 xpath.js 是 Google 写的,看过他的代码,也是基于状态机的实现,非常不错。

# re: 用 Selenium 进行功能测试  回复  更多评论   

2006-11-02 23:18 by Tin
呵呵,如果潜心其中,对Selenium API了如指掌的话还是可以不用Selenium IDE进行测试的,哈哈。nicholas很有这个潜力:D

# re: 用 Selenium 进行功能测试  回复  更多评论   

2008-04-25 16:01 by amy
"Selenium做功能测试的一点讨论" 这篇文章怎么删了嘛?访问不了

# re: 用 Selenium 进行功能测试  回复  更多评论   

2008-12-03 14:15 by brunce
selenium.Open("xxxx");
selenium.WaitForPageToLoad("10000"); selenium.WaitForCondition("document.domain='acgchina.8866.org';true", "3000"); //这句运行没有问题
selenium.Click("id=tab-quality-image");
selenium.SelectFrame("id=quality"); //这个frame和当前页面共同的父域名:acgchina.8866.org; 报错:Access is denied

请帮忙看看


# re: 用 Selenium 进行功能测试  回复  更多评论   

2008-12-03 16:34 by brunce
补充一点,这是在IE7里面,如果换到FF3, selenium.WaitForCondition("document.domain='acgchina.8866.org';true", "3000") 就会出异常。

只有注册用户登录后才能发表评论。


网站导航: