App 自动化测试测试实战进阶

霍格沃兹测试开发

ceshiren.com

目录

  • 企业微信实战 - 删除联系人
  • 打造测试框架的需求与价值
  • PO 六大原则
  • 企业微信实战 - PO 封装
  • 框架改进方案

企业微信实战

环境准备

  • MacOS 系统
  • Android 模拟器(网易 mumu)
  • Appium Server、Appium Client

企业微信实战(删除成员功能)

  • 前提条件:

    • 1、提前注册企业微信管理员帐号
    • 2、手机端安装企业微信
    • 3、企业微信 app 处于登录状态
    • 4、联系人能重复
  • 通讯录添加成员用例步骤

    • 打开【企业微信】应用
    • 进入【通讯录】页面
    • 点击右上角搜索图标,进入搜索页面
    • 输入搜索内容(已添加的联系人姓名)
    • 点击展示的第一个联系人(有可能多个),进入联系人详情页面
    • 点击右上角三个点,进入个人信息页面
    • 点击【编辑成员】进入编辑成员页面
    • 点击【删除成员】并确定
  • 验证点:搜索结果页面联系人不存在

用例分析流程图

思路

  • 输入搜索词
  • 等待 x 秒,判断是否有结果
  • 情况一:【无搜索结果】直接设为 xfail
  • 情况二: 有搜索结果

XPath 扩展用法

  • following-sibling 兄弟结点 (选取当前节点之后的所有)
  • preceding-sibling 兄弟结点(选取当前节点之前的所有同级节点)

打造测试框架的需求与价值

  • 1、领域模型适配:封装业务实现,实现业务管理
  • 2、提高效率:降低用例维护成本,提高执行效率
  • 3、增强功能:解决已有框架不满足的情况

Page Object 模式六大原则

实战练习思路

企业微信实战

企业微信实战(PO 练习)

  • 使用 PO 模式实现企业微信添加联系人用例
  • 企业微信添加多个联系人练习

测试框架改进

测试框架改进

  • BasePage 的封装
  • 复用 driver
  • 加入日志
  • 添加截图

参考代码

def draw_rectangle_in_screenshot(self, element, color_rgb=(255, 0, 0)):
  '''在图上上画矩形
  start_point: 起点的坐标,tuple 类型,例如:(100, 100)
  end_point: 终点的坐标,tuple 类型,例如:(200, 200)
  color_rgb: 画线对应的rgb颜色 例如:(0, 255, 0)
  '''
  start_x = element.location.get("x")
  start_y = element.location.get("y")
  end_x = element.size.get("width") + start_x
  end_y = element.size.get("height") + start_y
  start_point = (start_x, start_y)
  end_point = (end_x, end_y)
  img_path = "tmp.png"
  self.screenshot(img_path)

  # 读取图片
  image = cv2.imread(img_path)
  # 画矩形
  cv2.rectangle(image, start_point, end_point, color_rgb, 5)
  # 写到文件中
  cv2.imwrite(img_path, image)
  return img_path

课后练习

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