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

霍格沃兹测试开发

ceshiren.com

目录

  • 企业微信实战 - 打卡功能
  • 打造测试框架的需求与价值
  • PO 六大原则
  • 企业微信实战 - PO 封装
  • 框架改进方案

企业微信实战

环境准备

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

企业微信实战(打卡功能)

  • 前提条件:

    • 1、提前注册企业微信管理员帐号
    • 2、手机端安装企业微信
    • 3、企业微信 app 处于登录状态
  • 实现打卡功能

    • 打开【企业微信】应用
    • 进入【工作台】页面
    • 点击【打卡】
    • 选择【外出打卡】tab
    • 点击【第 N 次打卡】
  • 验证点:提示【外出打卡成功】

总结

  • DesireCapbility 高级用法(跳过设备初始化、设置等待时长)
  • swipe 封装滑动操作

参考代码 - DesireCapability 配置

caps["noReset"] = "true"
# 等待页面空闲的时间
caps['settings[waitForIdleTimeout]'] = 0   
caps['skipServerInstallation'] = ‘true'  # 跳过 uiautomator2 server的安装
caps['skipDeviceInitialization'] = ‘true'    # 跳过设备初始化
caps['dontStopAppOnReset'] = ‘true'    # 启动之前不停止app

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

  • 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 封装