位置测试:为 QA 和开发者模拟坐标

与位置相关的逻辑是最难测试的内容之一:缺陷在某座城市的特定地点才能重现,而团队却在另一座城市。虚拟定位把这种检查变成了可以在工位上反复执行的场景。下面看看它在真机上如何工作,以及局限在哪里。

  1. 准备设备

    开启开发者模式,选择模拟位置信息应用,并授予它位置权限。在测试设备上最好立即解除后台限制,否则系统会在长时间测试进行到一半时杀掉服务。

    测试设备准备清单:开发者模式、选择应用、位置权限、解除后台限制
  2. 建立一组基准位置

    把经常需要的坐标保存到收藏:缺陷报告中的地址、配送区域边界上的点、另一个时区的地址、水面中央的点。一份命名好的可重现位置列表,是可重复测试的基础。

    Mock Location 中的收藏地点:用于可重复测试的一组基准位置
  3. 与团队同步这组位置

    地点列表通过账号在网站和设备之间同步:在网站上创建的位置会立即出现在测试手机上,无需手动复制坐标。设备较多时,这能节省大量时间。

    通过账号在网站和测试设备之间同步位置点
  4. 执行场景并记录结果

    在需要的位置开启模拟,在被测应用中执行场景。该位置会保留在历史中,修复后重新验证时点按一次即可回到这里。

    Mock Location 中的启动历史:点按一次即可回到上次测试的位置

必须检查什么

区域边界:正好位于配送区域或搜索半径边缘的点,是差一错误的经典来源。应用运行期间坐标的变化:许多应用只在启动时请求一次位置,之后不再响应变化。没有坐标:关闭定位和拒绝权限时的表现。

另外还有故意给出的无效数据:海洋中央的点、另一个半球的坐标、没有地址的地点。在这些情况下,应用都不应崩溃。

真机与模拟器

Android Studio 模拟器可以设置坐标和回放路线,对早期开发来说已经足够。但它无法重现最常出问题的情况:特定系统杀后台服务时的表现、弱信号下的运行、获取定位的真实延迟,以及各厂商省电策略的差异。

所以在模拟器上通过的场景,值得在真机上再验证一遍,尤其是被测应用在后台使用位置时。

测试中的模拟来源标记

Android 会给来自测试提供程序的坐标加上标记。对 QA 来说,这不是障碍,而是一个单独的测试点:如果被测应用必须拒绝模拟坐标,虚拟定位正是确认这项检查真正生效、而不只是写在代码里的方法。

如果应用必须接受系统提供的任何坐标,请确认它不会因为这个标记而意外丢弃坐标。

测试后台使用位置的应用

对于在后台跟踪移动的应用,长时间测试很重要:开启模拟,把应用切到后台,让设备运行几个小时。这样能发现五分钟手动测试中看不到的问题:丢失更新订阅、错误累积、系统停止服务。

通知栏中的常驻通知可以作为指示:只要它还在,模拟就在运行。

Mock Location — 免 root 的 Android 虚拟定位

免费,不经 Google Play 分发。安装前可以核对文件校验和。

下载 APK