• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
emilyzhang68
博客园    首页    新随笔    联系   管理    订阅  订阅
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"。

posted on 2012-02-24 15:15  emilyzhang68  阅读(2659)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3