iOS移动应用模拟定位的非侵入式测试方案

简介: iOS移动应用模拟定位的非侵入式测试方案

背景


像饿了么、口碑这样的LBS应用,在平时业务测试过程中经常会遇到需要修改定位信息的时候,有的时候可能修改一下应用内的地址定位即可满足,但有的时候需要mock手机本身的GPS信息,今天来分享一下如何在iOS真机上模拟GPS定位信息。


方案


由于iOS系统获取定位的方式依赖于系统统一接口,所以模拟的位置会在整个手机生效,不过有些应用具有定位矫正功能比如会根据当前网络IP或者其他手段来做校验,这类应用就需要通过内部集成相应的模拟工具来实现了。


Xcode模拟

苹果的Xcode本身就提供了定位的模拟方案,如下先创建一个空的App项目

image.png

然后在根目录下新建一个gpx文件,文件名可以命名为要模拟的地址


image.png


在谷歌或者百度地图上找到你想要模拟位置的经纬度信息

image.png


image.png


将经纬度信息填到gpx文件中即可


image.png


这时候连接真机运行工程,选择对应想要模拟的地址即可


image.png


此时手机上的定位信息以及被修改,随便打开一个地图应用可以看到修改后的位置

image.png

idevicelocation模拟


idevicelocation是一个命令行工具,可以通过USB或者WIFI连接设备然后直接修改定位信息,而且可以很方便的用于自动化。

GitHub地址:https://github.com/JonGabilondoAngulo/idevicelocation


依赖软件


libimobiledevice
libusbmuxd
libplist
openssl
usbmuxd
make
autoheader
automake
autoconf
libtool
pkg-config
gcc


安装


先把GitHub仓库clone下来,然后执行下面的命令:


./autogen.sh
make
sudo make install

这个过程中可能会遇到找不到openssl库的问题以及libimobiledevice的编译错误,可以执行下面的命令来解决:


If the compiler cant find the openssl libs try this:
  export PATH=/usr/local/opt/openssl/bin:$PATH
  export LD_LIBRARY_PATH=/usr/local/opt/openssl/lib:$LD_LIBRARY_PATH
  export CPATH=/usr/local/opt/openssl/include:$CPATH
  export LIBRARY_PATH=/usr/local/opt/openssl/lib:$LIBRARY_PATH
  export PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig

brew update 
brew uninstall --ignore-dependencies libimobiledevice 
brew uninstall --ignore-dependencies usbmuxd 
brew install --HEAD usbmuxd 
brew unlink usbmuxd 
brew link usbmuxd 
brew install --HEAD libimobiledevice


完成后既可以在命令行中输入经纬度信息执行:


$ idevicelocation 48.856614 2.3522219000000177
相关文章
|
10月前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
5月前
|
自然语言处理 算法 数据可视化
文本聚类效果差?5种主流算法性能测试帮你找到最佳方案
本文探讨了自然语言处理中句子嵌入的聚类技术,使用Billingsmoore数据集(925个英语句子)进行实验。通过生成句子嵌入向量并可视化分析,对比了K-Means、DBSCAN、HDBSCAN、凝聚型层次聚类和谱聚类等算法的表现。结果表明,K-Means适合已知聚类数量的场景,DBSCAN和HDBSCAN适用于未知聚类数量且存在异常值的情况,而谱聚类在句子嵌入领域表现不佳。最终建议根据数据特征和计算资源选择合适的算法以实现高质量聚类。
284 0
文本聚类效果差?5种主流算法性能测试帮你找到最佳方案
|
机器学习/深度学习 人工智能 监控
提升软件质量的关键路径:高效测试策略与实践在软件开发的宇宙中,每一行代码都如同星辰般璀璨,而将这些星辰编织成星系的过程,则依赖于严谨而高效的测试策略。本文将引领读者探索软件测试的奥秘,揭示如何通过精心设计的测试方案,不仅提升软件的性能与稳定性,还能加速产品上市的步伐,最终实现质量与效率的双重飞跃。
在软件工程的浩瀚星海中,测试不仅是发现缺陷的放大镜,更是保障软件质量的坚固防线。本文旨在探讨一种高效且创新的软件测试策略框架,它融合了传统方法的精髓与现代技术的突破,旨在为软件开发团队提供一套系统化、可执行性强的测试指引。我们将从测试规划的起点出发,沿着测试设计、执行、反馈再到持续优化的轨迹,逐步展开论述。每一步都强调实用性与前瞻性相结合,确保测试活动能够紧跟软件开发的步伐,及时适应变化,有效应对各种挑战。
|
11月前
|
监控 测试技术 定位技术
HTTP代理IP响应速度测试方案设计与指标体系
随着数字化发展,网络安全、隐私保护及内容访问自由成为核心需求。HTTP代理因其技术优势成为热门选择。本文介绍HTTP代理IP响应速度测试方案,包括基础性能、稳定性、地理位置、实际应用、安全性测试及监控指标,推荐测试工具,并提供测试结果评估标准。
243 2
|
12月前
|
机器学习/深度学习 算法 UED
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法。本文介绍 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,同时提供 Python 实现示例,强调其在确保项目性能和用户体验方面的关键作用。
412 6
|
Web App开发 定位技术 iOS开发
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
999 1
|
开发工具 Android开发 iOS开发
Android vs iOS:构建移动应用时的关键考量####
本文深入探讨了Android与iOS两大移动平台在开发环境、性能优化、用户体验设计及市场策略方面的差异性,旨在为开发者提供决策依据。通过对比分析,揭示两个平台各自的优势与挑战,帮助开发者根据项目需求做出更明智的选择。 ####
|
机器学习/深度学习 存储 测试技术
从0到1:如何规划一套流量回放自动化测试方案
本文介绍了流量回放自动化测试的完整方法,从企业战略到交付的四个关键环节:Discovery(深度挖掘)、Define(定义目标)、Design(详细设计)和Delivery(交付与反馈)。通过这些步骤,帮助企业优化系统性能和稳定性,确保产品的高质量。
325 4
|
存储 NoSQL 大数据
大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
165 3
|
Android开发 iOS开发 C#
Xamarin:用C#打造跨平台移动应用的终极利器——从零开始构建你的第一个iOS与Android通用App,体验前所未有的高效与便捷开发之旅
【8月更文挑战第31天】Xamarin 是一个强大的框架,允许开发者使用单一的 C# 代码库构建高性能的原生移动应用,支持 iOS、Android 和 Windows 平台。作为微软的一部分,Xamarin 充分利用了 .NET 框架的强大功能,提供了丰富的 API 和工具集,简化了跨平台移动应用开发。本文通过一个简单的示例应用介绍了如何使用 Xamarin.Forms 快速创建跨平台应用,包括设置开发环境、定义用户界面和实现按钮点击事件处理逻辑。这个示例展示了 Xamarin.Forms 的基本功能,帮助开发者提高开发效率并实现一致的用户体验。
475 0

热门文章

最新文章

下一篇
oss云网关配置