zoukankan      html  css  js  c++  java
  • Selenium 的基本了解以及Selenium IDE插件的知识点

    Selenium 是用于网页的测试

    selenium Grid 是使用于分布式测试

    使用到html、xml以及Xpath进行元素定位。

    Selenium可以用来录制脚本。
    关键字测试驱动的方式

    command 表示要执行的操作是什么
    target 表示操作的界面元素是哪个
    value 表示操作时使用时多少

    /*
    1、/ 表示填写的Base URL
    2、id = kw kw表示搜索文本框
    3、id = su (点击“百度一下”按钮,然后执行clickAndWait,即为单击执行之后,等待页面加载完毕。)
    */

    里面有两个执行测试的按钮:
    play entire test suit 表示执行整个测试套件,也就会左侧的所有的测试用例都会执行
    play current test case 执行当前选中的测试用例。

    command target value
    type id=lst-ib selenium
    表示类型 搜索元素的id是“lst-ib” ,然而搜索的关键字是selenium。

    click name=btnK
    表示的是通过名字来进行查找。

    ps:这些元素的特性都是通过制定然后右键,通过firebug查看里面的内容。

    command : 要执行的操作是什么,必须的参数,并且这个的选项很多。
    selenium的命令通常称为“selense”,它是一套执行测试的的命令集。

    selense
    1)基于HTML 标记,用于测试UI元素是否存在,验证指定内容是否正确,检查链接是否可用,可以输入字段,选择列表的选项,提交表单病操作表格中的数据,
    2)用于辅助测试,eg:验证窗口的大小,鼠标的位置、警告信息,弹出窗口、Ajax功能时间处理以及其他各种web应用程序功能。

    3种分类类型:
    Action(操作):用于操作应用程序的状态
    Accessor(存储):检查应用程序的状态,并且将结果存储到变量中。eg:“storeTitle” 用于自动生成Assertion。
    Assertion(断言):类似Accessor命令,验证程序的状态,并且确定这些状态符合预期的结果。eg:“确定该页面的标题是****”“验证该复选框为勾选状态”

    Action的命令:

    1、浏览器的操作
    1)、open(url)
    (1)url = base url + target
    eg:if base url = http://www.baidu.com target=index.html
    url = http://www.baidu.com.index.html
    (2)if target是以http://开头的,将会忽略base url

    2)、goback() 浏览器的后退功能

    3)、refresh() 浏览器的刷新功能

    4)、windowFocus() 激活当前选择中的浏览器窗口

    5)、windowMaximize() 将当前选中的窗口最大化

    6)、close() 关闭当前选中的浏览器的窗口

    2、界面元素的基本操作
    1)、type(locator,value) 表示input类型的输入,也就是文字的输入,同时也可以是选项,选中的值将是选项中的选项值,而不是文本。
    target:元素的定位表达式
    value:要输入的值

    2)、typekeys(locator,value) 这个命令已经过时,需要时使用sendKeys来替换;
    模拟键盘一个一个的字符的输入过程.
    参数同上。

    3)、click(locator)点击复选框、单选框以及链接。
    (单击需要加载页面,一般在后面使用waitForPageToLoad或者使用clickAndWait)

    4)clickAt(locator,coordString) 余click相似,但是需要填写相应的坐标
    coordString(value):eg:(10,20)指定元素上进行单击的坐标(x,y)

    5)doubleClick(locator)
    双击,一般在后面使用waitForPageToLoad或者使用doubleClickAndWait

    6)doubleClickAt(locator,coordString)
    和上面的差不多

    7)select(selectLocator,optionLocator)
    用于在下拉框中选择指定的选项
    (&&选项的定位方式和下拉框的定位方式有点不同)
    label= 文本值,基于选项的文本进行匹配(默认方式),eg:label=three
    value= 真实值,基于选项的真实值进行匹配,eg:value=3
    id=id 基于选项的id进行匹配,eg:id=option2
    index=index,基于选项的索引进行匹配,eg:index=2
    (索引是从0开始的)
    target:下拉列表框的定位表达式
    value:下拉列表框的选项表达式

    check(locator) 勾选复选框或者单选框

    uncheck(locator) 去选勾选

    focus(locator) 将焦点移植到指定的元素上
    eg:若是有一个文本框,可以先将焦点移植到文本框,在用键盘输入值。

    3、
    键盘鼠标的模拟动作
    altkeyDown() 模拟按下alt键不放,直到调用altKeyUp命令或者加载新的页面
    altKeyUp() 松开alt键

    controlKeyDown() 模拟按下ctrl键不放,直到调用altKeyUp命令或者加载新的页面
    controlKeyUp() 松开ctrl键

    shiftKeyDown() 模拟按下shift键不放,直到调用altKeyUp命令或者加载新的页面
    shiftKeyUp() 松开shift键

    ……………………很多这方面的操作
    即为模拟键盘和鼠标的操作,键盘操作豪阔了键盘按下的组合件产生的效果。

    4、设置类操作
    1)setTimeout(timeout)
    执行一个操作的最大等待时间,仅仅使用open、waitfor开头以及带有AndWait后缀的命令。
    2)setSpeed(value) 设置各个步骤执行的时间间隔

    5、调试控制和调试类工作
    1)、pause(waitTime) 使测试在指定的时间内暂停执行(类似设置等待时间,什么都不做)
    2)、break()暂停当前正在执行的操作,知道用户手动点击继续的按钮。
    3)、captureEntirePageScreenshot(filename,kwargs)将当前的窗口进行截图病保存为PNG文件
    target:保存图片存放的目录 eg:D:123.png
    4)、highlight(locator) 暂时将制定元素的背景改为黄色,并且在后面自动取消效果。一般适用于调试。
    echo(message) 指定信息打印出来,一般用于调试。

    Accessor
    检查应用程序的状态,将结果存放在变能量中。
    eg:storeTitle,Accessor自动生成Assertion命令,读取值的方式为:$(变量名称)
    1)store(expresson,variableName) 指定值存在变量中
    target:要存储的值
    value:变量名称,target所写的值就存放在这里。
    2)storeTitle(variableName) 用于存放当前网页的标题
    target:变量名称,该变量就是指存放的地方。
    3)storeLocation(varibleName) 存储当前网页的url
    4)storeValue(locator,value) 就是在input元素中的内容,将target中的值存放在value中,
    5)storeEdiable(locator,value) 存储input中的元素的可编辑状态
    6)storeText(locator,variableName) 用于存储某个元素的文本值(eg:链接,纯文本)
    7)storeChecked(locator,value) 存储单选框或者复选框的勾选情况,勾选true,不勾选false
    8)storeSelectedIndex(selectLocator,variableName) 获选所选项在列表中的索引(从0开始)
    9)storeSelectedLabel(selectLocator,variableName)获取指定列中所选项的文本值
    10)storeSelectedValue(selectLocator,variableName)获取指定列中所选项的真实值(即为:value的值)
    11)storeSelectedOptions(selectLocator,variableName)获取指定列中所选项的文本,以都好隔开
    12)storeTableCell(tableCellAddress,variableName)
    获取表格(table元素)中某个单元格(td元素的值)
    target:格式:表格的定位表达式.行号.列号
    (行列号都是从0开始的)
    value:变量名称
    13)storeAttribute(attributeLocator,variableName)获取指定属性的值
    14)storeTextPresent(pattern,variableName)
    15)storeElementPresent(locator,variableName)验证指定的压面是否存在于页面中
    storeVisible(locator,variableName)
    在页面上看不到,但是可以通过storeElementPresent命令进行验证,仍然返回true,这是因为visibility属性为hidden,display属性为true。
    storeSpeed(variableName)获取执行的额速度
    (获取每个测试步骤之间的执行间隔时间(默认为0,单位为毫秒))

    Assertion(断言)
    与accessor类似
    主要用于验证某个命令是否为真
    3种 模式的使用:assert、verify、waitFor
    可以使用assertText、verifyText、waitForText
    区别:
    assert失败,将会终端
    verify失败,继续执行后面
    waitFor用于执行等待,(非常适合使用在Ajax上面)

    几乎每一个accessor都是对应着一个Assertion。
    1、验证网页的标题是否等于或者不等于预期值
    assertTitle(pattern) /assertNoTitile(pattern) /verifyTitle(pattern) /verifyNoTitle(pattern)/waitForTitle(pattern)/waitForNotTitle(pattern)

    2、验证网页的url是否等于或者不等于预期值
    assertLocation(pattern) ……

    3、验证input元素的值是否等于或不等于预期值
    assertValue(locator,pattern) ……

    4、验证input元素的可编辑状态是否为预期的状态
    assertEditable(locator) ……

    5、验证某个元素的文本值是否等于预期的值
    assertValue(locator,pattern) ……

    6、验证复选框或单选框的勾选情况是否符合预期
    assertChecked(locator) ……

    7、验证所选的列表中的索引是否符合预期值

    8、验证指定的列表中所选项的文本值是否符合预期值

    9、验证指定列表中所选项的真实值

    10、验证指定列表中所有选项的文本是否符合预期值

    11、验证表格(table元素)中的某个单元格(td元素)

    12、验证指定属性的值是否符合预期

    13、验证指定的页面是否在页面中出现

    14、验证指定元素是否存在于页面上

    15、验证页面中是否显示指定元素

    总结:上面主要讲了command中的3种类型的action,Accessor、assertion 这些命令的常用,使用的时候可以查阅一下就好。

    第二部分
    Target 主要用于识别web中的元素
    1、identity定位,默认的定位方式
    (默认通过id、name属性来进行查找)

    2、id定位
    知道某个元素的id,

    3、name定位
    定位方式识别首个name属性等于定位值的页面元素。
    若是多个name的属性值相同,那么可以使用过滤进一步细化,默认的滤过类型是value。

    4、xpath定位
    (找不到合适的id、name的属性进行定位的时候,我们可以使用xpath来进行定位)因为xpath除了可以使用id,name来定位之后,还可以使用其他的元素进行定位。
    (可以是绝对路径,但是不好用)
    eg:xpath = /html/body/form[1]
    或者
    xpath = //form[@id='loginForm']
    xpath = //form[input^@name='usename']

    5、(link关键字的内容进行定位)链接文字定位
    Continue
    eg:link = Continue

    6、DOM 定位
    通过js来定位
    (由于只有dom定位才会使用document开头,所以没有必要写“dom=”)
    eg:
    dom = document.getElementById('loginform');

    7、css定位
    使用选择器来为文档中的元素绑定样式属性

    ps: 返回第三行元素:css=form#loginForm 返回第四行元素:css=input[name="username"] ………………

    8、隐式定位
    target表达式中可以省略“定位类型=”的情况
    1)表达式没有指定默认为identity
    2)使用xpath来定位,则是使用//开头
    3)dom定位则是使用document开头

    第三部分 value
    value填什么值和command有密切的关系
    value值的类型:纯文本值、带有变量的字符串、js的字符串

    1)带有变量的字符串,即为含有字符串在value中(字符串+变量的组合)
    2)带js的字符串, 含有js语句的变量。(js+字符变量)

    4、日志和应用
    Selenium IDE 包括了
    1)Log(日志)(常用):输出测试的相应的信息
    2)Reference(引用)(常用):显示我们鼠标点击哪一行显示的具体的操作
    3)UI-Element(UI元素)、
    4)Rollup。

    5、拷贝测试代码
    里面右键即可copy进行拷贝和在记事本中粘贴
    然而,默认是html的代码
    然而可以转化代码,选择(菜单上)options——>ClipBoardFormat,选择对应的语言和Selenium版本即可。

    将命令导出为代码
    (导出用例或者导出用例组)
    “文件”——> Export Test Case As
    “文件”——> Export Test Suite As
    可以选择对应的语言和版本。

  • 相关阅读:
    Spring基础知识
    Hibernate基础知识
    Struts2基础知识
    在eclipse里头用checkstyle检查项目出现 File contains tab characters (this is the first instance)原因
    java后台获取cookie里面值得方法
    ckplayer 中的style.swf 中的 style.xml 中的修改方法
    java hql case when 的用法
    Windows下Mongodb安装及配置
    Mongodb中经常出现的错误(汇总)child process failed, exited with error number
    Mac 安装mongodb
  • 原文地址:https://www.cnblogs.com/wwyydd/p/14381627.html
Copyright © 2011-2022 走看看