一种基于代码注入的自动化测试辅助识别方法

文档序号:8319061阅读:192来源:国知局
一种基于代码注入的自动化测试辅助识别方法
【技术领域】
[0001]本发明涉及计算机技术领域,具体而言,涉及一种基于代码注入的自动化测试辅助识别方法。
【背景技术】
[0002]当前的自动化测试软件,多数是基于录制回放策略,在录制的过程中识别控件对象,记录操作类型,在回放过程中,对控件对象进行操作,获取控件数据信息,进行数据校验。此类工具对系统标准控件有很好的效果。但是对于一些非标准控件,这类自动化测试软件就不能正确识别,导致无法进行回放操作,也无法获取控件(如表格类控件)内部数据信息,无法进行数据校验。

【发明内容】

[0003]本发明提供一种基于代码注入的自动化测试辅助识别方法,用以解决当前自动化测试工具普遍存在的对某些控件(比如自定义控件等)不能识别,导致不能操作的问题,拓展了自动化测试的范围,提高测试的工作效率。
[0004]为达到上述目的,本发明提供了一种基于代码注入的自动化测试辅助识别方法,包括以下步骤:
[0005]获取被测程序进程句柄,将被注入代码注入到被测程序的进程地址中,并开辟相关内存地址用于后续操作;
[0006]将所要测试的控件信息及操作类型传送给被注入代码;
[0007]被注入代码根据控件信息在被测程序的内存地址中查找相应控件,并根据操作类型,执行相应操作或者获取相应控件数据;
[0008]接收被注入代码返回的相应操作的操作结果或相应控件数据。
[0009]可选的,控件信息为控件类型或控件名称。
[0010]为达到上述目的,本发明还提供了一种基于代码注入的自动化测试辅助识别装置,包括:
[0011]代码注入模块,用于获取被测程序进程句柄,将被注入代码注入到被测程序的进程地址中,并开辟相关内存地址用于后续操作;
[0012]通信模块,用于将所要测试的控件信息及操作类型传送给被注入代码;
[0013]代码执行模块,用于根据控件信息在被测程序的内存地址中查找相应控件,并根据操作类型,执行相应操作或者获取相应控件数据;
[0014]通信模块还用于接收被注入代码返回的相应操作的操作结果或相应控件数据。
[0015]可选的,控件信息为控件类型或控件名称。
[0016]本发明解决了自动化测试工具软件对某些功能不可识别不可测试的问题,通过内存地址操作高效准确。拓展了测试自动化工具软件的使用范围,提高了测试工作效率。
【附图说明】
[0017]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0018]图1为本发明一个实施例的基于代码注入的自动化测试辅助识别方法流程示意图。
【具体实施方式】
[0019]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0020]图1为本发明一个实施例的基于代码注入的自动化测试辅助识别方法流程示意图。如图所示,基于代码注入的自动化测试辅助识别方法包括以下步骤:
[0021]S102,获取被测程序进程句柄,将被注入代码注入到被测程序的进程地址中,并开辟相关内存地址用于后续操作;
[0022]S104,将所要测试的控件信息及操作类型传送给被注入代码;
[0023]S106,被注入代码根据控件信息在被测程序的内存地址中查找相应控件,并根据操作类型,执行相应操作或者获取相应控件数据;
[0024]S108,接收被注入代码返回的相应操作的操作结果或相应控件数据。
[0025]其中,上述控件信息可以为控件类型或控件名称。
[0026]本实施例在自动化测试过程中,通过动态代码注入的方式,获得被测控件的控制权,对控件进行操作或者获取控件中相关信息,解决了当前自动化测试工具普遍存在的对某些控件(比如自定义控件等)不能识别,导致不能操作的问题,拓展了自动化测试的范围,提高了测试的工作效率。
[0027]从上述实施例可以看出,本发明的技术关键点在于:
[0028]1、自动化测试过程中动态代码注入;
[0029]2、注入的代码通过内存地址对控件识别,获得控件操作权,操作控件或获得控件数据返回结果。
[0030]基于上述技术关键点的分析,为便于实施,本发明将基于代码注入的自动化测试辅助识别方法通过软件程序工具来实现,软件工具分为代码注入/调用功能和被注入代码两部分,可在自动化测试工具执行过程中被调用,识别自动化测试工具无法识别的控件,并且可以进行操作,获取相关信息,进行数据校验。代码注入/调用功能实现代码注入以及与被注入代码通信两部分功能。以下详细阐述代码注入/调用功能和被注入代码这两部分的功能:
[0031]代码注入/调用功能通过被测程序名称查找程序运行的进程句柄,将被注入代码注入到被测程序进程地址中,并开辟相关所需内存地址用于后续操作;以及对被测程序成功注入代码后,与被注入代码进行通信,向被注入代码发送指令,实现获得指定控件,操作指定控件,获取指定控件数据等功能
[0032]被注入代码部分实现在被测程序内存地址中查找控件,对控件进行操作,获取控件相关信息。
[0033]在测试过程中,具体的执行步骤如下:
[0034]1、调用代码注入/调用功能,传入被测程序的名称;
[0035]2、根据被测程序的名称获取被测程序的进程句柄,注入被注入代码部分,并开辟相关内存地址以便进行后续操作;
[0036]3、调用代码注入/调用功能,与被注入代码通信,将控件类型或控件名称及操作类型传送给被注入代码;
[0037]4、被注入代码根据控件类型或控件名称在被测程序内存地址中查找相应控件;
[0038]5、被注入代码根据传入的操作类型,执行相关操作或者获取相应控件数据;
[0039]6、被注入代码将操作结果或相应控件数据返回给代码注入/调用功能。
[0040]需要指出的是,本发明既可以单独使用也可以集成到其它自动化测试工具中使用。
[0041]与上述方法上述相适应,以下为本发明一个实施例的基于代码注入的自动化测试辅助识别装置实施例,该装置包括:
[0042]代码注入模块,用于获取被测程序进程句柄,将被注入代码注入到被测程序的进程地址中,并开辟相关内存地址用于后续操作;
[0043]通信模块,用于将所要测试的控件信息及操作类型传送给被注入代码;
[0044]代码执行模块,用于根据控件信息在被测程序的内存地址中查找相应控件,并根据操作类型,执行相应操作或者获取相应控件数据;
[0045]通信模块还用于接收被注入代码返回的相应操作的操作结果或相应控件数据。
[0046]可选的,控件信息为控件类型或控件名称。
[0047]本发明解决了自动化测试工具软件对某些功能不可识别不可测试的问题,通过内存地址操作高效准确。拓展了测试自动化工具软件的使用范围,提高了测试工作效率。
[0048]本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
[0049]本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0050]最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
【主权项】
1.一种基于代码注入的自动化测试辅助识别方法,其特征在于,包括以下步骤: 获取被测程序进程句柄,将被注入代码注入到所述被测程序的进程地址中,并开辟相关内存地址用于后续操作; 将所要测试的控件信息及操作类型传送给所述被注入代码; 所述被注入代码根据所述控件信息在所述被测程序的内存地址中查找相应控件,并根据所述操作类型,执行相应操作或者获取相应控件数据; 接收所述被注入代码返回的相应操作的操作结果或相应控件数据。
2.根据权利要求1所述的基于代码注入的自动化测试辅助识别方法,其特征在于,所述控件信息为控件类型或控件名称。
3.一种基于代码注入的自动化测试辅助识别装置,其特征在于,包括: 代码注入模块,用于获取被测程序进程句柄,将被注入代码注入到所述被测程序的进程地址中,并开辟相关内存地址用于后续操作; 通信模块,用于将所要测试的控件信息及操作类型传送给所述被注入代码; 代码执行模块,用于根据所述控件信息在所述被测程序的内存地址中查找相应控件,并根据所述操作类型,执行相应操作或者获取相应控件数据; 所述通信模块还用于接收所述被注入代码返回的相应操作的操作结果或相应控件数据。
4.根据权利要求1所述的基于代码注入的自动化测试辅助识别装置,其特征在于,所述控件信息为控件类型或控件名称。
【专利摘要】本发明公开一种基于代码注入的自动化测试辅助识别方法,包括以下步骤:获取被测程序进程句柄,将被注入代码注入到被测程序的进程地址中,并开辟相关内存地址用于后续操作;将所要测试的控件信息及操作类型传送给被注入代码;被注入代码根据控件信息在被测程序的内存地址中查找相应控件,并根据操作类型,执行相应操作或者获取相应控件数据;接收被注入代码返回的相应操作的操作结果或相应控件数据。
【IPC分类】G06F11-36
【公开号】CN104636248
【申请号】CN201310566657
【发明人】吴旭, 曹晶晶
【申请人】航天信息股份有限公司
【公开日】2015年5月20日
【申请日】2013年11月13日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1