第14章7节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-装备ViewServer-获取版本号 4
2016-01-13 15:54
357 查看
到此为止我们就分析完如何发送”SERVER”命令到ViewServer以获得其版本号的,完了吗?还没有了,别忘了我们除了要获得ViewServer的版本号外,还需要获得ViewServer当前使用的协议版本了,”代码14-7-4 DeviceBridge - loadViewServerInfo获取ViewServer版本”只是loadViewServerInfo的一部分而已。现在我们往下分析第2部分,但它是怎么去获得协议版本的: 260 public static ViewServerInfo loadViewServerInfo(IDevice device) { 261 int server = -1; 262 int protocol = -1; ... //获得ViewServer版本号部分略 278 connection = null; 279 try { 280 connection = new DeviceConnection(device); 281 connection.sendCommand("PROTOCOL"); //$NON-NLS-1$ 282 String line = connection.getInputStream().readLine(); 283 if (line != null) { 284 protocol = Integer.parseInt(line); 285 } 286 } ... } 代码14-7-8 DeviceBridge - loadViewServerInfo获取协议版本 可以看到,其实流程跟代码14-7-4一模一样,只是最终发送给ViewServer的命令是代表获取协议的”PROTOCOL”而非”SERVER”而已。最后我们看在获得这些版本号之后loadViewServerInfo是如何处理的: 260 public static ViewServerInfo loadViewServerInfo(IDevice device) { 261 int server = -1; 262 int protocol = -1; ... 296 ViewServerInfo returnValue = new ViewServerInfo(server, protocol); 297 synchronized (sViewServerInfo) { 298 sViewServerInfo.put(device, returnValue); 299 } 300 return returnValue; 301 } 代码14-7-9 DeviceBridge - loadViewServerInfo收尾 最后收尾阶段做两个事情:第一件:根据获得协议创建ViewServerInfo实例
第二件:把这个实例保存起来到sViewServerInfo这个HashMap里面,跟上面提到的sDevicePortMap一样,还是用代表设备的Device类的实例做为键,而值是刚创建的这个ViewServerInfo实例
这里我们先看看ViewServerInfo这个类,其实它是DeviceBridge的内部类: 59 public static class ViewServerInfo { 60 public final int protocolVersion; 61 public final int serverVersion; 62 ViewServerInfo(int serverVersion, int protocolVersion) { 63 this.protocolVersion = protocolVersion; 64 this.serverVersion = serverVersion; 65 } 66 } 代码14-7-10 DeviceBridge - ViewServerInfo 里面就两个成员变量一个构造函数完了,两个成员类变量分别保存的是我们刚才获得的ViewServer版本号和ViewServer协议版本号。
第二件:把这个实例保存起来到sViewServerInfo这个HashMap里面,跟上面提到的sDevicePortMap一样,还是用代表设备的Device类的实例做为键,而值是刚创建的这个ViewServerInfo实例
这里我们先看看ViewServerInfo这个类,其实它是DeviceBridge的内部类: 59 public static class ViewServerInfo { 60 public final int protocolVersion; 61 public final int serverVersion; 62 ViewServerInfo(int serverVersion, int protocolVersion) { 63 this.protocolVersion = protocolVersion; 64 this.serverVersion = serverVersion; 65 } 66 } 代码14-7-10 DeviceBridge - ViewServerInfo 里面就两个成员变量一个构造函数完了,两个成员类变量分别保存的是我们刚才获得的ViewServer版本号和ViewServer协议版本号。
相关文章推荐
- 老李性能测试分享
- 你想不到:咖啡馆里上工具课
- 移动端自动化测试开课了
- 老李分享:什么是好战略
- 性能调优案例分享:Mysql的cpu过高
- 性能测试分享:性能测试工具开发的案例分享(上)
- 性能测试分享:性能测试工具开发的案例分享(下)
- 性能测试培训:批量执行Jmeter脚本之ant调用 2
- 性能测试培训:分布式测试之jmeter1
- 老李案例分享:MAT分析应用程序服务出现内存溢出过程1
- 老李案例分享:MAT分析应用程序服务出现内存溢出过程2
- 老李案例分享:定位JAVA内存溢出 1
- 老李案例分享:定位JAVA内存溢出 2
- 性能测试培训: 建立压力模型
- 老李分享:你知道有哪些持续集成工具
- 老李分享知识:性能测试之TPS和吞吐率
- 老李分享知识:性能测试之吞吐量
- 性能测试培训:分析内训泄露的案例
- 自动化测试培训:qtp脚本获取获取汇率数据
- 性能测试培训:sql server性能测试分析局部变量的性能影响1