记录gui数据的方法和系统的制作方法_2

文档序号:8395793阅读:来源:国知局
07或鼠标109的用户输入的相关记录周期的净变化的一连串的进一步条目。
[0026]现在将参考实例进一步描述由⑶I日志记录应用程序203执行的处理,在该实例中用户应用程序201打开包括按钮和文本输入字段的新窗口,然后用户利用键盘107在文本字段输入“你好世界”,然后利用鼠标109点击按钮。初始窗口具有窗口句柄“474”,导致⑶I日志数据文件207中的以下条目:
[0027]Time = 10:00:00
[0028]ffindow-com.1bm.gu1.windowl-opened-windowHandle_747
[0029]750_ButtonCreated
[0030]750_x = 100
[0031]750_y = 50
[0032]750_ text = OK
[0033]751—TextFieldCreated
[0034]751—X = 10
[0035]751—y = 10
[0036]用户在下一个记录周期通过键盘输入的随后文本导致⑶I日志数据文件207中的条目增加以下内容:
[0037]Time = 10:00:05
[0038]752_TextnputEventCreatedFor_751
[0039]752—data = Hello World
[0040]750—ButtonClickedEventCreatedFor—750
[0041]在下一个记录周期用户输入文本“A”,然后等待2秒输入“B”,然后按下0K,获得误差消息返回,说明“数据必须是三个字符”。然后用户输入“CDEF”,按下0K,按钮标签变为“完成”。如果没有数据压缩将导致GUI日志数据文件207中产生以下条目:
[0042]Time = 10:00:10
[0043]752_KeyPressEventCreatedFor_751
[0044]752—data = A
[0045]Time = 10:00:12
[0046]752_KeyPressEventCreatedFor_751
[0047]752—data = B
[0048]750—ButtonClickedEventCreatedFor—750
[0049]747—Message—display = “数据必须是三个字符”
[0050]Time = 10:00:13
[0051]752_KeyPressEventCreatedFor_751
[0052]752—data = CDEF
[0053]750—ButtonClickedEventCreatedFor—750
[0054]747—Message—display =,,,,
[0055]750—Button—text = Finish (完成)
[0056]一旦在记录周期压缩以上消息,只捕获净变化,于是输入文本“AB⑶EF”并且按钮的文本标签改变:
[0057]Time = 10:00:1Oto 10:00:15
[0058]752_KeyPressEventCreatedFor_751
[0059]752_data = ABCDEF
[0060]750_Button_text = Finish (完成)
[0061]返回图2,在本实施例中,计算机103还运行⑶I模拟应用程序209,布置为显示用户的GUI交互和诸如用户应用程序201的应用程序的模拟。GUI模拟应用程序209使用相关GUI日志数据文件207中记录的数据提供这样的模拟。在本实施例中,Gn模拟应用程序209布置为显示⑶I交互重播窗口内的相关⑶I交互的模拟。⑶I模拟应用程序209布置为输入⑶I日志数据文件207和创建⑶I日志数据文件207中捕获的对应⑶I活动的轻型(lightweight)模拟。在本实施例中,⑶I模拟应用程序209进一步被布置为利用来自诸如记录周期数据的日志文件的额外信息来可选地扩充模拟。
[0062]现在将参考图4和图5的流程图进一步描述由⑶I日志记录应用程序203执行的处理。响应于⑶I日志记录应用程序203的启动,在步骤401初始化处理,然后移动到步骤403。在步骤403,识别要监测的相关应用程序的实例,处理移动到步骤405。对于涉及正被监测的应用程序201的经识别的实例的事件,在步骤405初始化⑶I事件队列205的监测,处理移动到步骤407。在步骤407,涉及放置在GUI事件队列上的所监测的应用程序201的每个消息如上所述被日志记录在相关⑶I日志数据文件207中。该过程继续直到⑶I日志记录应用程序203停止或被监控的应用程序201的实例结束,此时处理移动到步骤411并结束。
[0063]现在将参考图5的流程图进一步描述在图4的流程图的步骤407由⑶I日志记录应用程序203执行的处理。从步骤407初始化处理,并移动到步骤501,在步骤501监测⑶I事件队列205的涉及用户应用程序201的新消息。当识别⑶I事件队列205上的新消息时,处理移动到步骤503,。在步骤503,如果新消息涉及新窗口 113的创建,则处理移动到步骤505。在步骤505,捕获和序列化所述新窗口事件消息,初始化相关联的记录周期,处理移动到步骤507。在步骤511,序列化的消息存储在⑶I日志数据文件207中,处理返回到步骤501以等待⑶I事件队列205上的下一个相关消息。
[0064]如果在步骤503新消息与新窗口不相关,则处理移动到步骤509。如果在步骤509消息涉及现有窗口的更新或修改,例如由于用户从用户应用程序201输入或输出,则处理移动到步骤511。在步骤511如果相关窗口的当前记录周期还未到期,则处理移动到步骤513。在步骤513缓冲新消息以等待当前记录日志周期的结束,然后处理返回到步骤501以等待⑶I消息队列205上的进一步的消息。
[0065]然而,如果在步骤511相关窗口的当前记录周期已经到期,那么处理移动到步骤515。在步骤515确定由当前消息和为当前记录周期缓冲的任意现有消息表示的净变化,处理移动到步骤517。在步骤517表示净变化的数据被序列化并且储存在针对用于相关日志处理周期的⑶I日志文件207中的窗口 113的相关数据集301、302、303中,处理返回到步骤501以等待⑶I消息队列205上的进一步消息。如果在步骤509新消息既不涉及新窗口(503)也不涉及现有窗口的变化,那么处理移动到步骤519。如果在步骤519新消息涉及应用程序201的被监测窗口中一个窗口的关闭,那么处理移动到步骤521。在步骤521序列化所述关闭事件,并保存关闭事件到该窗口的相关数据集301、302、303,然后处理返回到步骤501以等待⑶I消息队列205上的进一步消息。如果在步骤519新消息既不涉及新窗口(503)也不涉及现有窗口(509)的变化也不涉及现有窗口的关闭,那么处理跳过消息和返回到步骤519,以等待⑶I消息队列205上的进一步消息。
[0066]现在将参考图6的流程图描述由⑶I模拟应用程序209执行的处理。处理由用户在步骤601被初始化和移动到步骤603。在步骤603识别相关⑶I日志数据文件207,处理移动到步骤605。在步骤605新的⑶I窗口 113打开,在该窗口中将重播模拟,而处理移动到步骤607。在步骤607⑶I日志数据文件207中的每个条目逐句通过,在重播窗口 113中以记录周期顺序显示对应的GUI事件。在用户控制下可以重复、暂停或逆转模拟,或在处理移动到步骤609的情况下结束所述模拟。
[0067]在进一步的实施例中,⑶I日志记录应用程序被布置为响应于对⑶I事件队列上的所选⑶I输入的检测,而在⑶I日志文件中记录累积⑶I输
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1