zoukankan      html  css  js  c++  java
  • 【移动端App自动化测试】02 Appium用例录制

    一、创建一个新的session

    1、开始新的session
    2、指定平台和设备名称
    (1)点击Start Session,提示必填信息:平台和设备
    (2)设备名称,通过adb devices命令获取
    (3)输入平台和设备名称
    3、Android 需要获取 appPackage 和 appActivity
    (1)命令行输入命令:
    adb logcat|grep -i displayed
    (2)在 mumu 模拟器上打开被测软件,例如雪球 App ,再回到命令行中查看新生成的日志即可获取
    appPackage:com.xueqiu.android
    appActivity:.view.WelcomeActivityAlias
    4、 desire_caps
    1 {
    2     "platformName": "iOS",       // android 或iOS
    3     "platformVersion": "11.0",   // 版本
    4     "deviceName": "iPhone 7",    // 设备名称
    5     "automationName": "XCUITest", // 工作引擎
    6     "app": "/path/to/my.app"      // Android有包和页面的概念
    7 }
    二、appium页面功能简介
     
     
    左:页面展示
    中:dom,xml的层级结构,包含布局和标签
    右:元素属性
     
    1、选择属性
    2、鼠标滑动
    3、同步:通过鼠标完成刷新操作,即会同步到手机或模拟器上上
    4、返回
    5、刷新:对当前页面进行刷新
    6、录制脚本
    7、搜索:搜索元素,且选中搜索结果会在页面上高亮
    8、拷贝:xml的结构
    9、关闭
     
    三、录制功能
    1、点击 录制 按钮

    2、录制第一个脚本:选中操作要素,进行相应点击/文本输入/清空操作,切换语言,复制到 Pycharm 中

    (1)点击 搜索 按钮
    (2)输入 阿里巴巴
    (3)点击 联想结果的第一个
    (4)点击 用户

     3、Pycharm 中执行录制的脚本

     1 # appium第一个录制脚本
     2 # "noReset": True 保留之前的操作
     3 desired_caps = {
     4   "platformName": "android",
     5   "deviceName": "127.0.0.1:7555",
     6   "appPackage": "com.xueqiu.android",
     7   "appActivity": ".view.WelcomeActivityAlias",
     8   "noReset": True
     9 }
    10 # 本机地址0.0.0.0:4723,Appium启动时出现的地址,/wd/hub固定写法
    11 driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
    12 
    13 # 隐式等待
    14 driver.implicitly_wait(10)
    15 
    16 # 点击搜索
    17 el1 = driver.find_element_by_id("com.xueqiu.android:id/tv_search")
    18 el1.click()
    19 
    20 # 输入 阿里巴巴
    21 el2 = driver.find_element_by_id("com.xueqiu.android:id/search_input_text")
    22 el2.send_keys("阿里巴巴")
    23 
    24 # 点击 第一个联想结果
    25 el3 = driver.find_element_by_xpath("/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.RelativeLayout/android.widget.FrameLayout/android.widget.LinearLayout/androidx.recyclerview.widget.RecyclerView/android.widget.RelativeLayout[1]/android.widget.LinearLayout/android.widget.TextView[1]")
    26 el3.click()
    27 
    28 # 点击 用户 页签
    29 el4 = driver.find_element_by_xpath("/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.RelativeLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout[2]/android.view.View")
    30 el4.click()
    appium第一个录制脚本
  • 相关阅读:
    map内置函数、lambda表达式、快捷生成想要的列表、filter内置函数
    python生成随机验证码
    Redis数据库之概念与创建服务
    JavaScript中的类
    python之with的使用
    PHP变量名区分大小写,函数名不区分大小写
    php curl基本操作
    PHP生成随机字符串包括大小写字母
    PHP多例模式
    一个关于动态编译时 Evidence的问题
  • 原文地址:https://www.cnblogs.com/guoccf/p/14469627.html
Copyright © 2011-2022 走看看