zoukankan      html  css  js  c++  java
  • Selenium学习(一)

    Selenium—Web界面测试工具

    1. Selenium可以使用录制工具录制脚本,测试页面。

    2. Selenium可以生成类html代码,java代码,ruby代码等。

    3. Selenium录制工具根据id属性定位html元素

    需要的软件

    1.安装Firefox,Selenium IDE插件,Firebug插件。

    2.解压Selenium的selenium-remote-control包,得到selenium-server.jar。

    3.获取selenium-java-client-driver.jar,用于java语言的Selenium开发。

    Selenium IDE的使用

    1.FireFox--工具--selinum IDE

    2.点击录制按钮,开始记录一个测试。可以使用浏览器进行操作。

    3.点击Selenium IDE的停止录制按钮,可以看到html,Java,Ruby等形式的脚本语言。

    SeleniumIDE除了记录 Html请求和AJAX调用的操作。其他不涉及通讯的操作,也会被录制。其他的自动脚本录制工具,如WebLoad,LoadRunner都是只记录http请求,不能真正记录对页面的操作。

    4.脚本可以格式化为多种语言。

    5.selinum使用xpath和css等选择html元素。

    Selenium工作原理

          Selenium不同于一般的测试工具。一般的脚本测试工具录制脚本,实际上都是通过拦截浏览器收发的http请求来实现的。事实上并没有办法录制用户对html页面的操作。

          当然,对那些执行压力测试的工具来说,这类模拟已经足够。

          Selenium的脚本录制工具是通过监听用户对html页面的操作来录制脚本的。Selenium是真正能够监听用户对html页面的操作的录制工具。Selenium完全了解用户操作的html页面。

          Selenium可以生成7种语言的脚本:html,java,C#,ruby,python,perl,php。

          你可以直接在SeleniumIDE中执行html格式的脚本。你机器上的FireFox将会执行Selenium脚本。

          Selenium生成的Html格式的脚本,是Selenium使用Html的语言元素自己开发的一套脚本语言。

          如果你要执行其他语言格式的Selenium脚本,那么,你需要使用Selenium服务器。6种语言的使用方法都是一样的。

    Selenium执行内部原理

      SeleniumServer通过网络与Selenium客户端通讯,接收Selenium测试指令。

      SeleniumServer通过向浏览器发出JavaScript调用实现对Html页面的全面追踪,并通过网络把执行结果返回给Selenium客户端。

      Selenium客户端一般使用单元测试技术实现,通过判断返回的结果与预期是否一致来决定程序是否运行正确。

      Selenium是通过javascript来实现对Html页面的操作的。它提供了丰富的指定Html页面元素和操作页面元素的方法。

      Selenium打开浏览器时,把自己的JavaScript文件嵌入网页中。然后Selenium的网页通过frame嵌入目标网页。这样,就可以使用Selenium的JavaScript对象来控制目标网页。

      Selenium的JavaScript对象中,最重要的就是Selenium对象。它的作用是代表Java中的Selenium接口执行一系列的命令,让浏览器执行。

    Selenium RC所支持的浏览器

     *iexplore
     *konqueror
     *firefox
     *mock
     *pifirefox
     *piiexplore
     *chrome
     *safari
     *opera
     *iehta
     *custom

    Selenium Remote Control: 服务器命令行参数

    使用示例: java -jar selenium-server.jar [-interactive] [options]
    -port <nnnn>: selenium服务器使用的端口号(默认 4444)
    -timeout <nnnn>: 我们放弃前(超时)所等待的秒数
    -interactive: 进入交互模式。参考教程获取更多信息
    -multiWindow: 进入被测试网站都在单独窗口打开的模式,并且selenium支持frame
    -forcedBrowserMode <browser>: 设置浏览器模式(例如,所有的会话都使用"*iexplore",不管给getNewBrowserSession传递什么参数)
    -userExtensions <file>: 指定一个被载入到selenium的JavaScript文件
    -browserSessionReuse: 停止在测试间重新初始化和替换浏览器。
    -alwaysProxy: 默认情况下,我们尽量少的进行代理;设置这个标志将会强制所有的浏览器通讯都通过代理
    -firefoxProfileTemplate <dir>: 一般情况,我们在每次启动之前都生成一个干净的Firefox设置。您可以指定一个目录来让我们将您的设置拷贝过来,代替我们生成的。
    -debug: 进入debug模式,会有更多的跟踪调试信息
    -htmlSuite <browser> <startURL> <suiteFile> <resultFile>: 使用指定的浏览器(例如"*firefox")在指定的URL(例如"http://www.google.com"),运行一个单独的HTML Selenese (Selenium Core)测试套件然后立即退出。您需要指定HTML测试套件的绝对路径还有我们将会生成的HTML测试结果文件的路径。
    -proxyInjectionMode: 进入代理注入模式,这个模式中selenium服务器作为进入测试程序的所有内容的代理服务器。在这个模式下,可以跨多个域访问,并且还支持如下附加参数:
    -dontInjectRegex <regex>: 附加的正则表达式,代理注入模式能够使用它决定是否进行注入
    -userJsInjection <file>: 指定一个JavaScript文件,将它注入到所有页面中
    -userContentTransformation <regex> <replacement>: 一个正则表达式,对所有被测HTML内容进行匹配;第二个string将会对替换所有匹配的内容。这个标志能够使用多次。一个简单的适合使用这个参数的例子:如果你添加"-userContentTransformation https http"那么测试应用程序的HTML中的所有"https"字符串都会被替换为"http"。

  • 相关阅读:
    网易严选的wkwebview测试之路
    【工程实践】服务器数据解析
    从加班论客户端开发中的建模
    UVaLive 6802 Turtle Graphics (水题,模拟)
    UVaLive 6694 Toy Boxes (二分+想法)
    UVaLive 6693 Flow Game (计算几何,线段相交)
    UVaLive 6698 Sightseeing Bus Drivers (水题,贪心)
    UVaLive 6697 Homework Evaluation (DP)
    UVALive 6692 Lucky Number (思路 + 枚举)
    CodeForces 710E Generate a String (DP)
  • 原文地址:https://www.cnblogs.com/emilyzhang68/p/2366796.html
Copyright © 2011-2022 走看看