Selenium是现在开源框架里一个常用的UI自动化测试框架。如果把QTP(Mercury)比作有毒的汞,那么,Selenium就可以看做是硒了,是专门对付这种“有毒”工具的克星!
为什么我们没有使用QTP,这与它的商业收费性质有巨大的关系。在05到07年之间,惠普收购了Micro QTP,成为了商业版本上收费的一个巨头。
Selenium都有什么特定呢,总结如下:
- 开源,免费
- 多浏览器支持:Firefox、Chrome、IE
- 多平台支持:Linux、Windows、Mac
- 多语言支持:Java、Python、Ruby、Php、C#
- 对Web页面支持友好
- API简单,调用灵活,开发语言驱动
- 支持分布式测试用例的执行
Selenium自动化测试框架,对Web(Html)页面支持比较良好。在Web自动化测试方面,相比于基于对象识别的UFT,它则是一个基于元素的识别框架。虽然功能、使用上差不多,但个人觉得Selenium更加友好:简单的API调用,多开发语言的支持,甚至,支持分布式自动化测试用例的执行!
Selenium的版本发展
Selenium已经经过了三个版本的迭代。分别是1.0版本、2.0版本,以及现在的3.0版本。
1.0 版本由三大组件构成:IDE、Grid、以及Selenium RC。来看看Selenium 1.0家谱:
IDE 就是常用的可视化集成开发工具,用于录制,回放自动化测试用例。
Grid 就是分布式,是Selenium支持分布式的关键模块。能够对不同的软件,采取分布式方式运行,在同一时间段运行不同的脚本,对BS结构服务器进行测试,以及支持多台机器上并行运行。
RC 就是它的核心库,全称Remote Control。这里边有各种客户端库,Server。这里有各种协议,应用开发人员可以使用自己喜欢编程语言,针对不同的浏览器进行操作。
Selenium 主流版本
Selenium 2.0,也是现在的主流版本,在原有的版本上进行了功能丰富,添加了WebDriver。
可以说,Selenium 1.0 + WebDriver就是我们的2.0版本了,也就是WebDriver代替了1.0中的Selenium RC。其实早期Selenium RC的灵活性并不太好,之后又研发了web driver,最终合到了一起,替代了Selenium RC。
2.0的版本已经比较成熟、稳定,3.0的版更多的是进行了功能的优化,与扩展:
- 最大的变化就在于去掉了Selenium RC
- 只支持Java8 及以上
- 可以支持FireFox47及以上版本(需要单独下载geckodriver,并配置path)
从版本迭代来看,3.0和2.0的差别、用法并不太大,掌握2.0后,切到3.0也是较容易的。
基于Selenium的自动化测试在实践中应用较多,知识点儿也很多,那么,如何学习Selenium呢?现在网上有非常多的课程,但并不是所有的都是大家需要的。个人建议,大家把重点放在Web Driver上,选择一门开发语言,例如Python等,在实践中不断掌握基于Selenium的自动化测试!