企业微信联系人管理
App 自动化测试实战

目录

  • 元素定位技巧
  • 企业微信实战(PO 封装)
  • 框架改进方案

元素定位技巧

App 元素定位

  • 测试步骤三要素
    • 定位、交互、断言
  • 定位
    • id 定位(优先级最高)
    • Accessibility ID 定位(content-desc)
    • css 定位
    • XPath 定位(速度慢,定位灵活)
    • 非通用定位,可用 css 定位取代
      • Uiautomator 定位(仅 Android 速度快,语法复杂)
      • predicate 定位(仅 iOS )

XPath 定位

  • xpath w3c
  • xpath 表达式常用用法
    • 1、逻辑运算符 (not、and 、or 等
    • 2、表达式 (contains、ends_with、starts_with 等)

原生定位

Android 原生定位-Uiautomator 官网:https://developer.android.com/reference/android/support/test/uiautomator/UiSelector.html

写法: ’new UiSelector().text(“text")'

iOS 原生定位-PredicateString

例如:name == ‘测试’

Toast 定位

appium 使用 uiautomator 底层的机制来分析抓取 toast,并且把 toast 放到控件树里面,但本身并不属于控件。

automationName:uiautomator2

使用 xpath 查找

  • //*[@class='android.widget.Toast']
  • //*[contains(@text, "xxxxx")]

企业微信实战

企业微信实战

  • 企业微信 添加联系人 练习
  • 企业微信 删除联系人 练习

传统测试用例的问题

  • 无法适应 UI 变化,UI 变化会导致大量的 case 需要修改
  • 大量的样板代码 driver find click
  • 无法清晰表达业务用例场景

Page Object 模式六大原则

实战练习思路

PO 模式 企业微信实战

  • 演练 App:企业微信 app

测试框架改进

测试框架改进

  • BasePage 的封装
  • 初始化方法
  • find 方法
  • send 方法
  • 加入日志

加入日志

  • 使用标准 log 取代 print
  • 在具体的 action 中加入 log 方便追踪

课后作业

  • 实现添加联系人功能的 PO 封装
  • 实现删除联系人功能的 PO 封装