V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
andrewzhou
V2EX  ›  Java

[Java]测试

  •  
  •   andrewzhou · 2016-09-03 13:38:01 +08:00 · 3214 次点击
    这是一个创建于 2988 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在做的项目测试超级慢,主要原因是要大量访问外部网络获得 json 数据。一个测试下来需要两个小时。 分析了一下 1 ,如果网络访问稳定,测试时间会缩短非常多 2 ,另外获取的 json 基本上内容不会变化(暂时先认为不会变好了) 3 ,访问网络是被测试程序主动调用的,并且是通过继承一个抽象类,抽象类实现了网络访问部分的功能( doGet / doPost ),子类是对获取数据的解析。

    现在是想在测试的时候,替换掉 doGet / doPost 函数,看本地是否存储之前已经得到的数据,如果有直接返回,如果没有就继续访问网络。 本来以为 PowerMock 之类的可以做到但是看了半天没找到能满足我需求的 api 。 求助各位大神是不是有其他工具或者是 PowerMock 能够做到这个功能。

    doGet / doPost 这部分不是测试的目标,但是不希望修改这部分代码, 另外继承自抽象类的具体之类比较多 :|, 每个之类都会构造大量实例。

    9 条回复    2016-09-04 15:57:21 +08:00
    crytis
        1
    crytis  
       2016-09-03 15:38:52 +08:00 via iPhone
    要不然把数据写死,写到代码里。要不然弄一个 mock 接口, url 写到不同的配置文件里
    andrewzhou
        2
    andrewzhou  
    OP
       2016-09-03 15:43:19 +08:00
    @crytis 数据量预估有 100M + 而且会定期更新, mock 接口 url 写到不同的配置文件是什么意思。 我现在是想在本地搞一个类似于缓存的东西,并且有选择的截断网络访问直接从缓存出内容。来加快测试速度,之前把 url 改了写了一个类似于代理的东西速度加快了很多,但是这种方式要改被测试部分
    crytis
        3
    crytis  
       2016-09-03 15:59:46 +08:00 via iPhone
    @andrewzhou 一个接口 100MB ?
    andrewzhou
        4
    andrewzhou  
    OP
       2016-09-03 16:15:19 +08:00
    @crytis 测试的时候需要从网络获取的数据总量有 100M+, 这个就是头疼的地方 网络很慢,容易超时,拿到的数据也不一定完整,导致测试跑一遍花很多时间
    andrewzhou
        5
    andrewzhou  
    OP
       2016-09-03 16:45:50 +08:00
    看了半天文档 似乎 JMockit Delegates: specifying custom results 能做这件事,继续研究
    johnzh
        6
    johnzh  
       2016-09-03 17:02:18 +08:00
    搜下 wiremock 或者 mock server 看看呢
    zacard
        7
    zacard  
       2016-09-03 20:14:45 +08:00 via iPhone
    你需要 mockito
    zjqzxc
        8
    zjqzxc  
       2016-09-04 01:33:39 +08:00
    改测试机上的 hosts 指向本机或者一个局域网的机器?
    chocotan
        9
    chocotan  
       2016-09-04 15:57:21 +08:00
    mockito+1
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2718 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 11:55 · PVG 19:55 · LAX 03:55 · JFK 06:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.