V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
odirus
V2EX  ›  问与答

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

  •  
  •   odirus · 2018-03-16 11:33:24 +08:00 · 1805 次点击
    这是一个创建于 2443 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

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

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