测试过程中,可靠的环境切换方案

2018-03-16 11:33:24 +08:00
 odirus

目前我们测试过程中,无论测试环境、正式环境都是使用的相同 APP (相同的包)

在测试的时候,把手机 DNS 切换为我们自建的 DNS,然后通过一些列的代理、重定向策略之后,就能够自动访问我们的测试环境,APP 不需要进行任何的变化。

但问题是: 有些手机设定了我们自建的 DNS,依然会由 DNS 缓存、使用其他 DNS 的问题,这种情况就让我们的测试同学很烦,因为一时连接到正式环境,一时连接到测试环境(有时候手机也会自动切换 WIFI,dns 只能设置到某个 WIFI 上)

所以现在: 求一个更加可靠、周全的测试方案,前提是不修改 APP,目的是希望测试完之后,直接可以发布,避免在代码修改过程中出现人为失误。

1831 次点击
所在节点    问与答
18 条回复
mmnnyycc
2018-03-16 11:56:31 +08:00
mark
tomczhen
2018-03-16 12:25:20 +08:00
1. 通过 CI 平台构建独立的包。
2. 在网关劫持,而不是修改客户端 DNS 服务地址,这样至少内网环境没有问题。
3. 判断特定用户设备标识进行,通过 API Gataway 切换。
tomczhen
2018-03-16 12:28:53 +08:00
作为一个还没找到工作的运维,我应该尽量少回答这种问题的,Orz。
odirus
2018-03-16 12:30:25 +08:00
@tomczhen #2

CI 构建过程汇中可能会出问题,我们 APP 里面包含大量资源,有一个环节是需要手动处理资源问题的。

网关劫持这个我没有好的可实施方案(如果有直接符合条件的设备更好,毕竟我不是运维、客户端,只是帮助他们实施,没太多时间去配置),有没有进一步的讲解?谢谢

标识符是不确定的,iOS 里面会变化
odirus
2018-03-16 12:32:37 +08:00
@tomczhen #3 你是哪个城市?我们公司有运维的需求,坐标成都
odirus
2018-03-16 12:33:20 +08:00
之前买过一款极路由,能够劫持域名。。。。但有些设备还是非主流,就是不按照套路出牌
tomczhen
2018-03-16 12:33:59 +08:00
1. 既然手动能处理就有规则,既然有规则为啥不能写成脚本?
2. 没有进一步的讲解。
3. 通过用户标识判断,如果是 jwt 包含用户 id 的话,都不需要访问 app 数据库,白名单机制就行。
odirus
2018-03-16 12:36:29 +08:00
@tomczhen #7 脚本不能处理动画等二进制资源的合并,有时候需要人工处理

具体细节就是需要人工干预,我不是开发客户端的,只是帮测试组合客户端组的同学想办法
odirus
2018-03-16 12:38:39 +08:00
来来来,还有没有其他同学给个 idea,其实我现在有一个 idea 就是让测试设备全部走 VPN,但还想学习更多姿势。
widdy
2018-03-16 12:41:43 +08:00
两种类型的手机!!!
privil
2018-03-16 12:43:33 +08:00
@tomczhen 你找了挺久的了……
odirus
2018-03-16 12:43:47 +08:00
@widdy #10 有考虑过,不过真的拿不出这么多手机来,小公司嘛
tomczhen
2018-03-16 12:45:45 +08:00
@privil 年前拿到一个 offer 作死拒掉了,果然是不作死就不会死¯\_(ツ)_/¯
codermagefox
2018-03-16 13:02:39 +08:00
小前端表示,当时帮测试解决这个问题是用极路由,可以设置 DNS 和域名劫持,并在更新的时候强制刷新缓存。当时写了一个 Selenium 脚本做网页端操作,完成自动化切换。效果还行 8。
zvving
2018-03-16 15:43:17 +08:00
客户端代码中埋进去环境配置的代码不行吗,默认线上,app 内可以手动操作修改就好
hpeng
2018-03-16 15:45:16 +08:00
1.客户端黑科技 2.vpn 。
chairuosen
2018-03-16 15:46:46 +08:00
app 内关于页隐藏菜单入口,一点切环境
lowworker
2018-03-16 21:12:28 +08:00
可以利用 https://github.com/Meituan-Dianping/walle,支持在打包好后的 apk 里插入渠道信息外的其他信息。直接在代码里写好识别环境的逻辑,apk 打包好后,用 walle 添加用来区分环境的信息,打出测试和线上的包,测试的测完,直接发线上的包就行

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/438595

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX