您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 综合/其它 > Selenium新手入门教程
前言在这段期间,我一直在找关于服务器的端测试方案,自动化工具等等,无意间我发现了Selenium这个工具。在试用一段时间后,觉得Selenium确实是一个很不错的Web测试工具。在和强大的QTP比较后,我最后还是选择了使用Selenium,主要的原因是工具使用灵活,简单,并且完全满足我的要求。而QTP虽然强大,但它的使用让我觉得非常繁琐,而调试功能也让我郁闷......鉴于种种这样的原因,我最后选择了Selenium。本系列文章主要是总结我在前一段时间了解到的关于Selenium的一些知识。QTPQTPQTPQTPVSVSVSVSSeleniumSeleniumSeleniumSelenium下面我想先稍微讨论一下这两个工具,我主要从功能和文档资料这两方面对比QTP和Selenium。功能从Web测试的角度,两个工具都能满足正常的测试需求,这个你无需怀疑!但QTP更强大些,因为:1.它是商业软件,只要你有钱,什么都可以有。2.它支持对操作Windows窗口,当你要从Web上下载一些东西,自然此时就会弹出一个“下载框”,由于那个框框是Windows窗口,Selenium是处理不了的,所以必须通过第三方的脚本处理。文档和参考资料资料如果你这方面的新手,当你用QTP/Selenium时,相信书和文档是你第一样会找的东西。在这样面,QTP使用在中国使用还是蛮广泛的,资料和书籍也相当丰富,而Selenium的资料就相对比较少一些,找资料最好的地方就是官方论坛。为什么用SeleniumSeleniumSeleniumSelenium既然上面两项都是QTP优胜一些,为什么我们还是用Selenium,因为:1.Selenium使用灵活,简单,写出的测试案例非常简洁,优美,也易于维护。2.SeleniumRC支持用多种语言编写测试案例,你可以用VS2008写测试案例了:。3.如果你有一个测试平台,你会发现把QTP整合到平台是很麻烦的事情。4.......如果以上Selenium的优点不能打动你,又或者你是测试新手,对测试经验不多,对编程也不熟悉,那么你还是继续使用QTP吧,不过相信有一天,你会开始尝试Selenium的。SeleniumSeleniumSeleniumSelenium名字的来源在这里,我还想说一下关于Selenium名字的来源,很有意思的::Selenium的中文名为“硒”,是一种化学元素的名字,它对汞(Mercury)有天然的解毒作用,实验表明汞暴露水平越高,硒对汞毒性的拮抗作用越明显,所以说硒是汞的克星。大家应该知道Mercury测试工具系列吧(QTP,QC,LR,WR...),他们功能强大,但却价格不菲,大家对此又爱又恨!故thoughtworks特意把他们的Web开源测试工具命名为Selenium,以此帮助大家脱离汞毒。目录1.1.1.1.SeleniumSeleniumSeleniumSelenium私房菜系列1111--------SeleniumSeleniumSeleniumSelenium简介2.2.2.2.SeleniumSeleniumSeleniumSelenium私房菜系列2222--------XPathXPathXPathXPath的使用【ZZZZZZZZ】3.3.3.3.SeleniumSeleniumSeleniumSelenium私房菜系列3333--------SeleniumSeleniumSeleniumSeleniumAPIAPIAPIAPI参考手册【ZZZZZZZZ】4.4.4.4.SeleniumSeleniumSeleniumSelenium私房菜系列4444--------SeleniumSeleniumSeleniumSeleniumIDEIDEIDEIDE的使用5.5.5.5.SeleniumSeleniumSeleniumSelenium私房菜系列5555--------第一个SeleniumSeleniumSeleniumSeleniumRCRCRCRC测试案例6.6.6.6.SeleniumSeleniumSeleniumSelenium私房菜系列6666--------深入了解SeleniumSeleniumSeleniumSeleniumRCRCRCRC工作原理(1)(1)(1)(1)7.7.7.7.SeleniumSeleniumSeleniumSelenium私房菜系列7777--------深入了解SeleniumSeleniumSeleniumSeleniumRCRCRCRC工作原理(2)(2)(2)(2)8.8.8.8.SeleniumSeleniumSeleniumSelenium私房菜系列8888--------玩转SeleniumSeleniumSeleniumSeleniumServerServerServerServer9.9.9.9.SeleniumSeleniumSeleniumSelenium私房菜系列9999--------SeleniumSeleniumSeleniumSeleniumRCRCRCRC服务器命令行参数列表【ZZZZZZZZ】参考资料[1].[1].[1].[1].://seleniumhq.org/://seleniumhq.org/:Selenium官网。[2].[2].[2].[2].://openqa.org/://openqa.org/:Selenium官方论坛,有很多参考资料:[3].[3].[3].[3].SeleniumSeleniumSeleniumSelenium中文:记录大量Selenium中文资料的地方。作者:hydddhydddhydddhyddd日期:2009-09-02009-09-02009-09-02009-09-02222SeleniumSeleniumSeleniumSelenium私房菜系列1111--------SeleniumSeleniumSeleniumSelenium简介一.Selenium.Selenium.Selenium.Selenium是什么?Selenium是ThroughtWorks公司一个强大的开源Web功能测试工具系列,本系列现在主要包括以下4款:1.SeleniumCore:支持DHTML的测试案例(效果类似数据驱动测试),它是SeleniumIDE和SeleniumRC的引擎。2.SeleniumIDE:FireFox的一个插件,支持脚本录制。3.SeleniumRC:SeleniumRemoteControl。后续的系列文章我会主要针对SeleniumRC展开介绍。4.SeleniumGrid:允许同时并行地、在不同的环境上运行多个测试任务,极大地加快Web应用的功能测试。二....选择合适的SeleniumSeleniumSeleniumSelenium工具既然Selenium工具有4款这么多,那到底如何选择呢??我从Selenium官网这里找了一个表:这里没有介绍SeleniumGrid,但介绍了另外一个SeleniumCoreHTA,SeleniumCoreHTA其实是SeleniumCore的额外模式,你只要SeleniumCore配置稍加修改,即为HTA模式,SeleniumCoreHTA可以在IE最高安全等级(特权)下工作,这意味着它仅能在IE下工作,由于限制较大,下面将排除对SeleniumCoreHTA的讨论。1.1.1.1.浏览器支持:(1).SeleniumIDE仅可以在Firefox中工作。(2).SeleniumRemoteControl支持很多浏览器,包括最常用的:firefox,ie,safari等N款浏览器。(3).SeleniumCore支持的浏览器是最广的,这点和它的实现有关。作为IDE和RC的引擎,SeleniumCore几乎可以在任何浏览器中工作。2.2.2.2.需要远程安装:是否需要在被测网站的服务端安装?SeleniumIDESeleniumRemoteControlSeleniumCoreSeleniumCoreHTA浏览器支持仅Firefox很多所有仅IE需要远程安装否否是否支持HTTPS/SSL是是*是是支持跨域是是*否是需要Java否是否否将测试结果保存到磁盘是是否是多语言支持仅Selenese很多仅Selenese仅Selenese这里只有SeleniumCore需要,这是出于同源策略的原因。这也是SeleniumCore一个很大的限制,试问,如果你要测试Google.com,还得在google的服务器上装一个SeleniumCore,那是多搞笑的一件事。而SeleniumIDE和SeleniumCoreHTA不会被同源策略所限制,因为他们对浏览器扩展了。SeleniumRC提供一个代码服务器来保证SeleniumJS文件看似来自相同的远程服务器,从而符合同源策略;代理服务器欺骗浏览器,让它认为这里的确有像这样的目录。3.3.3.3.支持HTTPS/SSLHTTPS/SSLHTTPS/SSLHTTPS/SSL:这里不说了,都支持。SeleniumRC在“是”后面加*因为它是在最近版本支持的,仅此而已。4.4.4.4.需要JavaJavaJavaJava:准确的说是需要JRE这项只有SeleniumRC需要,上面2中所说的“代理服务器”是一个Java程序,需在跑测试案例前启动。5.5.5.5.将测试结果保存到磁盘只有SeleniumCore不能将任何测试结果写到磁盘上(因为它是用javascript写的,它不允许向磁盘写数据),其解决方案是当然你可以将测试结果发送到另外一台服务器保存。这也是SeleniumCore的一大限制。6.6.6.6.多语言支持(1).SeleniumIDE仅支持Selenium语言。(2).SeleniumRC支持很多语言,如:C#,Java,Python,Ruby等。(3).SeleniumCore也是仅支持Selenium语言。Selenium语言的测试案例如下:它的优点是:简单,用(Command,Target,Value)三种元素组成一个行为,并且有辅助录制脚本工具(如:FirefoxIDE,SeleniumCore等),不懂程序的测试人员都可以轻松地编写测试案例。它的缺点是:Selenese有一些严格的限制:它没有条件(没有if表达式),并且它没有循环(没有For表达式)。这会使编写复杂的测试变得困难甚至不可能。OK,现在我们来研究下到底该使用哪款工具开展测试!(1).SeleniumIDE支持并且只支持Firefox浏览器,支持的浏览器太少,而依附于Firefox也不便于日后开展自动化测试,但是,它的录制快捷好用!并且有代码转换功能,可以把Selenium语言测试案例转为C#,Java等语言的测试案例,我建议使用SeleniumIDE+FireBug进行测试案例的编写,然后转为其他语言的测试案例后,再调用SeleniumRC运行测试案例。(2).SeleniumCore,它的优点是编写测试案例简单,并且支持绝大多数的浏览器,但缺点也同样明显,SeleniumCore需要远程安装,Selenese语言也限制了复杂案例的可能性,并且没有良好的外部扩展,这是些都会是致命的问题。因为一个款测试工具不可能100%满足你测试需求的,当它不能满足你测试需求时候,它必须有一个扩展机制可以让你可以使用其他的方式满足你需求,否则这款测试软件即使功能强大,也请三思慎用,否则当投入大量资源后才发现某些问题不能解决,那时候已经晚了,这是我的切身体会。(3).SeleniumRC是我推荐使用的工具,它支持很多浏览器,可
本文标题:Selenium新手入门教程
链接地址:https://www.777doc.com/doc-5535820 .html