zoukankan      html  css  js  c++  java
  • Appium+RobotFrameWork测试环境搭建

    前提:搭建好robotframework环境

    RF基于python2.7的版本实现的一套开源自动化测试框架

    推荐使用Appium Desktop,

    搭建Appium环境:

    1. 搭建JDK

    2. 搭建SDK环境;SDK:software development kit  软件包,常用的软件是UIAutomatorViewer,进行移动端应用的元素定位

    3. 连接的移动端设备,安卓真机或者模拟器(夜神)

    PS:安装完模拟器之后,将sdk中的adb.exe文件复制到夜神的安装路径下的nox_adb.exe,并重命名为nox_adb.exe

    4. 安装Appium desktop,直接下载安装即可。 如果安装的是Appium server,需要配置node.js,Appium server路径到环境系统变量中

    5. 在RobotFrameWork中导入Appium的包,实现对移动端App的自动化测试

    启动conmand命令窗口,输入pip install robotframework-appiumlibrary

    6. 启动RobotFrameWork,导入AppiumLibrary,导包时,包名大小写敏感

    导入AppiumLibrary后,可能会报错,提示six not found的error,启动conmand窗口,输入 pip install six,然后重启RobotFrameWork

    RobotFrameWork的工程结构:

    新建Project,选择type为directory——新建Suite,选择type为file——在Suite中导入library——新建Case

    RF本身是一个关键字驱动的方式来实现自动化的。

    腾讯QQ的登录demo:

    1.RF连接模拟器,启动腾讯QQ

    Open Application参数解析:

    1.Appium服务端,连接固定

    2.配置Appium的Capabilities:

    deviceName 设备名称  可以通过conmand窗口输入 adb devices获取到

    platformName 操作系统  Android

    platformVersion 系统版本 4.4.2

    appPackage 被测包名

    com.lixin.yezonghui

    appActivity 被测应用的主入口

    .splash.SplashActivity

    2. 进入QQ登录界面

    要获取元素的定位,然后基于已定位的元素进行相对于的操作。

    Appium1.6.3(客户端版)解决每次运行都需要安装Unlock以及AppiumSetting的问题

    文件1地址:/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/appium-android-driver/lib/android-helpers.js

    注释掉:await helpers.pushSettingsApp(adb);

    注释掉:await helpers.pushUnlock(adb);

    文件2地址:

    /Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/appium-android-driver/build/lib/android-helpers.js

    注释掉:return _regeneratorRuntime.awrap(helpers.pushSettingsApp(adb));

    新增:return context$1$0.abrupt('return', defaultIME);

    注释掉:return _regeneratorRuntime.awrap(helpers.pushUnlock(adb));

    新增:return context$1$0.abrupt('return', defaultIME);

    重启appium

    Appium Setting和Unlock在测试过程中不要轻易去掉。

    虽然AppiumSetting不知道做什么用的,但是Unlock在手机锁屏的情况下会有解锁的效果。如果没有Unlock,锁屏状态下client会启动失败,而有Unlock时会自动解锁,然后执行下一步

    如果有谁知道Appium Setting是做什么的,希望大家给科普一下~

    AppiumLibrary常用关键字

    关键字

    含义

    实例

    备注

    Click button

    点击按钮

    Click button 登录

    这里的登录是class属性,必须是button

    Click element

    点击元素

    Click element [locator]

    Locator可以是resource-id,也可以是xpath,但必须是当前页面唯一存在的,一般用该关键字可以完成所有元素点击

    Click text

    点击文字

    Click text 我的

    我的需要是当前页面唯一存在的

    Input text

    在指定元素中输入文本

    Input text [locator] 111

    Locator可以是resource-id,也可以是xpath

    Swipe

    滑动屏幕

    Swipe 1000 1800 100 1800

    Get Text

    获取某标签内容

    ${account}   Get Text  [locator] 

    获取内容后存储到指定变量中,从而在后续脚本中调用该内容

    二、校验函数

    关键字

    含义

    实例

    备注

    Element Name Should Be

    检查元素的name属性

    Element Name Should Be  [locator]  登录

    locator可以是resource-id,也可以是xpath

    Element Should Be Enabled

    检查元素是否可用/可见

    Element Should Be Enabled  [locator]

    Page Should Contain Element

    检查界面包含某些元素

    Page Should Contain Element   [locator]

    Page Should Contain Text

    检查界面包含某些文字信息

    Page Should Contain Text  预约挂号

    Page Should Not Contain Element

    检查界面不包含某些元素

    Page Should Not Contain Element  [locator]

    Page Should Not Contain Text

    检查界面不包含某些文字信息

    Page Should Not Contain Text  预约挂号

    三、等待函数

    关键字

    含义

    实例

    备注

    Wait Until Page Contains

    等待直到界面中包含某些文字,才进行下一步

    Wait Until Page Contains  预约挂号

    默认等待时间为5s

    Wait Until Page Contains Element

    等待直到界面中包含某些元素,才进行下一步

    Wait Until Page Contains Element   [locator]

    locator可以是resource-id,也可以是xpath

    Wait Until Page Does Not Contain

    等待直到界面中不包含某些文字,才进行下一步

    Wait Until Page Does Not Contain  预约挂号

    Wait Until Page Does Not Contain Element

    等待直到界面中不包含某些元素,才进行下一步

    Wait Until Page Does Not Contain Element  [locator]

  • 相关阅读:
    devexpress13学习系列(三)PDFViewer(3)
    devexpress13学习系列(一)PDFViewer(2)
    devexpress13学习系列(一)PDFViewer(1)
    Android图像处理之Bitmap类(zz)
    laravel 制作购物车流程
    数据类型转换
    http返回值
    前段框架
    开启GD拓展
    PHP初级程序员出路
  • 原文地址:https://www.cnblogs.com/ainihaozhen/p/9546944.html
Copyright © 2011-2022 走看看