最近经常有人提问,你如何理解和看待这个selenium?
针对这一问题,官网上已经给了很明确的答复:"浏览器的自动化操作,你想干嘛就干嘛.....就这么简单!"
Selenium automates browsers. That‘s it! What you do with that power is entirely up to you.
今天我自己也从头缕缕思路
selenium的projects包含如下几个方面:
1.Selenium IDE 、 2.Selenium Remote Control 、 3.Selenium Grid 、4.Selenium WebDriver
1. Selenium IDE作为Firefox上的一个插件,提供录制功能,个人观点,如果能手写代码,就不要用这个东西。
2. Selenium Remote Control是一个客户端/服务器系统,可以在本地或在其他电脑上控制Web浏览器,使用几乎任何编程语言和测试框架。
3. Selenium Grid 可以远程的控制到并在多个服务器上同时运行测试
4. Selenium WebDriver可以在本地或远程计算机上的驱动浏览器
简单的了解了selenium之后,看看到底selenium哪里适合你?
1. 如果你想做一个强健的、基于浏览器的回归测试
2.多环境下分发和扩展可运行的脚本
这时候就可以选择selenium webdriver, 你可以使用多种脚本语言来驱动浏览器,目前,Selenium WebDriver 已经正式弃用Selenium Remote Control,而Selenium Server 内置了网格功能。
Selenium WebDriver的优点:它将Webdriver的API融入了进来,让selenium有进一步的增强。Webdriver是一套面向对象的API。相比selenium1而言,Selenium
WebDriver能够进行更有效的功能测试的覆盖,比如文件上传、下载,弹出窗和对话框的问题,同时也克服了webdriver
Selenium RC的单主机同源策略的限制的问题。
如果你使用Java语言来调用selenium WebDriver,那么下面这些接口一定都应该熟悉一下:
AndroidDriver,ChromeDriver,EventFiringWebDriver,FirefoxDriver,HtmlUnitDriver,InternetExplorerDriver,PhantomJSDriver,RemoteWebDriver,SafariDriver
最常用的就应该是FirefoxDriver,扩展一下就应该是InternetExploreDriver和ChromeDriver和SafairyDriver.
如果你想进行一个扩展EventFiringWebDriver也是必不可少的。
吹吹的说起来
selenium WebDriver不过是一个自动化测试工具罢了,优点就是开源易用,支持多种语言,多种浏览器,对于selenium
WebDriver的使用来说,无非是在了解其基本操作的API之后,将业务逻辑和功能测试执行流程转换为计算机可读的代码,来代替我们进行复杂重复的人工测试。我们之所以使用它,无非是它能够帮助我们完成任务,达到实际的工作目标。这是从使用者或者说一个程序员的角度来讲,只要熟读API,能够准确的分析页面的DOM,遇到不同的问题,都能想出实际的解决方案,我觉得这作为一个自动化工程师已经很优秀了。如果说这时候你非要做一个平台,能够实现各种功能,要有良好的架构,良好的延展性,稳定性,叫什么软件测试架构师在做的事情,然后非要把那些手动测试的人也拉入到自动化的team中来,然后人家不想学你这个自动化,因为没有编码基础,学起来很费劲,这时候你就说要做一个万能的平台,不需要手动测试去学写代码也能进行自动化测试。。。等等一丢丢的理由吧。。。这时候我想提一个问题,为什么自动化测试现在这么火,但是每个公司或者说每一个team都必须要有手动测试人员呢???答案是很唯一的,因为任何人也取缔不了手动测试人员的角色,既然存在了就肯定有存在的道理。平台固然要作,个人对自动化测试平台的理解是,没有万能的平台,只有适合你自己业务需求的平台,你想用这些功能,你添加进去就好了,对于一个系统的生命周期,我不去评论,因为经验还没到那么多,但是我想说,国内外真的有多少系统能用到7年以上呢?一个系统能做到百年不倒?是不是架构师这个职位就不需要招人填补空缺了呢?或者说,只需要这些架构师整天看着程序员们写代码就可以了呢?腾讯算是国内比较大的互联网公司了,拿腾讯QQ来说,这短短10几年,QQ似乎也做了4次较大版本的改动吧,尤其是第四次的重新架构,可谓是大换血吧,平均算下来,万能的平台靠谱吗?
话说回来,无论使用哪种工具,解决问题才是关键,企业不同于学校,不管你使用了什么样的方法,你能把问题解决掉,那么你就是成功的。最最重要的是看人们给自己的定位,我就见过那种就喜欢做手动测试的人,代码框架你放那,让他配置个参数直接跑就OK了,他会觉得你这个好麻烦,搞不懂,还是我自己点点吧。所以这个东西强求不得。对于自动化工程师的职业发展,也同样看自己的规划了,你可以选择做一名精通于某一个工具或者技术的工程师,你也可以选择做一个名气十足的架构师,这完全看个人的爱好,其实再好的架构,上面的代码还是需要工程师来写的,我还是那句话,各有各的价值,没有高低之分。
一点点个人偏见!
忠 信
对朋友忠诚,对朋友信义,是最可珍藏的汗青.以信义交友,人字是大写的,情谊是纯净的;以信义交友,才能感觉到每天的太阳都那么光彩照人,才能体会到生命的真实存在.
selenium简介-----如何理解selenium-WebDriver