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
    可以选择对应的语言和版本。

  • 相关阅读:
    【作业四】软件案例分析之必应词典
    【番外篇001】意外的“黄马褂”
    收藏的好资源
    【作业三】结队任务二-----CourseManagement
    【作业二】结对项目之需求分析与原型模型设计
    【实践练习一】Git以及Github的使用
    [iOS 多线程 & 网络
    Objective-c 单例设计模式
    优化tableView性能(针对滑动时出现卡的现象)
    iOS应用程序生命周期(前后台切换,应用的各种状态)详解
  • 原文地址:https://www.cnblogs.com/wwyydd/p/14381627.html
Copyright © 2011-2022 走看看