目前我们测试过程中,无论测试环境、正式环境都是使用的相同 APP (相同的包)
在测试的时候,把手机 DNS 切换为我们自建的 DNS,然后通过一些列的代理、重定向策略之后,就能够自动访问我们的测试环境,APP 不需要进行任何的变化。
但问题是: 有些手机设定了我们自建的 DNS,依然会由 DNS 缓存、使用其他 DNS 的问题,这种情况就让我们的测试同学很烦,因为一时连接到正式环境,一时连接到测试环境(有时候手机也会自动切换 WIFI,dns 只能设置到某个 WIFI 上)
所以现在: 求一个更加可靠、周全的测试方案,前提是不修改 APP,目的是希望测试完之后,直接可以发布,避免在代码修改过程中出现人为失误。
1
mmnnyycc 2018-03-16 11:56:31 +08:00
mark
|
2
tomczhen 2018-03-16 12:25:20 +08:00
1. 通过 CI 平台构建独立的包。
2. 在网关劫持,而不是修改客户端 DNS 服务地址,这样至少内网环境没有问题。 3. 判断特定用户设备标识进行,通过 API Gataway 切换。 |
3
tomczhen 2018-03-16 12:28:53 +08:00
作为一个还没找到工作的运维,我应该尽量少回答这种问题的,Orz。
|
4
odirus OP @tomczhen #2
CI 构建过程汇中可能会出问题,我们 APP 里面包含大量资源,有一个环节是需要手动处理资源问题的。 网关劫持这个我没有好的可实施方案(如果有直接符合条件的设备更好,毕竟我不是运维、客户端,只是帮助他们实施,没太多时间去配置),有没有进一步的讲解?谢谢 标识符是不确定的,iOS 里面会变化 |
6
odirus OP 之前买过一款极路由,能够劫持域名。。。。但有些设备还是非主流,就是不按照套路出牌
|
7
tomczhen 2018-03-16 12:33:59 +08:00
1. 既然手动能处理就有规则,既然有规则为啥不能写成脚本?
2. 没有进一步的讲解。 3. 通过用户标识判断,如果是 jwt 包含用户 id 的话,都不需要访问 app 数据库,白名单机制就行。 |
8
odirus OP |
9
odirus OP 来来来,还有没有其他同学给个 idea,其实我现在有一个 idea 就是让测试设备全部走 VPN,但还想学习更多姿势。
|
10
widdy 2018-03-16 12:41:43 +08:00
两种类型的手机!!!
|
14
codermagefox 2018-03-16 13:02:39 +08:00
小前端表示,当时帮测试解决这个问题是用极路由,可以设置 DNS 和域名劫持,并在更新的时候强制刷新缓存。当时写了一个 Selenium 脚本做网页端操作,完成自动化切换。效果还行 8。
|
15
zvving 2018-03-16 15:43:17 +08:00
客户端代码中埋进去环境配置的代码不行吗,默认线上,app 内可以手动操作修改就好
|
16
hpeng 2018-03-16 15:45:16 +08:00 via iPhone
1.客户端黑科技 2.vpn 。
|
17
chairuosen 2018-03-16 15:46:46 +08:00
app 内关于页隐藏菜单入口,一点切环境
|
18
lowworker 2018-03-16 21:12:28 +08:00
可以利用 https://github.com/Meituan-Dianping/walle,支持在打包好后的 apk 里插入渠道信息外的其他信息。直接在代码里写好识别环境的逻辑,apk 打包好后,用 walle 添加用来区分环境的信息,打出测试和线上的包,测试的测完,直接发线上的包就行
|