前言

搞自动化持续集成,只回归生产环境是远远不够的,各种测试环境都回归到位才能保障上线后功能正确性。回归测试环境时,同一个测试手机可能根据测试用例执行环境不同,而进行不同 host 切换,来满足在不同环境下回归验证。

常规方式:Charles 和 Fiddler 设置代理的方式来实现切换 Host

以 Charles 为例,下载安装 Charles

1,设置 Charles 端口如下操作:

2,设置代理如下操作:

配置自己要拦截的 url 和监听端口

3,手机网络设置

代理主机名就是 Charles 宿主机 IP,代理服务的端口即为 Charles 设置的端口

4,用 SwitchHosts 设置切换到你想要测试的环境

这样就可以用这个手机或者模拟器在想要要的环境进行测试了

1,执行命令 sudo chmod -R 777 hosts 设置 hosts 读写权限,
下载 Charles 安装证书

2,设置 Charles 端口。方法:Proxy -> Proxy Setting,设置 Port

3,IOS 模拟器代理设置
a,设置开启 macOS Proxy 代理。方法:Proxy -> macOS Proxy

b,把想监听的 URL 设置开启 Enable,不想监听的设置 Disable

c,设置完成后想要代理生效,重启 Charles 和模拟器,一定要先打开 Charles 再打开模拟器

4,IOS 真机代理设置
a,打开手机,设置->无线局域网下的 HTTP 代理

b,IOS 手机安装信任证书 ,在 safari 浏览器中输入 chls.pro/sll ,访问并安装信任证书

常规方式切换 Host 的弊端

安卓端解决的二策略


@echo off
setlocal enabledelayedexpansion
set env=%1
call adb root
call adb remount
call adb shell "mount -o rw,remount /system"
if "%env%"=="0" (
call adb push D:\newauto\config\testhosts /system/etc/hosts
)
exit

这样就不需要开启代理,同一个手机就可以根据测试任务设置的环境参数不同,回归不同环境下的测试任务了。
分享一下自己解决这个问题的方法,反哺一下和我一样 low 的兄弟们。方法比较挫,也许不能解决您的问题,轻喷谢谢!

IOS 策略?

各位大神有没有好的便捷的方法改变 IOS 的 host,来支持灵活切换 host,达到高效率复用手机,灵活回归不同环境的目的???
欢迎留言讨论不吝赐教您的骚方案

后记

感谢社区,给予很多精神食粮。解决问题的方法,就像平 X 的妹子的 R 沟,挤一挤总归还是有点的,多来论坛逛逛,多多学习,多动手实践,总会有解决的方向。


↙↙↙阅读原文可查看相关链接,并与作者交流