测试过程中,可靠的环境切换方案 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
odirus
V2EX    问与答

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

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

    目前我们测试过程中,无论测试环境、正式环境都是使用的相同 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:2: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     Solana     5509 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 08:02 PVG 16:02 LAX 01:02 JFK 04:02
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86