书签 分享 收藏 举报 版权申诉 / 30
文档类型

Selenium分享

  • 上传人:超****个人认证
  • 文档编号:4715339
  • 上传时间:2021-11-25
  • 格式:PPTX
  • 页数:30
  • 大小:929.34KB
  • 《Selenium分享》由会员分享,可在线阅读,更多相关《Selenium分享(30页珍藏版)》请在万象文库上搜索。

    1、S SELENIUMELENIUM分享分享 大纲 selenium介绍 selenium-IDE介绍 selenium-RC介绍 selenium API常用方法介绍 脚本编写方法 遇到的一些问题 脚本维护 如何学习selenium SELENIUM是什么 Selenium是ThroughtWorks公司一个强大的开源Web功能测试工具系列,本系列现在主要包括以下4款: (1)Selenium Core:支持DHTML的测试案例(效果类似数据驱动测试),它是Selenium IDE和Selenium RC的引擎。 (2)Selenium IDE:FireFox的一个插件,支持脚本录制。 (3)Selenium RC:Selenium。

    2、 Remote Control。 (4)Selenium Grid:允许同时并行地、在不同的环境上运行多个测试任务,极大地加快Web应用的功能测试。 SELENIUM定义 Selenium发明者对它的定义如下: Selenium是一系列基于Web的自动化测试工具。Selenium提供了一系列测试函数用于支持Web自动化测试,这些函数非常灵活。它们能够通过多种方式定位UI元素,并将预期结果与系统实际表现相比较。 在本测试脚本中所使用的部分有: (1)Selenium IDE (2)Selenium RC 返回 SELENIUM-IDE介绍 Selenium-IDE是开发Selenium测试案例的集成开发环境。它像Firefox插件一样。

    3、工作,支持开发/运行单个测试案例或者测试案例集。 Selenium-IDE具备录制/回放功能,可以用脚本记录一系列用户操作,并在需要的时候进行回放。 通过集成在Firefox浏览器中的右键文字菜单,用户可以对指定页面UI元素选择断言或者验证操作。 SELENIUM-IDE优点 通过Selenium-IDE可以对测试案例进行编辑,以便精确地控制测试案例的执行过程。 具有代码转换功能,可以把Selenium语言测试案例转化为C#、Java等语言的测试案例 建议使用SeleniumIDE+FireBug进行测试案例的编写,然后转为其他语言的测试案例后,再调用SeleniumRC运行测试案例。 返回 SELENIUM-RC介绍 Seleni。

    4、um-RC允许自动化测试工程师使用多种编程语言,以便在测试逻辑开发过程中引入更多的灵活性和扩展性。 Selenium-RC为其支持的编程语言:Java、C#、Ruby等,提供了不同版本的API(Application Programming Interface)和开发库。 SELENIUM-RC 工作原理 RC组件 (1)Selenium Server (2)客户端库文件 SELENIUM SERVER 负责启动和关闭浏览器,解释和运行从测试程序传来的Selenium命令,就像一个HTTP代理一样。截取和验证浏览器与待测应用之间的HTTP消息。 Selenium Server主要包括3个部分: Launcher,Http Rroxy。

    5、,Selenium Core。 其中Selenium Core是被Selenium Server嵌入到浏览器页面中的。其实Selenium Core就是一堆JS函数的集合,就是通过这些JS函数,我们才可以实现程序对浏览器的操作。 客户端库文件 提供编程语言和Selenium-RC Server之间的接口,允许你使用自己编写的程序来运行Selenium命令。 客户端库文件获取一条命令,并将它传递给Selenium Server,以便执行一个指定操作或者给予待测应用进行测试。客户端库文件收到命令的执行结果,再将其传给你的测试程序。程序接受到结果后,将它保存在变量中,接着报告成功还是失败。 SELENIUM-RC 架构图 客户端库文件将命。

    6、令传给Server。接着Server使用Selenium Core的JavaScript命令,将Selenium命令传递给浏览器。浏览器会使用自带的JavaScript翻译器来执行Selenium命令。 SELENIUM-RC架构-同源规则 同源规则是为了确保一个站点的内容不会被另一个站点的脚本所访问,即专注于确保浏览器加载的任何代码,都只能在同一站点内部进行操作,它不能在其他站点上执行功能。 Selenium-RC并没有被同源规则所限制,它使用Selenium Server作为代理来回避这一问题,“哄骗”浏览器,让其以为自己在Server提供的单一站点上工作。 SELENIUM-RC架构-代理注入 Selenium用来规避同源规则。

    7、的第一种方法是代理注入。在这种模式下,Selenium Server像客户端配置的 HTTP代理一样工作,它位于浏览器和待测系统之间。接着其伪造待测系统的URL。 代理作为第三者,在双方间传递信息。它表现得像一个“Web服务器”,向浏览器传递待测系统。作为代理Selenium Server,它拥有篡改待测系统真实URL的能力。 浏览器启动时,使用配置的profile,其中已经设置localhost:4444作为HTTP代理,这就是为什么任何来自浏览器的HTTP请求都会经过Selenium Server,而且HTTP响应也来自Selenium Server而非真实的服务器。 SELENIUM-RC架构 返回 SELENIUM API常。

    8、用方法介绍 在这里需要先介绍一下Element Locators(元素定位器),在测试脚本中主要使用的是下面4中: (1)Id=id id locator指定html中的唯一id的元素 (2)Name=name name locator指定html中相同name的元素中的 第一个元素 (3)Xpath=xpathExpression xpath locator用xpath表达式来定位html中的 元素,必须注意要以“/”开头 (4)Link=textPattern link locator用link来选择html中的连接 SELENIUM API常用方法介绍 脚本编写过程中常用的Selenium命令: (1)Click(elemen。

    9、tLocator)点击连接,按钮、复选和单选框 (2)Open(url)在浏览器中打开url (3)Type(inputLocator,value)往指定input中输入值 (4)Close()模拟点击浏览器关闭按钮 (5)SelectWindow(windowId)选择一个弹出窗体,选中那个窗体的时候,所有的命令都会转移到那窗口中执行 (6)GetText() (7)getAttribute() (8)waitForPageToLoad(timeout) 脚本编写方法 明确需求:要实现什么样的功能,要得到怎样的结果 其次要分析该如何实现这些功能,需要用到什么样的方法或技巧 配置环境、编写脚本 测试并修改完善 返回 遇到的一些问题S。

    10、ELENIUM对象 如何在整个脚本运行中只保留一个session: 因为整个测试都不只包含一个脚本,如果说每次都重新打开浏览器运行,这样占用大量时间,不利于程序的整体运行。 因此采用的方法就是一个项目在整个测试过程中就只保留一个session。在初始化服务器相关配置并获取Selenium对象时进行判断,如果是第一次则初始化一个Selenium对象,否则就使用现有的Selenium对象。这样就能保证在整个脚本运行的过程中只保留一个session,也就是只保留一个Selenium对象。 遇到的一些问题-弹出窗口 selenium怎么对付弹出窗口,像webdriver话就是直接可以用selectallwindowsID-selectcur。

    11、rentID就可得到弹出的窗口,在selenium里面的话,可以用selectWindowID来做。 具体用到了两个方法: (1)sel.getAllWindowTitles() (2)sel.selectWindow() 其实就是通过getallWindowsTitles得到这次操作所有打开窗口的title,返回一个list吧,然后list0是原来的,list1就是新弹出的了 通过sel.selectWindow(sel.getAllWindowTitles()1)就可以得到了新弹出的窗口,最后操作就可以了。 遇到的一些问题-弹出窗口 在selenium中虽然有selectWindow(String windowID) 方法,但是。

    12、对于一些窗口很难取得其window ID的话,如果开发人员没有在html代码中提供ID ,或者getAllWindowIds()得不到弹出窗口的ID的时候,那么这个方法基本等于没用。 如对于一段html代码: 无法采用上述方法,那么我们可以这样处理: 先使用 openWindow(String url,String WindowID)来打开一个弹出窗口,然后我们再选择它。 String url = selenium.getAttribute(/a/href); selenium.openWindow(url, twoPage); selenium.waitForPopUp(twoPage, 60000); selenium.sele。

    13、ctWindow(twoPage); Thread.sleep(5000); 其它不可控错误 另外经常出现的问题包括: (1)超时 (2)由各种不稳定因素造成的标签找不到的问题。 处理的方法主要是将超时时间设的尽量长点,同时采用重新执行机制,当遇到错误导致程序运行失败,进行二次执行,尽量预防由于未知原因造成的错误。 SELENIUM小结 我们通过调用Selenium API中的方法来对浏览器进行操作,Selenium为我们提供可直接调用的一些方法,然而selenium并不支持一些逻辑操作。 因此在实际自动化测试过程中,我们要更好的使用这些方法,就需要借助我们所依赖的编程语言和特定语言的Selenium-RC客户端库文件语言。 例如:。

    14、在这里我们使用的是java,因此,我们需要灵活使用java的编程思想以及编程技巧,来将selenium的方法融合进来,使它能够发挥更优的作用,更好的服务于我们的自动化脚本编写。 返回 脚本维护 在实际脚本使用过程中,我们要随时对测试脚本进行维护,维护的重要性主要体现在以下三个方面: 1、由于selenium大量使用name,id,xpath等页面元素。无论是功能修改、UI重构还是交互性改进都会影响到这些元素,这使得selenium测试变得非常脆弱。 2、过于细节的页面操作不容易体现出行为的意图,一段时间之后就很难真正把握测试原有的目的,这也使得Selenium测试变得难于维护。 3、对具体数据取值的存在依赖,当个别数据不再合法的时候。

    15、,测试就会失败,但这样的失败并不能标识功能的缺失,这也使得Selenium测试变得脆弱且难以维护。 脚本维护 举例来说,对于某一网站脚本的维护: 首先我们需要随时关注该站点,只要页面元素发生改变,就需要修改相应的测试脚本; 另外,我们需要更深入了解该站点所需测试的功能,以及这些功能背后所隐藏的逻辑操作思想,只有熟悉了这些,才能更好的把握我们所要测试的目的,才不至于在以后的维护过程中偏离主题。 返回 如何学习SELENIUM 如果说一开始没有接触过selenium,没有编程或脚本语言的经验,没关系,通过下面的方法可以使你以比较快的速度学会使用Selenium: (1)了解Selenium的基本思想,熟悉Selenium API所包含的。

    16、基本方法。 (2)在对这些Selenium命令有了一些模糊的认识后,我们就可以先从Selenium IDE开始,可以通过使用Selenium IDE去熟悉Selenium脚本语法。借助Selenium IDE的代码转换功能,可以将我们录制的脚本转化为我们所熟悉的语言,更好的了解Selenium的使用方法。 (3)对这些Selenium命令有了更直观的认识后,我们可以在搭建好的平台上(例如:IDEA),将上面我们所录制的脚本内容直接拷贝进来,并进行简单修改,就可以运行脚本,查看脚本运行效果。 如何学习SELENIUM (4)开始学习的时候,不要关注脚本录制内容的多少,我们是要熟悉这个过程-Selenium IDE与Selenium R。

    17、C相结合交互使用的过程。 (5)可以通过学习现有的脚本,学习并熟悉脚本中的常用方法及编程思路,然后直接将适用于自己的方法拿来使用。(即复制粘贴) (6)当然,之后更复杂的功能的实现,就需要借助我们所依赖的语言,这些就需要循序渐进的去学习。 返回 Selenium命令的学习可以参考Selenium私房菜(非常详细) http:/ XPATH介绍 Xpath是W3C定义的语言和正式的W3C推荐的语言。 Xpath是XML的查询语言,和SQL的角色很类似 XML是树状结构,类似档案系统内数据夹的结构,Xpath也类似档案系统的路径命名方式。不过Xpath是一种模式(Pattern),可以选出XML档案中,路径符合某个模式的所有节点出来。 如果Xpath的开头是一个斜线(/)代表这是绝对路径。如果开头是两个斜线(/)表示文件中所有符合模式的元素都会被选出来,即使是处于书中不同的层级也会被选出来。 XPATH实例介绍 定位节点: /catalog/cd/price /cd 选择未知元素: /catalog/cd/*选出所有子元素 /catalog/*/price选出所有catalog的子元素中, 包含有price作为子元素的元素 选择分支:-Xpath定义中没有第0元素这种东西 /catalog/cd1 /catalog/cdlast() /catalog/cdprice=10.90 选择属性:属性都是以开头 /cdcountry=UK 返回 。

    1. 1、本文档共30页,下载后即可获取全部内容。
    2. 2、本文档由用户提供并上传,付费之前,请先通过免费阅读内容等途径辨别内容,收益归属内容提供方;如有侵权或不适当内容,请进行举报或申诉。
    3. 3、本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
    4. 4、万象文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
    提示  万象文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:Selenium分享
    链接地址:https://www.2wx.com/view-4715339.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 最近更新 - 网站客服 - 联系我们

    网站客服QQ:173720847

    copyright@ 2019-2023 万象文库(www.2wx.com)网站版权所有

    备案号:鄂ICP备19026039号-1

    本网站采用C2C交易模式,用户上传的文档直接被用户下载,网站仅作为一个中间服务平台,网站所有文档下载所得收入归上传人(包括作者)所有。万象文库网只提供储存空间,不会对上传内容本身作任何修改或编辑。如文件中包含任何侵犯您的版权或隐私,请立即通知我们,我们将立即予以删除!