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
相关文章
|
1月前
|
机器学习/深度学习 人工智能 监控
提升软件质量的关键路径:高效测试策略与实践在软件开发的宇宙中,每一行代码都如同星辰般璀璨,而将这些星辰编织成星系的过程,则依赖于严谨而高效的测试策略。本文将引领读者探索软件测试的奥秘,揭示如何通过精心设计的测试方案,不仅提升软件的性能与稳定性,还能加速产品上市的步伐,最终实现质量与效率的双重飞跃。
在软件工程的浩瀚星海中,测试不仅是发现缺陷的放大镜,更是保障软件质量的坚固防线。本文旨在探讨一种高效且创新的软件测试策略框架,它融合了传统方法的精髓与现代技术的突破,旨在为软件开发团队提供一套系统化、可执行性强的测试指引。我们将从测试规划的起点出发,沿着测试设计、执行、反馈再到持续优化的轨迹,逐步展开论述。每一步都强调实用性与前瞻性相结合,确保测试活动能够紧跟软件开发的步伐,及时适应变化,有效应对各种挑战。
|
23天前
|
Web App开发 定位技术 iOS开发
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
24 1
|
1月前
|
开发工具 Android开发 iOS开发
Android vs iOS:构建移动应用时的关键考量####
本文深入探讨了Android与iOS两大移动平台在开发环境、性能优化、用户体验设计及市场策略方面的差异性,旨在为开发者提供决策依据。通过对比分析,揭示两个平台各自的优势与挑战,帮助开发者根据项目需求做出更明智的选择。 ####
|
1月前
|
机器学习/深度学习 存储 测试技术
从0到1:如何规划一套流量回放自动化测试方案
本文介绍了流量回放自动化测试的完整方法,从企业战略到交付的四个关键环节:Discovery(深度挖掘)、Define(定义目标)、Design(详细设计)和Delivery(交付与反馈)。通过这些步骤,帮助企业优化系统性能和稳定性,确保产品的高质量。
55 4
|
1月前
|
存储 NoSQL 大数据
大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
35 3
|
2月前
|
Java 测试技术 Android开发
Android性能测试——发现和定位内存泄露和卡顿
本文详细介绍了Android应用性能测试中的内存泄漏与卡顿问题及其解决方案。首先,文章描述了使用MAT工具定位内存泄漏的具体步骤,并通过实例展示了如何分析Histogram图表和Dominator Tree。接着,针对卡顿问题,文章探讨了其产生原因,并提供了多种测试方法,包括GPU呈现模式分析、FPS Meter软件测试、绘制圆点计数法及Android Studio自带的GPU监控功能。最后,文章给出了排查卡顿问题的四个方向,帮助开发者优化应用性能。
178 4
Android性能测试——发现和定位内存泄露和卡顿
|
1月前
|
网络协议 Ubuntu 前端开发
好好的容器突然起不来,经定位是容器内无法访问外网了?测试又说没改网络配置,该如何定位网络问题
本文记录了一次解决前端应用集成到主应用后出现502错误的问题。通过与测试人员的沟通,最终发现是DNS配置问题导致的。文章详细描述了问题的背景、沟通过程、解决方案,并总结了相关知识点和经验教训,帮助读者学习如何分析和定位网络问题。
104 0
|
3月前
|
测试技术 Linux 虚拟化
iOS自动化测试方案(五):保姆级VMware虚拟机安装MacOS
详细的VMware虚拟机安装macOS Big Sur的保姆级教程,包括下载VMware和macOS镜像、图解安装步骤和遇到问题时的解决方案,旨在帮助读者顺利搭建macOS虚拟机环境。
155 3
iOS自动化测试方案(五):保姆级VMware虚拟机安装MacOS
|
2月前
|
缓存 监控 算法
软件测试中的性能瓶颈定位与优化策略
性能瓶颈,如同隐藏在系统深处的“拦路虎”,悄无声息地制约着软件的表现。本文将揭示如何通过一系列科学方法,识别并消除这些障碍,从而显著提升软件性能,确保用户享受到流畅无阻的数字体验。
|
3月前
|
测试技术 数据安全/隐私保护 iOS开发
iOS自动化测试方案(四):保姆级搭建iOS自动化开发环境
iOS自动化测试方案的第四部分,涵盖了基础环境准备、iPhone虚拟机设置、MacOS虚拟机与iPhone真机的连接,以及扩展问题和代码示例,确保读者能够顺利完成环境搭建并进行iOS自动化测试。
308 0
iOS自动化测试方案(四):保姆级搭建iOS自动化开发环境
下一篇
无影云桌面