selenium初体验

上一篇 / 下一篇  2010-05-19 17:27:13

  从未听说过selenium测试工具,基本对这个单词发音都不准确。很多人都说它很好用在web测试学习下.

一,Selenium IDE 介绍

下载selenium ide插件并安装(firefox),在tools菜单下可以看到。

 

单击上面的红色原点,即可对你在网页上的任何操作做记录,以命令方式记录。这些命令你也可以自己写下来,再批量运行,就会看到浏览器自动执行所有的动作,这样就可以保存为测试脚本了,也就可以对每次的测试做备案了。

 

下面来说说selenium的命令格式,主要由三部分组成:
1,command 操作命令
2,target 操作对象,通常是页面及页面元素
3,value 作为断言的值

1,元素locator的访问方式:
1)id=id,假如元素id是username,则target直接写username即可
2)name=name,可以通过name直接获得第一个该名称的元素
                  例如:username
                          name=username
3)dom=javascript表达式
                  例如:dom=document.forms['myForm'].myDropdown
                          dom=document.images[56]
                          dom=function foo() { return document.links[1]; }; foo();

4)xpath=xpath表达式,使用xpath表达式来定位一个元素。
                  例如:xpath=//img[@alt='The image alt text']
                          xpath=//table[@id='t1']//tr[4]/td[2]
                          xpath=//a[contains(@href,'#id1')]

5)link=textPattern
                  例如:link=新闻

主要的访问方式即以上几种。


3,常用Actions
1)open(url)
    接收一个参数url,即command=open, target=url

2)type(locator,value)
    给locator指定的元素或属性赋值以value

3)click(locator)
    单击一个链接、按钮、checkbox或radio等等,locator即元素定位

4)clickAndWait(locator)
    单击一个链接、按钮等等元素,单击后等待新的页面加载
    我们的表单提交,就可以用这个方法来单击submit按钮。
    类似的方法还有selectAndWaittypeAndWaitfocusAndWait……

5)verifyLocation(pattern)
    校验当前页面的绝对路径(url)是否与pattern匹配,关于pattern的解释,我们在下面具体说明。

6)verifyValue(locator, pattern)
    校验指定元素的值是否与指定pattern匹配

7)verifyVisible(locator)
    校验指定元素是否可见,如果当前元素的style="display:none",即不可见。

8)verifyTextPresent(pattern)
    校验当前页面是否出现该文字

9)verifyChecked(locator)
    用于校验checkbox是否被选中

10)verifyAttribute(locator, pattern)
    校验指定的元素属性值,是否匹配pattern
    例如:verifyAttribute(link=All Search Results for "bike"@href, 'glob:*/search/bike?c=0*')
            即校验指定的link的href属性是否匹配"glob:*/search/bike?c=0*"

11)fireEvent(locator,eventName)
    用于调用locator指定的元素的指定eventName的事件,例如:
    fireEvent(userLoginName,blur),即调用文本框userLoginName的失去焦点事件

以上是较为常用的几个方法,还有许多方法的详细介绍可以参见:http://seleniumhq.org/projects/core/reference.html

3、pattern的写法
    在firefox的selenium IDE中,方法的参数pattern,即匹配的文本,共有三种匹配方式:
    1)exact:string
        精确匹配,必须完全匹配当前字符串
    2regexp:regexp
       
正则表达式匹配,这里主要是针对javascript中支持的正则表达式
    3
glob:pattern
        通配符匹配,*表示任意长度任意字符串,?表示任何单个字符,
        例如方法 verifyLocation(*/search?key=bike&c=*),即开头的域名部分和之后可能附带的一些参数都做了忽略。
   

   需要说明的是:这里pattern的写法,仅仅是在IDE工具,即用浏览器以html方式直接运行脚本执行测试案例的方式中才有效。在后台test case中,只能使用equals或者matches的方式,才能验证。

 

二,Selenium Test Case介绍
相关文档:http://seleniumhq.org/documentation/tutorials/
 
1,首先,在命令行输入以下命令,启动Selenium服务:
   
i.多窗口模式
       
java -jar selenium-server.jar-multiWindow
  ii.交互模式
     
java -jar selenium-server.jar-interactive
  
   说明:(1)交互模式,用户可以在
server的窗口下,一条命令一条命令的输入,查看浏览器上的动作以及server日志。
           其命令如下:
           a,初次启动,打开新窗口:
              cmd=getNewBrowserSession&1=*iexplore&2=http://test.offerme.com.au
               (新建浏览器session,指定浏览器是IE,同时指定访问的域名:http://test.offerme.com.au)
           b,以后再次加载页面,则可以省去域名
              cmd=open&1=/cat/all?sn=0
               (打开链接/cat/all?sn=0)
           c,给指定文本框输入指定值
              cmd=type&1=q&2=bike
              (给id为q的文本框输入值bike)

          (2)多窗口模式,可以在后台写java的test case,让程序自动执行一整套操作。
   
   例:
        
public void testRegister() throws Exception {
               selenium.setSpeed("1000");
                selenium.open("http://zhidao.baidu.com");
                selenium.type("ikword", "abc");
                selenium.close();
            }


2,在项目中导入
selenium-java-client-driver.jar、selenium-java-client-driver-sources.jar、selenium-java-client-driver-tests.jar三个包

3,Test Case写法,可以继承com.thoughtworks.selenium.TestCase类,也可以继承com.thoughtworks.selenium.SeleneseTestCase(它是TestCase的子类,对setUp()方法做了重写,更为方便)
    写法跟
JUnit测试相似,需要写一个setUp()方法,在此方法中可以对selenium对象实例化以并且启动。
    例:
        public void setUp() throws Exception {
            selenium = new DefaultSelenium("localhost",4444, "*iehta", "http://localhost:8080/");
            selenium.start();
        }



TAG: Selenium selenium Web测试 web测试

 

评分:0

我来说两句

我的栏目

日历

« 2024-03-27  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 5053
  • 日志数: 6
  • 建立时间: 2010-05-19
  • 更新时间: 2010-08-10

RSS订阅

Open Toolbar