[发明专利]一种模拟用户操作的方法和装置有效
申请号: | 201510563499.1 | 申请日: | 2015-09-07 |
公开(公告)号: | CN105094952B | 公开(公告)日: | 2018-08-07 |
发明(设计)人: | 段建建;王志伟 | 申请(专利权)人: | 网易(杭州)网络有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455 |
代理公司: | 深圳新创友知识产权代理有限公司 44223 | 代理人: | 江耀纯 |
地址: | 310052 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 模拟 用户 操作 方法 装置 | ||
本发明公开了一种模拟用户操作的方法和装置,通过将待模拟的用户操作事件根据系统的底层事件协议转换成所述系统可识别的事件数据流,并将所述事件数据流注入到所述系统中以实现用户操作事件的模拟,可实现跨进程的事件注入,适用于系统中的所用软件和游戏,可实现准确快速的用户操作事件模拟,避免了现有技术中采用adb等工具在发送事件命令上的延迟,尤其适合在需要精确时间计算的测试场景中使用。
技术领域
本发明涉及计算机技术领域,尤其涉及一种模拟用户操作的方法和装置。
背景技术
在手机应用软件或游戏的测试过程中,经常需要模拟用户的操作事件,以验证用户操作过程中应用软件是否正常运行,例如对手机按键的按键事件和对手机屏幕的触摸事件。现有的实现方法主要如下:
方法一、通过ADB、MonkeyRunner等测试工具发送事件命令进行用户操作事件的模拟。手机打开调试模式并通过数据线连接电脑,电脑端通过ADB、MonkeyRunner等测试工具向手机发送ADB命令或者其他事件命令。然而由于电脑和手机通过数据线进行通信,再加上ADB、MonkeyRunner启动运行需要的时间,无法做到发送命令给手机,手机立刻执行,其间存在较长的时间延迟,大约为几百毫秒,无法满足对时间精度要求较高的测试需要。
方法二、通过Robotium、Activity Instrumentation、Robolectric等测试框架对测试程序进行操作模拟。然而上述测试框架依赖程序的源代码且只能实现应用程序内部的事件模拟,无法实现跨进程的事件注入,需要针对不同测试程序编写不同的测试脚本,通用性较差。
发明内容
本发明实施例的目的在于提供了一种模拟用户操作的方法和装置,实现跨进程的事件注入,降低模拟用户操作的时间延迟。
为了实现上述目的,本发明实施例提供了一种模拟用户操作的方法,包括:
根据系统的底层事件协议,将待模拟的用户操作事件转换成所述系统可识别的事件数据流;
将所述事件数据流注入到所述系统中。
优选地,所述将所述事件数据流注入到所述系统中,具体为:
通过Java本地接口将所述事件数据流注入到所述系统中。
优选地,所述通过Java本地接口将所述事件数据流注入到所述系统中,包括:
通过所述Java本地接口调用注入线程;
利用所述注入线程按照预设的时间间隔将所述事件数据流注入到所述系统中。
优选地,所述根据系统的底层事件协议,将待模拟的用户操作事件转换成所述系统可识别的事件数据流,具体为:
根据系统的底层事件协议,将所述待模拟的用户操作事件转换成相应的事件类型、键码类别和操作数值,生成所述系统可识别的事件数据流。
优选地,所述用户操作事件为用户屏幕操作事件。
优选地,所述用户屏幕操作事件包括屏幕点击和屏幕滑动中的一种或两种组合。
优选地,所述系统为安卓系统。
本发明实施例还提供了一种模拟用户操作的装置,包括:
转换模块,根据系统的底层事件协议,将待模拟的用户操作事件转换成所述系统可识别的事件数据流。
注入模块,将所述事件数据流注入到所述系统中。
优选地,所述注入模块包括:
数据流注入子模块,用于通过Java本地接口将所述事件数据流注入到所述系统中。
优选地,所述数据流注入子模块包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于网易(杭州)网络有限公司,未经网易(杭州)网络有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510563499.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种实现目标与任务对位的方法
- 下一篇:音箱折叠支撑架