zoukankan      html  css  js  c++  java
  • Selenium 介绍

    Selenium 

    严格说来,Selenium是一套完整的Web应用程序测试系统,它包含了测试的录制(Selenium IDE)、编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。Selenium的核心Selenium Core基于JsUnit,完全由JavaScript编写,因此可运行于任何支持JavaScript的浏览器上。Selenium Core由一种指定格式的HTML文件驱动,在一定程度上增强了测试套件(Test Suite)的可读性。Selenium Remote Control允许测试人员使用常见的语言(自然包括C#等.NET语言)编写测试代码,并支持不同操作系统下的各种主流浏览器。Selenium Grid的作用是将测试分发至多台机器,这样便可大大加快测试速度。与WatiN相同,Selenium也是一款同样使用Apache License 2.0协议发布的开源框架。  

    Selenium IDE 
           Selenium IDE是基于FIREFOX浏览器的一个插件,提供GUI界面来运行Selenium测试。Selenium IDE提供脚本录制功能,可以将用户在浏览器中执行的操作记录下来,生成各种形式的脚本,可以将这些脚本保存供以后使用。 
           安装Selenium IDE的步骤如下: 
        * 从www.openqa.org/selenium-ide/download.action下载Selenimu IDE(一个XPI后缀的文件)。 
        * 启动FIREFOX浏览器,打开刚才下载的文件。 
        * 重启FIREFOX浏览器,在工具菜条下应该就可以看到Selenium IDE菜单项 

    --------------------------------------------------------------------------------------------------------- 

    一 Selenium-RC 是 selenium-remote control 缩写,是使用具体的语言来编写测试类。
    二 准备工作: 1,下载 selenium 了,到 http://www.openqa.org/selenium/ 下载就可以了,记得选择selenium-rc 的版本 
                 2, 学习一下xpath 的知识。有个教程:http://www.zvon.org/xxl/XPathTutorial/General_chi/examples.html 
                 3, 安装 jdk1.5 


    三 selenium-rc 一些使用方法 
        1,解压selenium-rc压缩包 
        2,启动服务器  
            Selenium Server是用JAVA实现的,相应的库文件在HOME/server/selenium-server.jar。运行如下代码从命令行启动: 
           java 代码 : java -jar selunium-server.jar 


    四   编写测试用例 
        需要的JAR: selenium-java-client-driver.jar;junit 
        编写一个JUNIT的单元测试,要构建一个Selenium,包括如下步骤: 
        * 构建一个Selenium实例 
        * 启动Selenium实例 
        * 执行Selenium命令,并验证结果。 
        * 关闭Selenium实例 

    如下是一个示例,用来测试http://www.google.com/,查找selenium,期望结果中包含"OpenQA: Selenium" 
      代码

    package com.thoughtworks.selenium;      
    import junit.framework.*;   
    import org.openqa.selenium.server.*;   
    public class GoogleTest extends TestCase   
     {   
        
    private Selenium selenium;   
        
    public void setUp() throws Exception {   
             String url 
    = "http://www.google.com";   
             selenium 
    = new DefaultSelenium("localhost", SeleniumServer.getDefaultPort(), "*firefox", url);   
             selenium.start();   
        }   
             
        
    protected void tearDown() throws Exception {   
              selenium.stop();   
        }   
             
        
    public void testGoogleTestSearch() throws Throwable {   
              selenium.open(
    "/intl/zh-CN/");   
              selenium.type(
    "q""selenium");   
              selenium.click(
    "btnG");   
              selenium.waitForPageToLoad(
    "30000");   
              assertEquals(
    "selenium - Google 搜索", selenium.getTitle());        
           } 
      }    

    五 多环境测试 
     
     代码

     
     

    六 如何选取元素   selenium提供如下强大的定位元素的方法。    * id=id    * name=name    * dom=javascriptExpression    * xpath=xpathExpression    * link=textPattern    * css=cssSelectorSyntax1 通过ID,name选择元素  :  如 selenium.type("id=q","百度"); selenium.type("name=search","百度")2 link= 根据链接文字来操作:如 selenium.click("link=个人资料");3 根据XPath来选择元素  : XPath Checker    * xpath=//img[@alt='The image alt text']    * xpath=//table[@id='table1']//tr[4]/td[2]    * xpath=//a[contains(@href,'#id1')]    * xpath=//a[contains(@href,'#id1')]/@class    * xpath=(//table[@class='stylee'])//th[text()='theHeaderText']/../td    * xpath=//input[@name='name2' and @value='yes']    * xpath=//*[text()="right"]      如: selenium.type("xpath=//input[@name='user.email']", "xxx@123.com"); // 向input中type为text的栏位键入信息          selenium.check("xpath=//input[(@name='user.sex')and(@value='男')]");// 向input中type为radiod的 选取4 dom选择    * dom=document.forms['myForm'].myDropdown    * dom=document.images[56]    * dom=function foo() { return document.links[1]; }; foo();5 css选择器这个不常用,它可以支持css2, css3选择器    * css=a[href="#id3"]    * css=span#firstChild + span七 使用selenium 这个对象来进行测试1  获取标 : assertEquals("Insert title here", selenium.getTitle());2  判断页面是否存在一个user.email元素  :assertTrue(selenium.isElementPresent("xpath=//input[@name='user.email']"));3  得到文本框里的文字:   assertEquals(selenium.getValue("xpath=//input[@name='user.username']"),"xxxaas");4  测试check box  :    assertTrue(selenium.isChecked("xpath=//input[(@name='user.sex')and(@value='男')]"));5  点击提交按钮   : selenium.click("xpath=//input[@type='button']");6  等待页面载入   : selenium.waitForPageToLoad("2000");7  验证指定文本出现在提交给用户的页面上: assertTrue(selenium.isTextPresent("验证码输入有误,请核实后再输入"));8  判断下拉框里选择了哪个选项 :assertEquals(selenium.getSelectedIndex("xpath=//SELECT[@name='HATIMING']"), "1"); 9  如何测试一些错误消息的显示? assertTrue(selenium.getBodyText().indexOf("错误消息")>=0);    getBodyText 返回的时浏览器页面上的文字,不回包含html 代码的,如果要显示html 代码,用下面这个:selenium.getHtmlSource(); 

    八   Firefox 的插件     1 XPath Checker :可以用这个工具测试简化我们的xpath表达式     2 Firebug     3 Selenium IDE     4 Execute JS

  • 相关阅读:
    测试工具知识大集合
    滴滴,好未来,百度,快手,头条测试&测试开发岗面经(附面试题)
    做数据必知的十本书,你读过几本?
    如何有效延长假期?
    当程序猿第那几年!
    自动化测试中的那些误解和偏见
    北京VS上海:“活着为了工作”还是“工作为了生活”?
    程序员国庆相亲图鉴
    有赞精准测试实践
    IE中的文档兼容性
  • 原文地址:https://www.cnblogs.com/Flynn/p/1793742.html
Copyright © 2011-2022 走看看