App 自动化测试测试实战

霍格沃兹测试开发

ceshiren.com

目录

  • 知识点梳理
  • 测试流程
  • 知识点练习
    • 业务分析
    • 用例设计
    • 编写用例
  • 练习题点评与解析

App 测试的时代背景

  • 按月发布->按周发布->按小时发布

  • 多端发布: Android、iOS、微信小程序、h5

  • 多环境发布: 联调环境、测试环境、预发布环境、线上环境

  • 多机型发布: 众多设备型号、众多系统版本

  • 多版本共存: 用户群体中存在多个不同的版本

  • 历史回归测试任务: 成百上千条业务用例如何回归

  • 总结:加班 + 背锅

UI 自动化测试需要哪些技术

  • App 自动化测试: Appium、Airtest、ATX 等

Appium 介绍

  • 官网: appium.io
  • 跨语言 Java、Python、nodejs 等
  • 跨平台
    • Andoid、iOS
    • Windows、Mac
  • 底层多引擎可切换
  • 生态丰富,社区强大

Appium 知识点梳理

功能测试场景

UI 自动化测试场景

企业微信 app 项目实战

环境准备

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

企业微信实战(添加成员功能)

  • 前提条件:

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

    • 打开【企业微信】应用
    • 进入【通讯录】页面
    • 点击【添加成员】
    • 点击【手动输入添加】
    • 输入【姓名】【手机号】并点击【保存】
  • 验证点:登录成功提示信息

用例分析流程图

总结

  • pytest 用法(setup/teardown等)
  • DesireCapbility的配置
  • 元素定位(id,xpath等)
  • 交互:click(),send_keys()
  • 特殊元素定位:toast 元素 使用xpath
  • 等待方式:隐式等待,显式等待
  • 获取页面源码:driver.get_pagesource
  • 获取元素的属性:get_attribute

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

  • 前提条件:

    • 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