CN104636248A - 一种基于代码注入的自动化测试辅助识别方法 - Google Patents
一种基于代码注入的自动化测试辅助识别方法 Download PDFInfo
- Publication number
- CN104636248A CN104636248A CN201310566657.XA CN201310566657A CN104636248A CN 104636248 A CN104636248 A CN 104636248A CN 201310566657 A CN201310566657 A CN 201310566657A CN 104636248 A CN104636248 A CN 104636248A
- Authority
- CN
- China
- Prior art keywords
- code
- injected
- control
- code injection
- tested program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Abstract
本发明公开一种基于代码注入的自动化测试辅助识别方法,包括以下步骤:获取被测程序进程句柄,将被注入代码注入到被测程序的进程地址中,并开辟相关内存地址用于后续操作;将所要测试的控件信息及操作类型传送给被注入代码;被注入代码根据控件信息在被测程序的内存地址中查找相应控件,并根据操作类型,执行相应操作或者获取相应控件数据;接收被注入代码返回的相应操作的操作结果或相应控件数据。
Description
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种基于代码注入的自动化测试辅助识别方法。
背景技术
当前的自动化测试软件,多数是基于录制回放策略,在录制的过程中识别控件对象,记录操作类型,在回放过程中,对控件对象进行操作,获取控件数据信息,进行数据校验。此类工具对系统标准控件有很好的效果。但是对于一些非标准控件,这类自动化测试软件就不能正确识别,导致无法进行回放操作,也无法获取控件(如表格类控件)内部数据信息,无法进行数据校验。
发明内容
本发明提供一种基于代码注入的自动化测试辅助识别方法,用以解决当前自动化测试工具普遍存在的对某些控件(比如自定义控件等)不能识别,导致不能操作的问题,拓展了自动化测试的范围,提高测试的工作效率。
为达到上述目的,本发明提供了一种基于代码注入的自动化测试辅助识别方法,包括以下步骤:
获取被测程序进程句柄,将被注入代码注入到被测程序的进程地址中,并开辟相关内存地址用于后续操作;
将所要测试的控件信息及操作类型传送给被注入代码;
被注入代码根据控件信息在被测程序的内存地址中查找相应控件,并根据操作类型,执行相应操作或者获取相应控件数据;
接收被注入代码返回的相应操作的操作结果或相应控件数据。
可选的,控件信息为控件类型或控件名称。
为达到上述目的,本发明还提供了一种基于代码注入的自动化测试辅助识别装置,包括:
代码注入模块,用于获取被测程序进程句柄,将被注入代码注入到被测程序的进程地址中,并开辟相关内存地址用于后续操作;
通信模块,用于将所要测试的控件信息及操作类型传送给被注入代码;
代码执行模块,用于根据控件信息在被测程序的内存地址中查找相应控件,并根据操作类型,执行相应操作或者获取相应控件数据;
通信模块还用于接收被注入代码返回的相应操作的操作结果或相应控件数据。
可选的,控件信息为控件类型或控件名称。
本发明解决了自动化测试工具软件对某些功能不可识别不可测试的问题,通过内存地址操作高效准确。拓展了测试自动化工具软件的使用范围,提高了测试工作效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一个实施例的基于代码注入的自动化测试辅助识别方法流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明一个实施例的基于代码注入的自动化测试辅助识别方法流程示意图。如图所示,基于代码注入的自动化测试辅助识别方法包括以下步骤:
S102,获取被测程序进程句柄,将被注入代码注入到被测程序的进程地址中,并开辟相关内存地址用于后续操作;
S104,将所要测试的控件信息及操作类型传送给被注入代码;
S106,被注入代码根据控件信息在被测程序的内存地址中查找相应控件,并根据操作类型,执行相应操作或者获取相应控件数据;
S108,接收被注入代码返回的相应操作的操作结果或相应控件数据。
其中,上述控件信息可以为控件类型或控件名称。
本实施例在自动化测试过程中,通过动态代码注入的方式,获得被测控件的控制权,对控件进行操作或者获取控件中相关信息,解决了当前自动化测试工具普遍存在的对某些控件(比如自定义控件等)不能识别,导致不能操作的问题,拓展了自动化测试的范围,提高了测试的工作效率。
从上述实施例可以看出,本发明的技术关键点在于:
1、自动化测试过程中动态代码注入;
2、注入的代码通过内存地址对控件识别,获得控件操作权,操作控件或获得控件数据返回结果。
基于上述技术关键点的分析,为便于实施,本发明将基于代码注入的自动化测试辅助识别方法通过软件程序工具来实现,软件工具分为代码注入/调用功能和被注入代码两部分,可在自动化测试工具执行过程中被调用,识别自动化测试工具无法识别的控件,并且可以进行操作,获取相关信息,进行数据校验。代码注入/调用功能实现代码注入以及与被注入代码通信两部分功能。以下详细阐述代码注入/调用功能和被注入代码这两部分的功能:
代码注入/调用功能通过被测程序名称查找程序运行的进程句柄,将被注入代码注入到被测程序进程地址中,并开辟相关所需内存地址用于后续操作;以及对被测程序成功注入代码后,与被注入代码进行通信,向被注入代码发送指令,实现获得指定控件,操作指定控件,获取指定控件数据等功能
被注入代码部分实现在被测程序内存地址中查找控件,对控件进行操作,获取控件相关信息。
在测试过程中,具体的执行步骤如下:
1、调用代码注入/调用功能,传入被测程序的名称;
2、根据被测程序的名称获取被测程序的进程句柄,注入被注入代码部分,并开辟相关内存地址以便进行后续操作;
3、调用代码注入/调用功能,与被注入代码通信,将控件类型或控件名称及操作类型传送给被注入代码;
4、被注入代码根据控件类型或控件名称在被测程序内存地址中查找相应控件;
5、被注入代码根据传入的操作类型,执行相关操作或者获取相应控件数据;
6、被注入代码将操作结果或相应控件数据返回给代码注入/调用功能。
需要指出的是,本发明既可以单独使用也可以集成到其它自动化测试工具中使用。
与上述方法上述相适应,以下为本发明一个实施例的基于代码注入的自动化测试辅助识别装置实施例,该装置包括:
代码注入模块,用于获取被测程序进程句柄,将被注入代码注入到被测程序的进程地址中,并开辟相关内存地址用于后续操作;
通信模块,用于将所要测试的控件信息及操作类型传送给被注入代码;
代码执行模块,用于根据控件信息在被测程序的内存地址中查找相应控件,并根据操作类型,执行相应操作或者获取相应控件数据;
通信模块还用于接收被注入代码返回的相应操作的操作结果或相应控件数据。
可选的,控件信息为控件类型或控件名称。
本发明解决了自动化测试工具软件对某些功能不可识别不可测试的问题,通过内存地址操作高效准确。拓展了测试自动化工具软件的使用范围,提高了测试工作效率。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
Claims (4)
1.一种基于代码注入的自动化测试辅助识别方法,其特征在于,包括以下步骤:
获取被测程序进程句柄,将被注入代码注入到所述被测程序的进程地址中,并开辟相关内存地址用于后续操作;
将所要测试的控件信息及操作类型传送给所述被注入代码;
所述被注入代码根据所述控件信息在所述被测程序的内存地址中查找相应控件,并根据所述操作类型,执行相应操作或者获取相应控件数据;
接收所述被注入代码返回的相应操作的操作结果或相应控件数据。
2.根据权利要求1所述的基于代码注入的自动化测试辅助识别方法,其特征在于,所述控件信息为控件类型或控件名称。
3.一种基于代码注入的自动化测试辅助识别装置,其特征在于,包括:
代码注入模块,用于获取被测程序进程句柄,将被注入代码注入到所述被测程序的进程地址中,并开辟相关内存地址用于后续操作;
通信模块,用于将所要测试的控件信息及操作类型传送给所述被注入代码;
代码执行模块,用于根据所述控件信息在所述被测程序的内存地址中查找相应控件,并根据所述操作类型,执行相应操作或者获取相应控件数据;
所述通信模块还用于接收所述被注入代码返回的相应操作的操作结果或相应控件数据。
4.根据权利要求1所述的基于代码注入的自动化测试辅助识别装置,其特征在于,所述控件信息为控件类型或控件名称。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310566657.XA CN104636248B (zh) | 2013-11-13 | 2013-11-13 | 一种基于代码注入的自动化测试辅助识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310566657.XA CN104636248B (zh) | 2013-11-13 | 2013-11-13 | 一种基于代码注入的自动化测试辅助识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104636248A true CN104636248A (zh) | 2015-05-20 |
CN104636248B CN104636248B (zh) | 2018-01-16 |
Family
ID=53215033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310566657.XA Active CN104636248B (zh) | 2013-11-13 | 2013-11-13 | 一种基于代码注入的自动化测试辅助识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104636248B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105700931A (zh) * | 2016-02-23 | 2016-06-22 | 北京蓝海讯通科技股份有限公司 | 一种代码注入方法及装置 |
CN108182120A (zh) * | 2017-12-08 | 2018-06-19 | 广州视源电子科技股份有限公司 | 接口调用方法和系统、存储介质和计算机设备 |
CN114896647A (zh) * | 2022-05-07 | 2022-08-12 | 青矩技术股份有限公司 | 一种注入式操作建模软件自动建模的方法和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090265719A1 (en) * | 2008-04-18 | 2009-10-22 | Microsoft Corporation | Application macro recording utilizing method interception |
CN102541728A (zh) * | 2010-12-14 | 2012-07-04 | 北京新媒传信科技有限公司 | 扩展自动化测试工具识别控件的方法 |
CN103377119A (zh) * | 2012-04-23 | 2013-10-30 | 腾讯科技(深圳)有限公司 | 一种非标准控件自动化测试方法和装置 |
-
2013
- 2013-11-13 CN CN201310566657.XA patent/CN104636248B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090265719A1 (en) * | 2008-04-18 | 2009-10-22 | Microsoft Corporation | Application macro recording utilizing method interception |
CN102541728A (zh) * | 2010-12-14 | 2012-07-04 | 北京新媒传信科技有限公司 | 扩展自动化测试工具识别控件的方法 |
CN103377119A (zh) * | 2012-04-23 | 2013-10-30 | 腾讯科技(深圳)有限公司 | 一种非标准控件自动化测试方法和装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105700931A (zh) * | 2016-02-23 | 2016-06-22 | 北京蓝海讯通科技股份有限公司 | 一种代码注入方法及装置 |
CN108182120A (zh) * | 2017-12-08 | 2018-06-19 | 广州视源电子科技股份有限公司 | 接口调用方法和系统、存储介质和计算机设备 |
CN114896647A (zh) * | 2022-05-07 | 2022-08-12 | 青矩技术股份有限公司 | 一种注入式操作建模软件自动建模的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104636248B (zh) | 2018-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107844421B (zh) | 接口测试方法、装置、计算机设备和存储介质 | |
CN102779151B (zh) | 应用程序的搜索方法、装置及系统 | |
EP2472417A1 (en) | Method and device for accessing file resources | |
CN103365779A (zh) | 软件测试方法和系统 | |
CN103164300A (zh) | 一种移动终端触摸屏自动测试方法及装置 | |
CN104182275A (zh) | 快速启动应用的移动设备及其应用启动方法 | |
CN103678105A (zh) | 一种页面代码的测试方法和装置 | |
CN105095088A (zh) | 基于uiautomator测试框架的计算器自动化测试方法和测试系统 | |
CN101645033A (zh) | 一种手机软件异常时的调试方法 | |
CN103577310A (zh) | 记录软件调试日志的方法以及装置 | |
CN103377123B (zh) | 一种网页代码自动化测试方法及装置 | |
CN104636248A (zh) | 一种基于代码注入的自动化测试辅助识别方法 | |
CN101980184A (zh) | 对文档内容进行批注的方法和系统 | |
CN101237662B (zh) | 生成手机自动化测试用例的方法及装置 | |
CN109766121A (zh) | 环境配置文件生成方法、装置、计算机设备和存储介质 | |
CN110069571A (zh) | 一种自动化数据对比方法及装置、电子设备 | |
CN110826057B (zh) | 数据处理路径的分析方法、计算机设备、存储介质 | |
CN104182348A (zh) | 软件测试方法及装置 | |
CN103955372A (zh) | 一种移动终端中资源的检测方法及装置 | |
CN103731309A (zh) | 一种设备管理方法及装置 | |
CN104052845A (zh) | 测试移动终端应用的方法及装置 | |
CN104732341A (zh) | 模拟业务流程及业务流程运行的控制方法和控制系统 | |
CN104268231A (zh) | 一种文件访问方法、装置及智能文件系统 | |
CN111857752B (zh) | 一种PostgreSQL数据库安装方法、装置及设备 | |
CN102938806A (zh) | 一种获取通话资源的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |