为QA准备的用以性能测试的java秒表

为QA准备的用以性能测试的java秒表
以前QA做性能测试用手机的秒表,很不方便。前两年为QA做了一个java秒表,记录鼠标两次点击之间的时间差。但是那是基于JInvoke的,JInvoke是收费软件,有试用的时限,用来封装JNI编程的复杂性。最近QA要求我再搞一个完全免费的类似软件。这次用的是jnativehook.
jnativehook可以用来监控键盘和鼠标的事件。底层通过调用不同平台的native code屏蔽了平台相关性。它强大的地方在于,基于jnativehook的软件可以后台运行,没有类似“监控 某窗口内键盘/鼠标事件”的限制。
扩展jnativehook的这个小工具可以记录两次鼠标点击之间的时间差,更确切地说,是记录 第一次鼠标抬起和第二次鼠标按下的时间差。举一个QA使用的例子,比如在UI上点击一个button,等着执行成功弹出的对话框。QA在点击button时,鼠标一抬起,这个小工具就开始计时,当QA看见对话框时,马上在屏幕任意位置点鼠标,软件就记录了这两次点击之间的时间差。当然,这样做还是不够精确,存在人反应时间的误差。
jnativehook项目的主页在 https://code.google.com/p/jnativehook/
我扩展程序的源代码如下:
import org.jnativehook.GlobalScreen;
import org.jnativehook.NativeHookException;
import org.jnativehook.mouse.NativeMouseEvent;
import org.jnativehook.mouse.NativeMouseInputListener;


public  class MouseHook   implements NativeMouseInputListener  {

     static  double startPoint = 0.0;
     /**
     * 
@param  args
     
*/
     public  static  void main(String[] args) {
         try {
            GlobalScreen.registerNativeHook();
    }
     catch (NativeHookException ex) {
            System.err.println("There was a problem registering the native hook.");
            System.err.println(ex.getMessage());

            System.exit(1);
    }

     // Construct the example object.
        MouseHook example =  new MouseHook();

     // Add the appropriate listeners for the example object.
    GlobalScreen.getInstance().addNativeMouseListener(example);

    }

    @Override
     public  void nativeMouseClicked(NativeMouseEvent arg0) {
         //  TODO Auto-generated method stub
        
    }

    @Override
     public  void nativeMousePressed(NativeMouseEvent arg0) {
        System.out.println((System.currentTimeMillis() - startPoint)/1000);
        
    }

    @Override
     public  void nativeMouseReleased(NativeMouseEvent arg0) {
        startPoint = System.currentTimeMillis();        
    }

    @Override
     public  void nativeMouseDragged(NativeMouseEvent arg0) {
         //  TODO Auto-generated method stub
        
    }

    @Override
     public  void nativeMouseMoved(NativeMouseEvent arg0) {
         //  TODO Auto-generated method stub
        
    }

}
可以在eclipse里右键点java 项目,在export...里选择Java目录下的Runnable Jar File
假如你保存的jar文件叫mousehook.jar. 可以直接使用java -jar mousehook.jar启动就可以使用了。

你可能感兴趣的:(为QA准备的用以性能测试的java秒表)