@RegistClass(title="suz size", name="suz")         
    @JRobinPrintor(Factory="File",identifier="suzsize")         
    @CollectStrategy("local")         
    public class suzRegManager{         
      @add        
      @id("suz")         
      @u("AVE")         
      int suzPoolsize = 0;         
      //.... hide sth         
               
      public void native(){               
           //添加一个变化         
           antiPoolsize = antiPool.size();         
           //hide sth              
      }         
    }  

    <injection-configuration></injection-configuration> 
      <group></group>  
        "anti" class="com.intec.foo.AntiRegManager" />         
        "suz" class="com.intec.module.suzRegManager" />  

这样可以把2条数据曲线保存在一个可视化的图形中,这样2者之间可以有一个非常直观的比较。

其他有意义的测试功能

1:增加测试的曲线的夸张力 通过@addLease(fuc="+",value="10")  这条Annotation的作用是把测试获取的数据全部+10以后在存储起来。

2:添加统计 通过@reset(fuc="+","AVE")

现在还存在的问题

1:由于是使用动态代理的模式,所以只能介入到方法这一层。并且数据采集是完全针对接口的,目前工作环境是对业务接口的性能提供测试。所以功能上是非常单一的。我考虑过使用cglib来提供字段级别的数据识别。

2:统计数据存在一些人为因素影响到事实的数据,在表现上也有误差。

3:需要提供数值类型的数据,如Collection为不合法,Collection.size()是合法的,但是用户必须提供一种类似 int size = xx.size()的方式,这样你的类会得到一个warning,无法做到完全的透明插入。

4:设计上的相对还是比较粗糙,特别在异常的处理上有一些问题,长时间运行会有一些问题。