位置测试:为 QA 和开发者模拟坐标
与位置相关的逻辑是最难测试的内容之一:缺陷在某座城市的特定地点才能重现,而团队却在另一座城市。虚拟定位把这种检查变成了可以在工位上反复执行的场景。下面看看它在真机上如何工作,以及局限在哪里。
准备设备
开启开发者模式,选择模拟位置信息应用,并授予它位置权限。在测试设备上最好立即解除后台限制,否则系统会在长时间测试进行到一半时杀掉服务。

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

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

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

必须检查什么
区域边界:正好位于配送区域或搜索半径边缘的点,是差一错误的经典来源。应用运行期间坐标的变化:许多应用只在启动时请求一次位置,之后不再响应变化。没有坐标:关闭定位和拒绝权限时的表现。
另外还有故意给出的无效数据:海洋中央的点、另一个半球的坐标、没有地址的地点。在这些情况下,应用都不应崩溃。
真机与模拟器
Android Studio 模拟器可以设置坐标和回放路线,对早期开发来说已经足够。但它无法重现最常出问题的情况:特定系统杀后台服务时的表现、弱信号下的运行、获取定位的真实延迟,以及各厂商省电策略的差异。
所以在模拟器上通过的场景,值得在真机上再验证一遍,尤其是被测应用在后台使用位置时。
测试中的模拟来源标记
Android 会给来自测试提供程序的坐标加上标记。对 QA 来说,这不是障碍,而是一个单独的测试点:如果被测应用必须拒绝模拟坐标,虚拟定位正是确认这项检查真正生效、而不只是写在代码里的方法。
如果应用必须接受系统提供的任何坐标,请确认它不会因为这个标记而意外丢弃坐标。
测试后台使用位置的应用
对于在后台跟踪移动的应用,长时间测试很重要:开启模拟,把应用切到后台,让设备运行几个小时。这样能发现五分钟手动测试中看不到的问题:丢失更新订阅、错误累积、系统停止服务。
通知栏中的常驻通知可以作为指示:只要它还在,模拟就在运行。