测试工具之Appium关键字
白羽 2019-01-10 来源 :网络 阅读 540 评论 0

摘要:本文将带你了解测试工具Appium关键字,希望本文对大家学测试工具有所帮助。

    本文将带你了解测试工具Appium关键字,希望本文对大家学测试工具有所帮助。




   

  ***   Settings ***

  Library               AppiumLibrary

  Library               AutoItLibrary

  Library             os

  ***   Keywords   ***

  xpath应该匹配次数

  [Arguments]      ${xpath}      ${count}

  Xpath Should Match X Times      ${xpath}      ${count}

  上传文件

  [Arguments]      ${path}    ${data}      ${encode}=base64

  Push File      ${path}    ${data}      ${encode}

  元素不应该包含文本

  [Arguments]      ${locator}    ${expected}      ${msg}=

  Element Should not Contain Text      ${locator}    ${expected}      ${msg}

  元素值应该是

  [Arguments]      ${locator}      ${expected}

  Element Value Should Be      ${locator}      ${expected}

  元素名应该是

  [Arguments]      ${path}      ${name}

  Element Name Should Be      ${path}      ${name}

  元素属性应该匹配

  [Arguments]      ${locator}    ${attr_name}      ${match_pattern}      ${regx}=False

  Element Attribute Should   Match    ${locator}      ${attr_name}    ${match_pattern}      ${regx}

  元素应该包含文本

  [Arguments]      ${locator}    ${expected}      ${msg}=None

  Element Should Contain Text      ${locator}    ${expected}      ${msg}

  元素应该失效

  [Arguments]      ${locator}      ${level}=INFO

  Element should be disabled      ${locator}      ${level}

  元素应该有效

  [Arguments]      ${locator}      ${level}=INFO

  Element should be enabled      ${locator}      ${level}

  元素文本应该是

  [Arguments]      ${locator}    ${expected}      ${msg}=None

  Element Text Should Be      ${locator}    ${expected}      ${msg}

  关闭当前应用

  Close   Application

  关闭所有应用

  Close All   Applications

  切换应用

  [Arguments]      ${index_or_alias}

  Switch   Application      ${index_or_alias}

  切换页面内容

  [Arguments]      ${webview}

  Switch To Context        ${webview}

  卸载应用

  [Arguments]      ${application_id}

  Remove Application        ${application_id}

  后台运行

  [Arguments]      ${sec}

  Background App      ${sec}

  向上滚动

  [Arguments]      ${locator}

  Scroll Up      ${locator}

  向下滚动

  [Arguments]      ${locator}

  Scroll Down      ${locator}

  失败后运行关键字

  [Arguments]      ${keyword}

  [Documentation]      Example:    # Disables run-on-failure   functionality and stores the previous kw name in a variable.      # Restore to the previous   keyword.

  ...

  ...      Register Keyword To Run On Failure \ \ \ Log   Source

  ...    \ \ \ \ \ \ \ # Run   `Log Source` on   failure.

  ...

  ...      ${previous kw}=

  ...      Register Keyword To Run On Failure \ \ Nothing

  ...

  ...

  ...      Register Keyword To Run On Failure \ \ \ \ ${previous kw} \ \ \   \

  Register Keyword To Run On Failure        ${keyword}

  打印资源

  [Arguments]      ${level}

  Log Source      ${level}

  打开URL

  [Arguments]      ${url}

  [Documentation]        Example:

  ...

  ...      打开应用

  ...      //localhost:4755/wd/hub \ platformName=iOS \   platformVersion=7.0

  ...      deviceName='iPhone Simulator'

  ...        browserName=Safari

  ...

  ...      打开URL \ //m.webapp.com

  Go To   URL      ${url}

  打开应用

  [Arguments]      ${url}    ${platformName}      ${version}    ${deviceName}      ${app}

  [Documentation]    打开应用   ${url} ${platformName} ${version} \ \ ${devicename} ${app}   @{args}

  ...

  ...        例如:

  ...

  ...      打开应用 //localhost:4723/wd/hub Android   5.1.1 5e25d20d   ${CURDIR}${/}app${/}fft.apk

  ...

  ...      ${url} 是用于访问应用的地址,一般是固定的。 url 和 端口可以根据具体地址修改。

  ...      ${version} \ 是安卓的版本

  ...      ${devicename} 是手机的UDID,   可以打开cmd 然后用 adb devices -l \ 看到设备列表。

  ...      UDID 是看到的第一列的内容,真机是一串字符串,模拟器是 \ ip:port \   的形式

  ...    ${app} 是apk 存放的路径   ${CURDIR} 系统变量,取得当前脚本路径。 ${/} 系统变量 '/'

  open   application    ${url}      platformName=${platformName}      platformVersion=${version}    deviceName=${deviceName}        app=${app}

  按关键字

  [Arguments]      ${keycode}      ${metastate}=None

  Press Keycode      ${keycode}      ${metastate}

  摇动手机

  Shake

  放大元素

  [Arguments]      ${locator}    ${percent}=200%      ${step}=1

  Zoom      ${locator}    ${percent}      ${step}

  敲击元素

  [Arguments]      ${locator}

  Tap      ${locator}

  横屏

  [Documentation]        手机设置横屏

  LANDSCAPE

  清除文本

  [Arguments]      ${locator}

  Clear Text      ${locator}

  滑动

  [Arguments]      ${start_x}    ${start_y}      ${end_x}    ${end_y}

  swipe      ${start_x}    ${start_y}      ${end_x}      ${end_y}

  滚动

  [Arguments]      ${start_locator}      ${end_locator}

  [Documentation]      从一个元素滚动到另一个元素

  Scroll      ${start_locator}      ${end_locator}

  点击元素

  [Arguments]      ${locator}

  Click Element        ${locator}

  点击元素坐标

  [Arguments]      ${coordinate_x}    ${coordinate_y}

  Click   Element At Coordinates    ${coordinate_x}        ${coordinate_y}

  点击固定点

  [Arguments]      ${x}    ${y}      @{args}

  Click A Point      ${x}    ${y}      @{args}

  点击按钮

  [Arguments]      ${index_or_name}

  Click Button        ${index_or_name}

  点击文本

  [Arguments]      ${text}      ${exact_match}=false

  [Documentation]        点击匹配到文本的元素:

  ...

  ...      点击文本 "text"

  ...      点击文本 "text"   True

  ...

  ...      默认模糊匹配所有元素,可以设置成精确匹配。

  ...      如果可以匹配到两个或两个以上的元素,那么需要用 click Element   元素,去处理。

  Click Text      ${text}    ${exact_match}

  睡眠

  [Arguments]      ${sec}

  sleep      ${sec}

  竖屏

  PORTRAIT

  等待页面元素出现

  [Arguments]      ${locator}    ${timeout}=100      ${err}=None

  Wait Until Page Contains   Element    ${locator}      ${timeout}      ${err}

  等待元素出现文本

  [Arguments]      ${text}    ${timeout}=10      ${err}=None

  Wait Until Page Contains      ${text}    ${timeout}      ${err}

  等待页面不包含元素

  [Arguments]      ${locator}    ${timeout}=10      ${err}=None

  Wait Until Page Does Not Contain   Element    ${locator}      ${timeout}      ${err}

  等待页面不包含文本

  [Arguments]      ${text}    ${timeout}=10      ${err}=None

  Wait Until Page Does Not   Contain    ${text}      ${timeout}      ${err}

  缩小元素

  [Arguments]      ${locator}    ${percent}=200%      ${step}=1

  Pinch      ${locator}    ${percent}      ${step}

  获取Appium超时时间

  ${timeout}      Get Appium Timeout

  [Return]      ${timeout}

  获取Web元素

  [Arguments]      ${locator}

  [Documentation]        获取匹配的定位器的第一个元素:

  ...

  ...      ${element} 获取Web元素 id=name

  ...      点击元素 ${element}

  ${element}      Get Webelement      ${locator}

  [Return]      ${element}

  获取元素坐标

  [Arguments]      ${locator}

  ${location}      Get Element Location      ${locator}

  [Return]      ${location}

  获取元素尺寸

  [Arguments]      ${locator}

  ${size}      Get Element Size    ${locator}

  [Return]        ${size}

  获取元素属性

  [Arguments]      ${locator}      ${name_or_value}

  [Documentation]      获取元素属性:(name 或者 value)

  ...      ${val} \ 获取元素属性 ${locator}   ${name_or_value}

  ...

  ...      例如:

  ...    ${val} 获取元素属性   id=xxxx name

  ...    ${val} 获取元素属性   id=xxxx value

  ${val}    Get Element   Attribute    ${locator}      ${name_or_value}

  [Return]      ${val}

  获取匹配xpath数

  [Arguments]      ${xpath}

  [Documentation]      例如:

  ...

  ...      ${count} \ \ \ 获取匹配xpath数 \ \   //android.view.View[@text='Test']

  ${count}      Get Matching Xpath Count      ${xpath}

  [Return]      ${count}

  获取可见文本

  ${contents}      Get Contexts

  [Return]      ${contents}

  获取当前文本

  ${context}      Get Current Context

  [Return]        ${context}

  获取所有web元素

  [Arguments]      ${locator}

  [Documentation]      @{element} 获取所有web元素   id=my_element

  ...    点击元素   @{element}[2]

  @{element}    Get   Webelements    ${locator}

  [Return]        @{element}

  获取文件

  [Arguments]      ${file_path}      ${decode}=False

  pull file      ${file_path}      ${decode}

  获取文件夹

  [Arguments]      ${folder_path}      ${decode}=False

  Pull Folder      ${folder_path}    ${decode}

  获取文本

  [Arguments]      ${locator}

  [Documentation]      获取符合元素的文本:

  ...      ${text} \ 获取文本 \ //*[contains(@text,'foo')]

  ${text}      Get Text      ${locator}

  [Return]      ${text}

  获取网络连接情况

  ${stat}      Get Network Connection   Status

  [Return]      ${stat}

  获取资源

  ${source}      Get Source

  [Return]      ${source}

  设置Appium超时

  [Arguments]      ${sec}

  Set Appium Timeout        ${sec}

  设置网络连接状态

  [Arguments]      ${sec}

  Set Network Connection   Status      ${sec}

  输入值

  [Arguments]      ${locator}      ${val}

  Input Value      ${locator}      ${val}

  输入密码

  [Arguments]      ${path}      ${passwd}

  Input Password    ${path}        ${passwd}

  输入文本

  [Arguments]      ${path}    ${text}

  Input   Text    ${path}    ${text}

  返回

  [Documentation]      浏览器返回上一个的页面

  Go   Back

  重置应用

  Reset   Application

  锁屏

  [Arguments]      ${sec}

  [Documentation]      这个方法只使用于IOS

  Lock      ${sec}

  长按元素

  [Arguments]      ${locator}

  Long Press      ${locator}

  长按关键字

  [Arguments]      ${keycode}      ${metastate}=None

  [Documentation]      keycode 可以在这个网址里面找到:

  ...        //developer.android.com/reference/android/view/KeyEvent.html.

  ...

  ...      Args:

  ...    \ \ \ \ -   keycode - the keycode to be sent to the   device

  ...    \ \ - metastate -   meta information about the keycode being sent

  Long   Press Keycode    ${keycode}      ${metastate}

  隐藏键盘

  Hide   Keyboard

  页面不应该包含元素

  [Arguments]      ${locator}      ${lvl}=INFO

  Page Should Not Contain Element      ${locator}      ${lvl}

  页面不应该包含文本

  [Arguments]      ${locator}      ${lvl}=INFO

  Page Should Not Contain Text      ${locator}      ${lvl}

  页面应该包含元素

  [Arguments]      ${locator}      ${lvl}=INFO

  Page Should Contain Element      ${locator}      ${lvl}

  页面应该包含文本

  [Arguments]      ${locator}      ${lvl}=INFO

  Page Should Contain Text      ${locator}      ${lvl}

  页面截图

  [Arguments]      ${filename}=

  Capture Page   Screenshot    ${filename}

   



   
                   

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标软件测试之测试工具频道!


本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程