CN102508762A - 数据交互控制装置和数据交互控制方法 - Google Patents
数据交互控制装置和数据交互控制方法 Download PDFInfo
- Publication number
- CN102508762A CN102508762A CN2011102944428A CN201110294442A CN102508762A CN 102508762 A CN102508762 A CN 102508762A CN 2011102944428 A CN2011102944428 A CN 2011102944428A CN 201110294442 A CN201110294442 A CN 201110294442A CN 102508762 A CN102508762 A CN 102508762A
- Authority
- CN
- China
- Prior art keywords
- user interface
- data interaction
- interaction control
- script
- run script
- 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.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供一种数据交互控制装置和一种数据交互控制方法,其中,数据交互控制装置包括:运行脚本记录模块,在应用程序的图形用户界面组件向用户界面处理组件发出调用请求时,将调用请求的数据信息记录为运行脚本;运行脚本输出模块,在所述图形用户界面组件对所述用户界面处理组件的调用完成后,将所述运行脚本持久化,以保存到存储介质中。通过本发明,保证了可以准确记录GUI(图形用户界面)组件对UIP(用户界面处理)组件的调用信息。
Description
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种数据交互控制装置和一种数据交互控制方法。
背景技术
在多层次软件设计模式中,不同的层与层之间的调用基本上是通过松耦合/弱方法方式实现的,在设计时无法验证对每一个下层方法的调用是否满足调用规约,只有在运行时才知道系统是否运行正常。但是,运行时的调用方法和相关参数比较庞大,无法通过单步跟踪的方式来确定上层对下层的调用是否符合规约。
在应用软件开发过程中,软件开发人员需要通过单元测试(白盒测试)来验证所设计的软件功能的正确性。因此需要通过一种可测试的方式来循环验证在每一次修改后,应用系统的功能(原有功能和增量部分功能)能否正常运行。这就需求一种灵活自动的方式来进行单元测试。
在应用软件系统的实际运行过程中,用户的操作过程是不可预知和控制的,在开发过程中设计好的操作流程是在软件应用系统中,软件设计人员以一种既定或假想的流程去设计的。但在交付运行后,最终用户的实际操作方式是未知的,在系统运行出现问题时,需要以一种方式快速完整的记录下用户所有的操作过程及其业务数据,通过记录来快速分析和解决应用软件系统的存在的缺陷。
在应用软件开发过程中,会经过集成测试阶段,其中会包括自动化的并发压力测试。这个任务需要测试人员提供相关的应用软件测试脚本来支持并发压力测试。以往测试脚本的编写是由有编程能力的测试人员、或者相应的软件开发人员进行编写,通过硬编码的方式进行。此种方式花费的时间和精力较多,而且易用性也比较差,在不同的测试场景下要求的测试脚本是不同的,需要重新编写、编译和部署。
综合上述内容列出的缺陷,可知需要一种新的用于数据交互控制的技术方案,能够快捷地记录不同层次之间的方法之间的调用情况,并可以根据调用记录,来对应用软件进行测试或调整。
发明内容
本发明所要解决的问题在于,提供一种新的用于数据交互控制的技术方案,能够快捷地记录不同层次之间的方法之间的调用情况,并可以根据调用记录,来对应用软件进行测试或调整。
有鉴于此,本发明提供一种数据交互控制装置,包括:运行脚本记录模块,在应用程序的图形用户界面组件向用户界面处理组件发出调用请求时,将调用请求的数据信息记录为运行脚本;运行脚本输出模块,在所述图形用户界面组件对所述用户界面处理组件的调用完成后,将所述运行脚本持久化,以保存到存储介质中。通过该技术方案,保证了可以准确记录GUI(图形用户界面)组件对UIP(用户界面处理)组件的调用信息。
在上述技术方案中,优选地,所述数据信息的类型包括调用参数和被调用的方法,所述运行脚本记录模块在所述图形用户界面组件每次对所述用户界面处理组件中的方法进行调用时,都记录所述图形用户界面组件的调用参数以及所述用户界面处理组件中被调用的方法。通过该技术方案,可以准确记录调用方法和调用参数,有利于后续进行测试以及调整的步骤,还可以记录环境参数等多种信息。
在上述技术方案中,优选地,还包括:运行脚本回放模块,将已保存的所述运行脚本反持久化处理,使用反持久化处理得到的数据信息,回放所述图形用户界面组件对所述用户界面处理组件的调用。通过该技术方案,可以通过保存的脚本,自动进行调用动作的回放,有利于在软件测试中准确对软件组件进行分析。
在上述技术方案中,优选地,所述运行脚本回放模块还捕获在回放所述图形用户界面组件对所述用户界面处理组件的调用过程中的异常信息。通过该技术方案,可以保证用户快速定位软件中的异常原因和位置。
在上述技术方案中,优选地,所述运行脚本输出模块根据预设的配置参数选择所述存储介质,并将所述运行脚本以符合所述存储介质的形式,存储到所述存储介质中,其中,所述存储介质的类型包括数据库、扩展标记语言文本、邮件和文件。通过该技术方案,可以保证脚本能够存储到不同环境的介质中,并能在多种环境下回放或输出。
本发明提供一种数据交互控制方法,包括:步骤202,在应用程序的图形用户界面组件向用户界面处理组件发出调用请求时,将调用请求的数据信息记录为运行脚本;步骤204,在所述图形用户界面组件对所述用户界面处理组件的调用完成后,将所述运行脚本持久化,以保存到存储介质中。通过该技术方案,保证了可以准确记录GUI(图形用户界面)组件对UIP(用户界面处理)组件的调用信息。
在上述技术方案中,优选地,所述数据信息的类型包括调用参数和被调用的方法,所述步骤202具体包括:在所述图形用户界面组件每次对所述用户界面处理组件中的方法进行调用时,都记录所述图形用户界面组件的调用参数以及所述用户界面处理组件中被调用的方法。通过该技术方案,可以准确记录调用方法和调用参数,有利于后续进行测试以及调整的步骤,还可以记录环境参数等多种信息。
在上述技术方案中,优选地,还包括:步骤206,将已保存的所述运行脚本反持久化处理,使用反持久化处理得到的数据信息,回放所述图形用户界面组件对所述用户界面处理组件的调用。通过该技术方案,可以通过保存的脚本,自动进行调用动作的回放,有利于在软件测试中准确对软件组件进行分析。
在上述技术方案中,优选地,所述步骤206还包括:捕获在回放所述图形用户界面组件对所述用户界面处理组件的调用过程中的异常信息。通过该技术方案,可以保证用户快速定位软件中的异常原因和位置。
在上述技术方案中,优选地,所述步骤204具体包括:根据预设的配置参数选择所述存储介质,并将所述运行脚本以符合所述存储介质的形式,存储到所述存储介质中,其中,所述存储介质的类型包括数据库、扩展标记语言文本、邮件和文件。通过该技术方案,可以保证脚本能够存储到不同环境的介质中,并能在多种环境下回放或输出。
通过以上技术方案,可以实现一种数据交互控制装置和一种数据交互控制方法,可以记录上层软件组件对下层软件组件的所有调用动作,包括调用的组件、方法、调用参数、及其相关的执行环境,能够满足软件系统编码人员在单元测试中的快速编写测试脚本和高效执行的需求,并可以跟踪最终用户的现场操作情况,利用用户产生的操作流水脚本来进行分析,确定是用户操作不规范,还是应用软件系统中存在的缺陷,且能够在并发压力测试时,让测试验证人员依据软件操作过程自动生成测试脚本,并通过简单配置,在不同的测试场景中加载不同规模的脚本进行并发压力测试。
附图说明
图1是根据本发明的一个实施例的数据交互控制装置的框图;
图2是根据本发明的一个实施例的数据交互控制方法的流程图;
图3是根据本发明的一个实施例的数据交互控制装置的使用示意图;
图4是根据本发明的一个实施例的数据交互控制装置的数据视图;
图5是根据本发明的一个实施例的数据交互控制装置的数据视图;
图6是根据本发明的一个实施例的数据交互控制装置的数据视图;
图7是根据本发明的一个实施例的数据交互控制装置的数据视图;
图8是根据本发明的一个实施例的数据交互控制装置的数据视图;
图9是根据本发明的一个实施例的数据交互控制装置记录运行脚本的流程示意图;
图10是根据本发明的一个实施例的数据交互控制装置回放运行脚本的流程示意图;
图11是根据本发明的一个实施例的数据交互控制装置的构件部署示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实施例的限制。
图1是根据本发明的一个实施例的数据交互控制装置的框图。
如图1所示,本发明提供一种数据交互控制装置100,包括:运行脚本记录模块102,在应用程序的图形用户界面组件向用户界面处理组件发出调用请求时,将调用请求的数据信息记录为运行脚本;运行脚本输出模块104,在所述图形用户界面组件对所述用户界面处理组件的调用完成后,将所述运行脚本持久化,以保存到存储介质中。通过该技术方案,保证了可以准确记录GUI(图形用户界面)组件对UIP(用户界面处理)组件的调用信息。
在上述技术方案中,所述数据信息的类型包括调用参数和被调用的方法,所述运行脚本记录模块102在所述图形用户界面组件每次对所述用户界面处理组件中的方法进行调用时,都记录所述图形用户界面组件的调用参数以及所述用户界面处理组件中被调用的方法。通过该技术方案,可以准确记录调用方法和调用参数,有利于后续进行测试以及调整的步骤,还可以记录环境参数等多种信息。
在上述技术方案中,还包括:运行脚本回放模块106,将已保存的所述运行脚本反持久化处理,使用反持久化处理得到的数据信息,回放所述图形用户界面组件对所述用户界面处理组件的调用。通过该技术方案,可以通过保存的脚本,自动进行调用动作的回放,有利于在软件测试中准确对软件组件进行分析。
在上述技术方案中,所述运行脚本回放模块106还捕获在回放所述图形用户界面组件对所述用户界面处理组件的调用过程中的异常信息。通过该技术方案,可以保证用户快速定位软件中的异常原因和位置。
在上述技术方案中,所述运行脚本输出模块104根据预设的配置参数选择所述存储介质,并将所述运行脚本以符合所述存储介质的形式,存储到所述存储介质中,其中,所述存储介质的类型包括数据库、扩展标记语言文本、邮件和文件。通过该技术方案,可以保证脚本能够存储到不同环境的介质中,并能在多种环境下回放或输出。
图2是根据本发明的一个实施例的数据交互控制方法的流程图。
如图2所示,本发明提供一种数据交互控制方法,包括:步骤202,在应用程序的图形用户界面组件向用户界面处理组件发出调用请求时,将调用请求的数据信息记录为运行脚本;步骤204,在所述图形用户界面组件对所述用户界面处理组件的调用完成后,将所述运行脚本持久化,以保存到存储介质中。通过该技术方案,保证了可以准确记录GUI(图形用户界面)组件对UIP(用户界面处理)组件的调用信息。
在上述技术方案中,所述数据信息的类型包括调用参数和被调用的方法,所述步骤202具体包括:在所述图形用户界面组件每次对所述用户界面处理组件中的方法进行调用时,都记录所述图形用户界面组件的调用参数以及所述用户界面处理组件中被调用的方法。通过该技术方案,可以准确记录调用方法和调用参数,有利于后续进行测试以及调整的步骤,还可以记录环境参数等多种信息。
在上述技术方案中,还包括:步骤206,将已保存的所述运行脚本反持久化处理,使用反持久化处理得到的数据信息,回放所述图形用户界面组件对所述用户界面处理组件的调用。通过该技术方案,可以通过保存的脚本,自动进行调用动作的回放,有利于在软件测试中准确对软件组件进行分析。
在上述技术方案中,所述步骤206还包括:捕获在回放所述图形用户界面组件对所述用户界面处理组件的调用过程中的异常信息。通过该技术方案,可以保证用户快速定位软件中的异常原因和位置。
在上述技术方案中,所述步骤204具体包括:根据预设的配置参数选择所述存储介质,并将所述运行脚本以符合所述存储介质的形式,存储到所述存储介质中,其中,所述存储介质的类型包括数据库、扩展标记语言文本、邮件和文件。通过该技术方案,可以保证脚本能够存储到不同环境的介质中,并能在多种环境下回放或输出。
在以下实施例中,详细说明本发明的技术方案。
在本发明的一个实施例中,提供了一个可以在不影响应用软件系统正常运行的前提下,能够通过应用软件系统的外部配置文件(xml类型文件)来配置记录动作的相关参数,并可以在系统正常运行过程中,通过插件方式来实时记录GUI组件对UIP组件的调用情况,以及在UIP方法的每次调用过程中,详细记录详细的UIP组件方法和调用参数数据,并能够把调用脚本保存在多种介质中:数据库、文件、电子邮件发送或控制台直接输出,并提供二次开发扩展能力,同时提供具有记录脚本回放功能的API服务组件以及提供具有记录脚本回放功能的Windows Form类型的工具模块。
为能够清晰解释本发明的技术方案,现对以下关键词进行说明。
1、Task:任务对象。对目标软件组件的一次调用请求,即每一次调用都会创建一个新的任务对象。
2、Recorder:运行脚本记录器对象,对应前述的脚本记录模块。在业务程序运行过程中,用于记录对业务数据处理组件的所有调用过程,包括方法和参数。
3、Appender:运行脚本输出对象,对应前述的脚本输出模块。Recorder对象记录了业务程序的运行脚本后,通过以配置的方式输出或输出到不同的存储介质中。
4、Replayer:运行脚本回放器对象,对应前述的脚本回放模块。提供对指定运行脚本的回放功能,能自动、循环、按计划的进行回放动作。
5、Runner:运行脚本执行API组件。提供给外部系统调用运行记录脚本回放功能的服务接口组件。
6、XML:eXtensible Markup Language,扩展标记语言。是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立。
本实施例中的数据交互控制装置的运行流程包括:
1、应用软件系统运行过程中,当运行第一个业务程序时,系统插件服务组件会根据应用系统的外部配置文件来确定系统是否要加载运行过程记录对象,包括何种类型的记录器。系统完成创建动作并进行必要的初始化配置动作,以确保记录器对象能够正常运行。
2、在业务程序运行时,会创建一个Recorder对象来记录业务程序的生命周期类内,对下层UIP组件所有的方法调用,包括业务程序的多个Windows窗口中发生的方法调用。对运行时的任务信息以一种可以持久化的方式进行记录,以保证在之后的回放过程(用户现场重现、并发压力测试、单元测试验证等场景)中能反序列化成任务对象。
3、在应用软件系统的GUI界面组件接收到用户操作的Windows事件时,会转换成相关的业务数据处理需求,并通过GUI组件产生特定的、对下层UIP组件的请求调用。在本实施例中,封装成了一个Task对象,在其中包装了目标下层组件、需要请求的下层组件中目标方法、执行目标方式所需要的执行参数。
4、业务程序运行结束并退出后,Recorder对象把记录在内存中的整个调用流水保存到配置的目标介质中(XML文件、数据库记录、电子邮件、Console(操作系统标准命令输出),等等)。
5、Replayer对象以GUI界面交互方式来加载生成的运行脚本存储文件(XML、数据库记录等),并显示出整个脚本中包含的所有对业务程序UIP调用动作。可以在列表UI界面中进行详细信息的查看,并可勾选(全选)所要执行的目标方法,用于执行回放过程。
6、在第三方软件系统中,例如LoadRunner之类的测试软件中,可以调用本实施例中的数据交互控制装置提供的RunnerLib组件中的Runner组件来进行自动化的、不同规模的并发压力测试。在并发压力测试之前,相关人员依据不同的测试场景来录制运行脚本,即预先按照要求运行以开启记录功能的应用软件系统,系统在人员的操作运行中,记录下每一个业务程序的运行流水过程,并形成一个个相对立的脚本文件。这些生成的脚本文件通过配置方式(XML配置文件)被Runner组件加载后,每一个Runner组件的运行实例,都模拟成一个应用软件系统终端用户在运行。这样就到达了并发测试的要求,而非真的使用测试人员去实际的操作应用软件系统。
图3中列举出的本实施例的数据交互控制装置在使用过程中所设计到的三种人员角色:
1、配置员:用于启动/关闭记录器的在应用软件系统运行时的记录功能,并配置用于保存运行记录脚本的持久化存储模块(脚本输出模块)和存储介质。
此角色可以为软件开发人员、测试人员、应用软件系统支持人员等。
软件开发人员在单元测试验证过程中,记录业务程序的运行过程来进行处理逻辑/步骤的分析;
测试人员录制业务程序运行脚本,用于执行自动化和并发压力测试;
支持人员记录最终用户环境中运行过程,用于分析问题进行系统支持。
2、组件使用者:主要进行脚本的录制和回放动作。在系统运行的同时,本装置以插件的方式完整的记录业务程序中所有的UIP业务方法的请求动作,并保存到配置的存储介质中。通过回放功能,对指定的运行脚本进行自动/交互模式进行回放操作,重现用户的操作过程或测试系统的功能。
此角色可以为最终用户、应用软件系统支持人员、测试人员、自动化测试系统。
最终用户通过正常的操作应用软件系统产生的运行脚本文件,提供给软件支持人员;
支持人员通过工具查看/执行用户的操作脚本,来分析是用户的操作问题还是软件系统的缺陷;
测试人员根据测试阶段的要求,录制符合规模和性能要求的运行脚本;
自动化测试系统调用测试人员录制的脚本,进行不同规模场景下的自动化测试。
3、测试员:主要通过运行预录制好的脚本,在系统开发过程中的功能验证工作,保证在系统的每一次更新过程中,原有业务功能的正确执行。
本实施例的数据交互装置实现过程中,主要提供四个包来划分系统类:
1)Recorder:提供在DotNet的UIP组件在运行过程中,记录GUI组件与其发生的方法交互过程中的数据,包括方法和执行参数,根据配置参数,保存UIP脚本到指定的存储介质中,也可以通过电子邮件方式进行发送。
2)RunnerLib:以服务方式提供UIP命令回放的功能,读取以Xml文件格式存放的命令脚本进行回放。
3)Runner:提供GUI操作界面来执行UIP脚本回放任务,完成脚本重复执行动作,收集输出执行过程中产生的业务逻辑错误和系统异常信息。
4)OutSys:系统使用的外部类定义和接口定义。
如图4所示,在Recorder包中主要定义了给外部使用的UIP命令记录接口和其缺省的实现类,UIP对象需要创建UIPTaskManager类实例来实现记录脚本的能力。
1)在ICommandRecorder接口中定义了UIP执行命令记录的调用规范,实现此接口的类具有记录UIP调用方法及其调用参数数据的能力。其具体方法约定有:
StartRecorder([in]aID:GUID,[in]aController:IController,[in]aResult:TaskResult):此方法用于开始记录一个Task序列。aID:记录ID;aController:当前发生Task调用的Controller对象;aResult:实现Icontroller接口的对象初始化参数。
RecordTask([in]aTask:Task,[in]aMethod:String):此方法用于记录一个UIP执行命令。aTask:UIP方法执行参数封装对象;aMethod:UIP对象实例中被调用的方法名。
StopRecorder():此方法用于停止Task记录。
2)在ICommandPlayer接口中定义了UIP命令回放的调用规范,实现此接口的类具有通过已记录的UIP命令脚本进行UIP命令重新执行的能力,以达到重复运行测试的效果。其具体方法有:
Load([in]aModule:String,[in]aProgram:String,[in]aParas:object):Boolean:此方法用于加载指定的Task命令文件,准备开始回放动作。aModule:加载的系统模块代号;aPrograme:加载的系统功能程序名(UIP类名);aParams:初始化附加参数。
Play():开始播放。
Pause():暂停播放。
Stop():停止播放。
Reset():复位,指向脚本中第一个UIP方法执行定义参数。
NextTask():Task:获取下一个方法执行定义参数。
3)UIPTaskManager类实现了ICommandPlayer接口和ICommandRecorder接口,作为系统缺省功能实现类。
_appender:根据配置文件创建的UIP执行命令保存处理类实例。
_loader:根据配置文件创建的UIP执行脚本加载处理类实例。
_taskDs:暂时在一次UIP执行命令记录/回放过程中所有的执行方法定义参数数据。
Actived:获取/设定系统在运行时,是否可以记录或回放UIP执行命令/脚本。
4)UIPRecoderException类用于定义捕获在执行UIP执行命令记录/执行脚本回放过程中产生的异常信息。
如图5所示,Recorder.Common包中的类主要用于实现对脚本存储介质的操作接口方法和对UIP执行命令的Xml串行化操作。
1)DBOperator类主要用于以数据库为存储介质时,把UIP执行命令信息存储到指定的数据库中,以及从数据库检出指定的UIP执行脚本。
2)FileReadWrite类提供静态方法把Xml化的UIP执行命令保存到文件系统中,以及从文件系统中取出。
3)XmlDataCreateor类和TaskXmlCreator类主要用于把UIP执行命令Xml串行化。
AddRecorderInfo([in]aRecorderID:object,[in]aAssemblyName:String,[in]aClassName:String,[in]aRecorderInfo:TaskRecoderInfo):此方法主要用于记录Task执行初始信息。aRecorderID:机器识别标识。aAssemblyName:UIP对象所在程序集名称;aClassName:UIP对象类名;ARecorderInfo:当前使用的IcommandRecoder实现对象的描述信息。
AddTask([in]aTaskInfo:UIPControllerMethodInfo):此方法用于记录UIP执行命令的详细描述信息。aTaskInfo:UIP执行命令描述信息。
如图6所示,Recorder.Appender中定义了存储介质的操作规范和部分缺省实现。
1)IAppender接口规范了实现UIP执行命令输出的方法定义。其具体定义为:
Name:设置、获取存储体(Appender)的名称。
ConfigAppender([in]aXmlDom:XmlElement)。根据配置信息设定记录器的运行参数。aXmlDom:从配置文件中提取的相应配置片断,用于定义输出装置的运行时参数。
InitAppender([in]aRecorderID:GUID,[in]aController:IController,[in]aResult:TaskResult):此方法用于初始化记录器。aRecorderID:记录ID;aController:当前发生Task调用的Controller对象;aResult:实现Icontroller接口的对象初始化参数。
DoAppend([in]aTask:Task,[in]aMethod:String):此方法用于记录一个UIP执行命令到存储介质中。aTask:UIP方法执行参数封装对象;aMethod:UIP对象实例中被调用的方法名。
Close():释放所有被当前存储体(Appender)占有的资源,如文件句柄、网络链接等等。
2)ADONetAppender类实现以数据库方式存储UIP执行脚本。
3)ConsoleAppender类实现以控制台方式直接输出Xml串行化的UIP执行脚本。
4)SmtpAppender类实现以电子邮件方式收集UIP执行命令,并发送到指定的邮箱中。
5)XmlFileAppender类实现以文件方式存储UIP执行脚本,这是系统使用的缺省方式。
如图7所示,Recorder.Persistent包中定义的类主要实现了对对象的持久化和反持久化操作。
1)ICreateObject接口定义了一组从文件或流中反持久化成一个对象的方法规范。
2)IPersistendObject接口定义了一组把对象持久化成Xml或流的方法规范。
3)IPersistent泛化了以上两个接口。
4)TaskPersistent类实现了IPersistend接口方法,主要针对UIP执行命令定义信息(Task)进行持久化和反持久化操作,即把一个Task对象转换成一个Xml字符串流,或者把一个Xml字符串流转换成一个Task对象。
如图8所示,RunnerLib包中定义了专门提供给外部系统调用UIP脚本回放功能的服务接口。
1)RunnerFactory类是创建回放组件的工厂类,其主要功能为:应用软件系统的登录/登出动作,创建指定运行脚本的回放器对象。
SysLogin(string pSubId,string UserId,string Pwd,string appServer,string operDate,string dataSource,string WorkStationSerial):string:执行应用软件系统的登录动作,必须在当前的运行进程中完成目标系统的登录动作后,回放器才能执行正常的回放动作,因为通过登录才能构造出回放器所需要的运行环境。
CreateRunner(string recordID,string filePath):RunnerByDS:使用指定的运行时唯一标识和外部XML文件,创建一个回放对象。
void SysShutDown():在所有的回放器使用结束后,执行此方法来登录应用软件系统。
2)RunnerByDs类是实现运行脚本回放动作的对象实现,使用指定的外部运行脚本文件来执行回放动作。在创建RunnerByDs对象时指定了运行时唯一标识和需要回放的脚本文件路径。
Run():Bool:执行运行脚本中的所有Task任务。
RunStep():Bool:以单步方式执行脚本回放,即每调用一次只执行一个Task任务。
3)CallStackDs类是一个数据对象类,其一个实例中存放了对应的一个外部运行脚本中的所有Task任务,被使用于RunnerByDs对象。
4)PersistentObject类主要用于把外部运行脚本文件反序列化成CallStackDs对象,提供给RunnerByDs对象使用。
图9是根据本实施例的数据交互装置得到的UIP运行脚本记录交互示意图。
主要运行过程:
步骤902,当业务程序被创建时,系统会创建一个记录器对象并绑定到业务程序,在记录器中同时会跟配置信息创建指定的XML对象生成对象;
步骤904,在发生的每一次方法请求调用时,记录器会截获请求信息,并把详细的数据记录到XML对象中;
步骤906,在业务程序关闭后,系统会通知记录器对象,记录器对象会把内存中的一系列XML对象进行持久化处理,写入到配置的外部存储介质中。
图10是根据本发明的实施例的数据交互控制装置得到的UIP运行脚本回放交互示意图。
主要运行过程:
步骤1002,外部组件或自动回放组件创建一个RunnerFactory组件对象,并进行应用软件系统的登录动作来创建回放器所需要的运行环境;
步骤1004,使用RunnerFactory对象创建一个回放器对象,并指定回放器对象所要回放的运行脚本文件,及其用于识别的唯一标识;
步骤1006,回放器对象会调用反持久化处理对象,把指定外部运行脚本文件反序列化成内存中的Task任务存储数据对象;
步骤1008,RunnerByDs依次读取CallStackDs对象中的Task任务,执行每一个任务的回放执行动作;
步骤1010,所有Task任务执行完成(中途异常终止)后,可以获取到本次执行过程中产生的错误信息(若存在);
步骤1012,执行应用软件系统的登出动作,完成一次回放动作。
图11是本实施例的数据交互控制装置的构件部署示意图。
1、UFSoft.U8.U8M.UIPRecorder.DLL:提供记录UIP执行命令服务,可提供给相关产品调用。
2、UFSoft.U8.U8M.UIPRunLib.DLL:提供回放UIP执行命令服务,可提供给相关产品调用。
3、UFSoft.U8.U8M.UIPRunner.DLL:GUI方式执行UIP命令的重复回放。
4、UFSoft.U8.U8M.UIPRecorder.Config:UIP执行命令的记录和回放配置文件。
本实施例的数据交互装置的配置文件可以如下:
1、UIPTaskRecorder节点配置了本专利装置的启用开关,以及运行脚本的记录和加载解析类。
2、UIPTaskRecorder_XXXXXAppender节点是针对具体的Appender对象的配置片断,系统在运行过程中通过Factory对象创建了具体的Appender实例后,会以配置片断调用ConfigAppender方法来初始化Appender对象。
本实施例中的数据交互装置的运行脚本格式可以如下:
在一个XML格式的运行脚本文件中,除了包含需要启动的业务程序的信息外,会包括一系列的任务对象描述。
1、<UIP>节点是本脚本文件所记录的业务程序的信息:唯一运行时ID、业务程序的代码实现类、业务程序的模块名、程序编号、当前使用的账套等信息。
2、在<Task>节点详细描述了每一个UIP层所处理的调用方法的详细信息。ID为请求的UIP组件的具体方法的标识,ControllerMethod为控制器用于分发调用的方法名称;其中包含的子XML信息是用于反序列化生成Task对象参数的XML片段,其中包含了具体的参数列表及其对象的调用参数。
综上所述,通过本发明的技术方案,在单元测试阶段,调试跟踪GUI组件开发人员的代码是否按UIP组件开发人员提供的接口执行正常的调用访问,提供的参数是否符合接口要求;通过UIPRecorder服务组件,记录并模拟测试人员操作过程及数据,重现测试现场来调试跟踪代码;在利用LoadRunner效能测试时,直接使用UIPRecorder工具进行测试脚本的录制和回放,达到了模拟用户操作场景的要求,使测试的数据比较准确,性能测试效率大大提高;利用辅助工具组件记录系统在调试运行过程中的中间数据及运行记录,使程序开发人员掌握系统在运行过程中组件接口的访问步骤。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据交互控制装置,其特征在于,包括:
运行脚本记录模块,在应用程序的图形用户界面组件向用户界面处理组件发出调用请求时,将调用请求的数据信息记录为运行脚本;
运行脚本输出模块,在所述图形用户界面组件对所述用户界面处理组件的调用完成后,将所述运行脚本持久化,以保存到存储介质中。
2.根据权利要求1所述的数据交互控制装置,其特征在于,所述数据信息的类型包括调用参数和被调用的方法,所述运行脚本记录模块在所述图形用户界面组件每次对所述用户界面处理组件中的方法进行调用时,都记录所述图形用户界面组件的调用参数以及所述用户界面处理组件中被调用的方法。
3.根据权利要求1所述的数据交互控制装置,其特征在于,还包括:
运行脚本回放模块,将已保存的所述运行脚本反持久化处理,使用反持久化处理得到的数据信息,回放所述图形用户界面组件对所述用户界面处理组件的调用。
4.根据权利要求1所述的数据交互控制装置,其特征在于,所述运行脚本回放模块还捕获在回放所述图形用户界面组件对所述用户界面处理组件的调用过程中的异常信息。
5.根据权利要求1至4中任一项所述的数据交互控制装置,其特征在于,所述运行脚本输出模块根据预设的配置参数选择所述存储介质,并将所述运行脚本以符合所述存储介质的形式,存储到所述存储介质中,其中,所述存储介质的类型包括数据库、扩展标记语言文本、邮件和文件。
6.一种数据交互控制方法,其特征在于,包括:
步骤202,在应用程序的图形用户界面组件向用户界面处理组件发出调用请求时,将调用请求的数据信息记录为运行脚本;
步骤204,在所述图形用户界面组件对所述用户界面处理组件的调用完成后,将所述运行脚本持久化,以保存到存储介质中。
7.根据权利要求6所述的数据交互控制方法,其特征在于,所述数据信息的类型包括调用参数和被调用的方法,所述步骤202具体包括:
在所述图形用户界面组件每次对所述用户界面处理组件中的方法进行调用时,都记录所述图形用户界面组件的调用参数以及所述用户界面处理组件中被调用的方法。
8.根据权利要求6所述的数据交互控制方法,其特征在于,还包括:
步骤206,将已保存的所述运行脚本反持久化处理,使用反持久化处理得到的数据信息,回放所述图形用户界面组件对所述用户界面处理组件的调用。
9.根据权利要求6所述的数据交互控制方法,其特征在于,所述步骤206还包括:
捕获在回放所述图形用户界面组件对所述用户界面处理组件的调用过程中的异常信息。
10.根据权利要求6至9中任一项所述的数据交互控制方法,其特征在于,所述步骤204具体包括:
根据预设的配置参数选择所述存储介质,并将所述运行脚本以符合所述存储介质的形式,存储到所述存储介质中,其中,所述存储介质的类型包括数据库、扩展标记语言文本、邮件和文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102944428A CN102508762A (zh) | 2011-09-29 | 2011-09-29 | 数据交互控制装置和数据交互控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102944428A CN102508762A (zh) | 2011-09-29 | 2011-09-29 | 数据交互控制装置和数据交互控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102508762A true CN102508762A (zh) | 2012-06-20 |
Family
ID=46220854
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011102944428A Pending CN102508762A (zh) | 2011-09-29 | 2011-09-29 | 数据交互控制装置和数据交互控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102508762A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103176890A (zh) * | 2013-03-08 | 2013-06-26 | 清华大学 | 用于记录与重放系统行为的方法及系统 |
CN103699477A (zh) * | 2012-09-27 | 2014-04-02 | 腾讯科技(深圳)有限公司 | 压力测试方法及终端 |
CN104714879A (zh) * | 2013-12-12 | 2015-06-17 | 腾讯科技(深圳)有限公司 | 画面测试方法和装置 |
CN110647571A (zh) * | 2019-09-24 | 2020-01-03 | 集奥聚合(北京)人工智能科技有限公司 | 一种基于多维数据的交互方法及平台 |
CN111737041A (zh) * | 2020-07-31 | 2020-10-02 | 北京搜狐新动力信息技术有限公司 | 软件数据的处理方法、装置、可读介质及设备 |
CN112699279A (zh) * | 2020-12-31 | 2021-04-23 | 百果园技术(新加坡)有限公司 | 组件自动化处理方法、装置、设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11288380A (ja) * | 1998-04-01 | 1999-10-19 | Nec Corp | ソフトウェア開発ツール間インターフェースの評価装置および評価用プログラムを記録した記録媒体 |
US5983001A (en) * | 1995-08-30 | 1999-11-09 | Sun Microsystems, Inc. | Method and system for facilitating the automatic creation of test scripts |
CN101241466A (zh) * | 2007-02-08 | 2008-08-13 | 深圳迈瑞生物医疗电子股份有限公司 | 一种嵌入式软件的测试方法和系统 |
CN101515250A (zh) * | 2009-04-09 | 2009-08-26 | 腾讯科技(深圳)有限公司 | 对软件系统进行测试的方法和装置 |
CN101620564A (zh) * | 2008-06-30 | 2010-01-06 | 福建升腾资讯有限公司 | 终端系统的录制回放模式自动化测试方法 |
-
2011
- 2011-09-29 CN CN2011102944428A patent/CN102508762A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5983001A (en) * | 1995-08-30 | 1999-11-09 | Sun Microsystems, Inc. | Method and system for facilitating the automatic creation of test scripts |
JPH11288380A (ja) * | 1998-04-01 | 1999-10-19 | Nec Corp | ソフトウェア開発ツール間インターフェースの評価装置および評価用プログラムを記録した記録媒体 |
CN101241466A (zh) * | 2007-02-08 | 2008-08-13 | 深圳迈瑞生物医疗电子股份有限公司 | 一种嵌入式软件的测试方法和系统 |
CN101620564A (zh) * | 2008-06-30 | 2010-01-06 | 福建升腾资讯有限公司 | 终端系统的录制回放模式自动化测试方法 |
CN101515250A (zh) * | 2009-04-09 | 2009-08-26 | 腾讯科技(深圳)有限公司 | 对软件系统进行测试的方法和装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103699477A (zh) * | 2012-09-27 | 2014-04-02 | 腾讯科技(深圳)有限公司 | 压力测试方法及终端 |
CN103699477B (zh) * | 2012-09-27 | 2017-11-07 | 腾讯科技(深圳)有限公司 | 压力测试方法及终端 |
CN103176890A (zh) * | 2013-03-08 | 2013-06-26 | 清华大学 | 用于记录与重放系统行为的方法及系统 |
CN103176890B (zh) * | 2013-03-08 | 2016-06-01 | 清华大学 | 用于记录与重放系统行为的方法及系统 |
CN104714879A (zh) * | 2013-12-12 | 2015-06-17 | 腾讯科技(深圳)有限公司 | 画面测试方法和装置 |
CN104714879B (zh) * | 2013-12-12 | 2018-01-23 | 腾讯科技(深圳)有限公司 | 画面测试方法和装置 |
CN110647571A (zh) * | 2019-09-24 | 2020-01-03 | 集奥聚合(北京)人工智能科技有限公司 | 一种基于多维数据的交互方法及平台 |
CN111737041A (zh) * | 2020-07-31 | 2020-10-02 | 北京搜狐新动力信息技术有限公司 | 软件数据的处理方法、装置、可读介质及设备 |
CN112699279A (zh) * | 2020-12-31 | 2021-04-23 | 百果园技术(新加坡)有限公司 | 组件自动化处理方法、装置、设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102508762A (zh) | 数据交互控制装置和数据交互控制方法 | |
CN105912473B (zh) | 基于bdd的移动app自动测试平台和测试方法 | |
CN102331970B (zh) | 面向安全苛刻系统的自动化测试资源管理方法及其平台 | |
US7562255B2 (en) | Configurable system and methods for writing and executing test components | |
CN100472434C (zh) | 智能ui记录和重放结构 | |
CN103019791B (zh) | 软件部署方法及软件部署系统 | |
US20100115496A1 (en) | Filter generation for load testing managed environments | |
CN1981202A (zh) | 模块化测试系统中的数据日志支持 | |
CN101960448A (zh) | 当前执行组件脚本的元素的识别 | |
CN108460199B (zh) | Cni建模系统 | |
Cook et al. | Utilizing MBSE patterns to accelerate system verification | |
CN101311897A (zh) | 一种抓取应用程序的图形用户界面资源的方法及装置 | |
CN103729294A (zh) | 应用软件性能脚本测试方法与装置 | |
CN101794224A (zh) | 一种基于性质规约模式的软件运行时性质监测方法 | |
CN106598834A (zh) | Ui测试方法及装置 | |
CN109933521A (zh) | 基于bdd的自动化测试方法、装置、计算机设备及存储介质 | |
CN106919494A (zh) | 安卓应用日志的实现方法和装置 | |
Dranidis et al. | JSXM: A tool for automated test generation | |
Wan et al. | Investigation on composition mechanisms for cyber physical systems | |
Bouquet et al. | Requirements traceability in automated test generation: application to smart card software validation | |
CN107808020A (zh) | 基于形式化模型开发的计算机联锁软件开发与实现系统 | |
CN103049374A (zh) | 一种自动化测试的方法及装置 | |
CN109582542A (zh) | 一种嵌入式系统核心转储的方法 | |
Ramler et al. | Applying automated test case generation in industry: a retrospective | |
CN101976196B (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120620 |