最近在用 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 插件可以独立作这个事情。