GPS模拟器是向应用或设备提供选定位置数据的软件或测试环境。 开发人员和 QA 团队使用它来测试地图、地理围栏、交付区域、路线和许可状态,而无需前往每个位置。
移动图钉是最简单的部分。 有用的测试还可以控制位置何时发生变化、应用程序拥有什么权限以及应遵循什么结果。 一种工具只能设置坐标。 另一种可能会根据时间和速度重播路线。
什么是GPS模拟器?
移动测试很少需要模拟 GPS 无线电本身。 它需要向应用程序提供已知的位置更新并观察响应。 输入通常以纬度和经度开始。 涉及旅行的测试可能还需要高度、准确性、速度、方向以及随时间变化的一系列点。
该输入可以来自移动模拟器、模拟位置应用程序、测试 API 或远程设备平台。 实现发生了变化,但测试工作保持不变。
GPS模拟器也是特定 Android 应用程序的名称。 本页讨论更广泛的技术类别,而不是单个产品。
电话可以结合卫星、Wi-Fi、蜂窝网络和其他输入。 GPS模拟器仍然是常见的搜索词,尽管模拟设备位置通常更准确。
GPS模拟器、安卓模拟器和模拟位置应用
这就是团队经常选择错误工具的地方。 他们需要位置输入,但设置了整个虚拟设备,或者当模拟位置应用程序出现故障时,他们会责怪模拟器。
| 术语 | 它是什么 | 它运行在哪里 | 主要角色 |
|---|---|---|---|
| GPS模拟器 | 提供模拟位置数据的工具或功能 | 模拟器、设备、测试框架或设备云 | 测试位置感知行为 |
| 安卓模拟器 | 运行虚拟 Android 设备的软件 | 计算机或托管环境 | 开发和测试 Android 应用程序 |
| 模拟位置应用程序 | 选择 Android 应用作为设备位置源进行测试 | 物理或虚拟 Android 设备 | 提供测试坐标或移动 |
安卓模拟器 可能包括位置控件,但它还提供 Android、存储、屏幕、应用程序状态、网络访问和模拟硬件。 当测试需要虚拟设备而不仅仅是不同的坐标时使用它。
模拟位置应用程序的工作范围较小。 Android 开发者选项允许用户选择已安装的应用程序作为测试的位置源。 当设备环境保持不变时,这通常是更简单的选择。
GPS模拟器如何工作?
可靠的位置测试遵循从输入到结果的数据。
- 测试仪定义一个点或路线。
- 该工具通过支持的测试接口提交位置值。
- 设备位置提供商将更新发送到应用程序。
- 测试人员根据预期行为检查结果。
该应用程序仍然遵循其许可和更新逻辑。 它可能接收精确访问、近似访问、前台更新、后台更新或什么也不接收。 在地图上看到新的图钉只能证明其中一个部分有效。
安卓模拟器位置控件 支持单个点、保存的路线以及 GPX 或 KML 导入。 当故障取决于移动、边界交叉或更新顺序时,路线回放是更好的测试。
在 Android 实体设备上,开发者选项中提供了 模拟位置应用设置。 来自 Android 测试提供商的位置可以标记为模拟数据。 在当前的 Android 版本上,应用可以通过 Location.isMock() 检查该状态。
Xcode 测试计划还可以使用选定的位置或 GPX 旅程。 UI测试可以通过XCTest设置模拟位置,无需修改设备。
GPS模拟器可以模拟什么?
更多字段并不会自动进行更好的测试。 使用应用程序实际读取的字段。 常见的输入包括:
- 纬度和经度
- 高度
- 预计准确度
- 速度
- 轴承或路线
- 时间戳
- 保存的静态点
- 由多个点组成的路线
- GPX 或 KML 播放
静态点可以回答在哪里。 路线还测试时间和顺序。
| 输入 | 好的测试用例 | 主要限制 |
|---|---|---|
| 静点 | 附近搜索、地图居中、送货区域、区域屏幕 | 不测试运动或事件顺序 |
| 路线回放 | 地理围栏、行程跟踪、导航、健身活动 | 遵循准备好的数据,可能会错过真实的信号噪声 |
路线时间很重要。 应用程序可以根据更新顺序计算距离、到达时间或边界交叉点。
GPS模拟器有什么用?
在选择位置之前设置预期结果。 否则,测试就会变成没有明确通过条件的屏幕浏览。
- 地图和附近搜索: 检查地图中心是否正确以及所选点是否显示附近的商店、司机或服务。
- 地理围栏和交付区域: 边界内部、外部和直接在边界上的测试位置。 路线回放还可以查看进入和退出事件。
- 行程和移动: 重现步行或驾驶路线以检查距离、进度、预计到达和活动顺序。
- 位置权限: 比较精确、近似、拒绝和后台限制状态。 有效的坐标对缺乏接收权限的应用程序没有帮助。
- 区域产品行为: 查看位置感知内容、服务区域或支持案例。 其他区域信号仍需要单独检查。
- 回归测试: 代码更改后运行相同的点和路线。 受控输入使故障更容易比较。
路线重播为每个构建提供相同的基线。 然后,现场测试可以重点关注需要真实运动、网络或传感器的故障。
GPS 位置与 IP 位置
区域测试经常失败,因为团队将位置视为一种设置。 设备位置、网络位置、系统设置和帐户区域可以指向不同的地方。
| 信号 | 它来自哪里 | 可能影响什么 | 它不保证什么 |
|---|---|---|---|
| GPS 或设备位置 | 设备位置提供者 | 地图、地理围栏、附近结果、路线跟踪 | 网络区域、帐户国家/地区或商店可用性 |
| IP位置 | 网络出口地址和地理位置数据库 | 服务器路由、区域内容、安全检查 | 设备报告的坐标 |
| 区域设置和时区 | 系统或应用程序设置 | 语言、日期格式和基于时间的行为 | GPS和IP协议 |
| 账户或商店区域 | 服务帐户和市场设置 | 目录、计费和区域可用性 | 当前设备位置 |
IP地址 可以建议网络区域,但它不是 GPS 读数。 两个地理位置数据库也可能将相同的地址放置在不同的城市。
移动代理更改网络路由和退出IP。 它不会向应用程序提交纬度和经度。 需要两个信号的测试应该验证每个信号,而不是假设它们匹配。
GPS 模拟器的优点和局限性
GPS 仿真因其可重复性而在回归测试中占有一席之地。 同样的控制也是它的极限。 准备的数据并不能再现所有现场条件。
| 益处 | 相关限制 |
|---|---|
| 每次构建后重复相同的坐标 | 真实位置数据可能会漂移或延迟到达 |
| 无需出差即可测试远距离地点 | 所选点不会重现本地网络或帐户设置 |
| 自动执行地理围栏和路线检查 | 自动化仅涵盖团队创建的案例和断言 |
| 重现报告的支持问题 | 原始设备可能具有不同的权限、传感器和应用程序状态 |
| 快速重置测试 | 干净的测试环境可能隐藏长期使用带来的问题 |
Android 模拟位置可以被识别为模拟数据。 有些应用程序拒绝它们或遵循不同的代码路径。 因此,通过的模拟器测试很少说明该应用程序将如何处理物理设备上的相同坐标。
本地模拟器、虚拟安卓手机和实体手机都可以接收位置数据。 根据对版本重要的硬件、传感器、网络和应用程序检查来选择它们。
MoreLogin 在其 云手机位置设置 中记录基于 IP 的自动匹配和手动纬度和经度输入。 支持取决于云手机版本和型号。 在将设置应用到更多设备之前,我会测试一个完整的应用程序流程。
如何计划位置测试
从应该改变的行为开始。 然后使用可以证明这一点的最小输入集。 添加更多模拟信号会使失败的测试更难诊断。
| 测试尺寸 | 最小有用案例 |
|---|---|
| 位置 | 目标区域的内部、外部和边界 |
| 移动 | 静止、正常路线和中断路线 |
| 准确性 | 精确、低准确度且陈旧的数据 |
| 允许 | 精确位置、近似位置、拒绝授权与后台访问受限 |
| 区域信号 | GPS、IP、区域设置、时区和帐户区域分别检查 |
| 环境 | 用于实现可重复性的模拟器和用于关键验证的授权真实设备 |
记录坐标、路线、时间、权限状态、应用版本、设备环境。 当测试失败时,找到该决定背后的输入。 送货应用程序可以使用 GPS 来获取地图,并使用帐户地址来获取服务资格。
我会使用模拟进行可重复的逻辑和回归测试。 当结果取决于传感器、移动网络、后台行为或特定于硬件的代码时,我仍然会在代表性的真实设备上验证版本。
GPS模拟器常见问题解答
简单来说什么是 GPS模拟器?
它是一个为应用程序提供受控位置数据以进行测试的工具。 它可以设置一个位置,或者在支持时沿着路线重放运动。
GPS模拟器与安卓模拟器相同吗?
不。 安卓模拟器运行完整的虚拟 Android 设备。 GPS 仿真是一项功能,可以向安卓模拟器、物理设备或其他测试环境提供位置数据。
GPS模拟器可以模拟运动吗?
某些工具可以重播在界面中创建的路线或从 GPX 或 KML 文件导入的路线。 它们还可以提供速度、高度、方向和计时数据。 支持因工具而异。
GPS模拟器是否会更改IP地址?
不。 GPS数据来自设备位置层。 IP地址属于网络连接。 代理可以更改网络出口,但不会自动更改设备报告的位置。
应用程序可以判断某个位置是模拟的吗?
他们也许能够。 通过测试提供商提供的 Android 位置可以标记为模拟数据。 其他检查取决于应用程序、平台和测试环境。 没有任何工具可以保证每个应用程序将如何对位置进行分类。
GPS模拟器可以替代真实设备测试吗?
不完全。 它对于可重复的逻辑、权限、地理围栏和路线测试非常有效。 当硬件、传感器、移动网络、性能或现场条件可能改变结果时,代表性的真实设备仍然很重要。

ZH
