CN103198014B - 一种scorm包智能对接检测方法及检测装置 - Google Patents
一种scorm包智能对接检测方法及检测装置 Download PDFInfo
- Publication number
- CN103198014B CN103198014B CN201310085444.5A CN201310085444A CN103198014B CN 103198014 B CN103198014 B CN 103198014B CN 201310085444 A CN201310085444 A CN 201310085444A CN 103198014 B CN103198014 B CN 103198014B
- Authority
- CN
- China
- Prior art keywords
- scorm
- api
- bag
- commissioning
- code
- 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.)
- Active
Links
Landscapes
- Stored Programmes (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种scorm包智能对接检测方法及检测装置,通过建立离线仿真LMS系统,自动完成scorm包文本代码检测,scorm包根据检测结果自动搜索并定位所述仿真LMS系统的API实例,调用API实例中的API方法对scorm包的相应代码进行调测,来判断所述scorm包是否符合规范,符合规范的scorm包可以在实际LMS系统进行部署,对不符合规范的scorm包中不符合规范的代码生成错误日志。该方法不需要详细了解规范及查看代码中的详细内容即可完成不同类型scorm包的检测,能够有效减少scorm包的对接时间,提高了scorm包检测的效率及准确性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种scorm包智能对接检测方法及检测装置。
背景技术
共享内容对象参考模型(SharableContentObjectReferenceModel,SCORM)是对于数字内容教材的制作、内容开发提供的一套共通的规范。它主要提供了一套基于现有的教育标准的实现准则和例子,提供远程教育的实现及应用指南。
SCORM课程由不同的内容提供商制作完成。SCORM课程或者子课程都是以包交换格式的形式交付的,包含了同课程/子课程内容相关的所有的文件:内容、关于内容的元数据、关于课程的元数据以及课程结构等(比如带有序列和导航信息的目录等)。
SCORM的关键在于要让包具有互操作性,实现能让scorm包同任何LMS互操作的方法。如何检测scorm包是否符合SCORM规范是目前所面临的问题。
现有的技术方案是采取在LMS平台上上传socrm包之后,通过SCORM规范中约定的通讯原理进行人工代码调测。该种调测方式具有如下缺点:1)需要深入了解SCORM规范中的详细条款,才能针对规范中所约定的代码形式及内容进行调测;2)针对包中存在的问题需要逐行调测,而且,每次遇到不符合SCORM规范的代码,只是简单报错,退出该scorm包调测过程,调测效率低;3)在SCORM平台中可以存放成百上千的scorm包,针对每个引进的包都需要进行单独的调测,需要投入巨大的人力成本跟踪。
发明内容
本发明要解决的技术问题是提供一种scorm包智能对接检测方法及检测装置,能够在不需要详细了解规范及查看代码中的详细内容的情况下即可完成不同类型scorm包的检测。
为达到上述目的,本发明是通过以下技术方案来实现的:
一种scorm包智能对接检测方法,该方法包括,
S1:获取scorm包;
S2:对所述scorm包的文本代码进行检测,若所述scorm包的文本代码全部正确,执行步骤S3;
S3:所述scorm包自动搜索并定位预先建立的仿真LMS系统的API实例,建立scorm包与所述仿真LMS系统间的通信链路;
S4:调用API实例中的标准API方法对相应代码进行调测;S5:若所述代码全部通过调测,执行步骤S6;否则,生成关于逻辑的错误日志;
S6:转移存储所述scorm包,执行步骤S1。
其中,所述scorm包为批量获取的不同类型的scorm包。
进一步地,所述方法还包括,若所述scorm包的文本代码存在错误,则所述scorm包自动搜索并定位预先建立的仿真LMS系统的API实例,建立scorm包与所述仿真LMS系统间的通信链路,并检测所述scorm包各API方法接口名称是否正确,接口名称正确的API方法,调用API实例中的标准API方法对相应代码进行调测;接口名称错误的API方法,调用API实例中的非标准API方法对相应代码进行调测。
进一步地,所述scorm包的文本代码存在错误,调用API实例中的非标准API方法对所述接口名称错误的API方法进行调测时,如代码通过调测,则生成关于文本代码格式或者scorm包API接口名称的错误日志;否则,生成关于逻辑的错误日志。
进一步地,所述scorm包的文本代码存在错误,调用API实例中的标准API方法对所述接口名称正确的API方法进行调测时,如代码通过调测,则生成关于文本代码格式的错误日志;否则,生成关于逻辑错误的错误日志。
进一步地,所述步骤S4中所述scorm包自动搜索并定位所述仿真LMS系统的API实例包括,
S401:scorm包通过JS脚本语言搜索浏览器窗口中当前SCO执行的窗口;
S402:如当前SCO执行窗口无法定位API执行的公共接口,则将所述当前SCO执行窗口的上一级窗口作为搜索窗口继续搜索,直至在某个上一级窗口定位到API执行的公共接口。
进一步地,所述方法还包括,
将所述转移存储的scorm包上传到实际LMS系统进行部署。
相应地,本发明还公开一种scorm包智能对接检测装置,所述装置包括,
获取单元,用于获取scorm包;
第一检测单元,用于对所述scorm包的文本代码进行检测;
API调用单元,用于当scorm包自动搜索并定位到预先建立的仿真LMS系统的API实例时,建立scorm包与所述仿真LMS系统间的通信链路;
第一调测单元,用于当scorm包文本代码正确且API方法接口名称全部正确时,调用API实例中的标准API方法对相应代码进行调测;
第一执行单元,用于当所述scorm包各API方法接口全部通过调测时,将所述scorm包转移存储,由获取单元重新获取scorm包。
进一步地,所述装置还包括,
第二检测单元,用于检测文本代码存在错误的scorm包各API方法接口名称;
第二调测单元,用于当scorm包的文本代码存在错误,scorm包API方法接口名称错误时,调用API实例中的非标准API方法对相应代码进行调测;scorm包API方法接口名称正确时,调用API实例中的标准API方法对相应代码进行调测。
进一步地,所述装置还包括,
第二执行单元,用于在调用API实例中标准API方法对进行代码调测未通过时,生成关于逻辑的错误日志;在调用API实例中标准API方法对进行代码调测通过时,生成关于文本代码格式的错误日志;在调用API实例中非标准API方法对进行代码调测未通过时,生成关于逻辑的错误日志;在调用API实例中非标准API方法对进行代码调测通过时,生成关于文本代码格式或者scorm包API接口名称的错误日志。
进一步地,所述scorm包为批量获取的不同类型的scorm包。
本发明的技术方案,不需要详细了解规范及查看代码中的详细内容即可完成不同类型scorm包的检测,能够有效减少scorm包的对接时间,提高了包检测的效率及准确性。
附图说明
图1为本发明实施例提供的scorm包智能对接检测方法流程图;
图2为本发明实施例提供的scorm包智能对接检测装置结构框图;
图3为本发明scorm包自动搜索并定位所述仿真LMS系统的API实例的示意图;
图4为本发明API的示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明。
图1为本发明实施例提供的scorm包智能对接检测方法流程图。如图1所述,该方法具体流程如下:
步骤101:提供离线仿真LMS系统,所述仿真LMS系统提供一个标准的API实例。
LMS系统是控制和传递学习内容的软件,它提供资源分配、时序安排、输入输出控制和数据管理。LMS系统可以在自己的平台上部署任何一个符合SCORM规范的scorm包;一个scorm包可以部署在任何遵守SCORM规范的LMS上,可以被其他包检索、重用及组合。
LMS系统中,运行时间环境(RTE)为LMSs定义了一个通用的方法来启动内容对象,包括内容对象的运行SCO和Asset,和SCO交流的管理,运行时间环境数据模型管理;应用编程接口(API)用于限定LMSAPI要求,SCO传递要求、传递错误控制等;运行时间环境数据模型用于数据模型管理和行为要求,数据要求等,数据模型描述了在SCO与LMS之间传送信息数据的模型,如SCO的跟踪信息,SCO的完成状态、一次测试的成绩等数据。在学习者会话中,LMS必须维护来自SCO数据模型的状态信息。而SCO需要利用这些预先定义的信息,以便在不同的LMS中重复使用。SCO运行之后便可以向LMS存储和获取信息。LMS和SCO之间的所有信息传递都由SCO发起,
现有技术中,每一个scorm包的代码需要经人工详细查看后,根据代码的详细内容编写相应代码程序进行调测,需要大量的人工成本跟踪,而且在调测时出现代码不规范的情况,系统只是简单报错,退出调测,调测效率低,在对大量scorm包进行测试时局限性大,同时,人工调测存在很多主观因素,可能会造成调测不准确。为了解决该问题,本实施例中,通过自动检测的方式对每一个scorm包进行调测,减少了人工参与,能够有效提高检测的准确性及检测效率。
程序开发人员通过编写代码建立离线仿真LMS系统,所述仿真LMS系统能够完全仿真实际LMS平台的功能,除此之外,所述仿真LMS系统还具有与实际LMS平台不同的功能。
SCORM规定LMS系统必须提供一个符合标准的API实例,该API实例实现了SCORM所规定的API方法。为了给SCO提供API实例,所述仿真LMS系统提供了一个标准的API实例。仿真LMS必须实现访问或定位API实例的功能,建立仿真LMS系统与SCO间的通信链路,才能对scorm包进行调测。为了实现该功能,所述仿真LMS系统提供一个名为”API_1484_11”的API实例,仿真LMS提供使SCO通过ECMAScript脚本能够访问到该API实例。
本实施例中采用仿真LMS进行scorm包调测的原理:批量获取不同内容提供商提供的scorm包,所述scorm包自动搜索并定位所述仿真LMS系统提供的API实例,建立内容对象(scorm包)和LMS之间的通信链路,调用API示例中的API方法对所述scorm包进行调测。
步骤102:获取scorm包。
从不同内容提供商处批量获取scorm包,所述scorm包的类型不同。但是无论哪种类型的scorm包都应符合共通的scorm规范,才能在LMS平台上部署。在SCORM中定义了两种内容对象:Assests(微单元)和SCOs(内容对象)。
步骤103:所述仿真LMS系统对所述scorm包的文本代码进行检测,若所述scorm包的代码全部正确,执行步骤104;否者,执行步骤108。
该步骤主要用于检测scorm包的文本代码是否正确,只涉及scorm包中代码的名称、格式、关键字等信息。通过编写程序并执行,实现完整遍历scorm包代码,通过关键字、格式、名称等比对,将scorm包代码完整输出,从而完成代码检测。本领域技术人员应该容易知道,代码检测程序可以通过能够用来标记数据、定义数据类型的XML编写。XML提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据,非常适合Web传输。XML要求所有的标记必须成对出现,对代码大小敏感,即区分大小写,例如一个scorm包,通过运行检测程序,对代码进行检测,如代码中标记不是成对出现的,或者标记中大小写不一致,都会认为代码存在错误,针对所述错误代码还可以生成相应的关于文本格式的错误日志。
步骤104:所述scorm包自动搜索并定位所述仿真LMS系统的API实例,建立scorm包与所述仿真LMS系统间的通信链路。
API是内容对象与LMS之间传送的信息的一种通信机制。API通过一些使用JS语言编写的API服务实现仿真LMS与学习内容之间的数据沟通。通用API的使用能够满足SCORM对互操作和重用的高水平要求,为SCO和LMS之间的沟通提供标准的方法,避免SCO开发者设计专门的沟通方法。
使用API可以开始、结束、获取、存储数据等动作。这种通讯通过公共的API进行标准化,同样适用于本发明的方针LMS系统。图4为API的示意图。如图4所示,API、API执行和API实例分别具有自己的含义:
API是SCORM定义的一组scorm包与LMS之间的调用函数;
API执行是LMS功能软件的一部分,它内部实现API和暴露API函数给SCORM执行。API执行使用相同的公共接口并遵守接口的语义,使API执行功能不与SCO的开发相关。LMS只需要提供API执行来执行API的功能并将它的公共接口暴露给客户端SCO。
API实例是一个单独的执行情况和API执行状态。API实例代表在SCO操作中与SCO交互的执行软件的一部分。
LMS可以在浏览器的子窗口中执行SCO,SCO通过API与LMS进行通信。因此,SCO必须能寻找和定位API实例,这样SCO就可以通过LMS对学习者进行跟踪。
本实施例中,仿真LMS系统批量获取scorm包后,系统自动指定在某个目录下执行,当然也可以通过手动方式设置在哪个目录下执行所述scorm包。在SCORM环境中,内容对象SCO是运行于web浏览器窗口中,API实例也是在浏览器的窗口进行加载。现有的SCO通常只有搜索当前SCO执行窗口的能力,如果SCO运行窗口即为加载API的浏览器的窗口,则SCO在当前运行窗口即可定位到API执行的公共接口;如果SCO运行窗口与加载API的浏览器的窗口为不同的窗口,则SCO无法定位到API执行的公共接口,也就无法建立与LMS系统的通信连接。
本实施例可以通过浏览器提供的DOM树定位API实例。DOM对一个页面中的所有对象的结构进行了组织。SCO通过JS来搜索和定位API实例。为了让SCO能找到API实例,IEEE为API实例对象在DOM树中定义了一个强制性名字:API_1484_11。仿真LMS系统中API调用要求scorm包具有通过JS脚本语言搜索多层级窗口的能力,即scorm包通过JS脚本语言搜索浏览器窗口中当前SCO执行的窗口;如当前SCO执行窗口无法定位API执行的公共接口,则将当前SCO执行窗口的上一级窗口作为搜索窗口继续搜索,直至在某个上一级窗口定位到API执行的公共接口。SCO必须按照这种方式搜索API实例,直到API实例被发现。
图3为本发明scorm包自动搜索并定位所述仿真LMS系统的API实例的示意图。如图3所示,SCO在浏览器的子窗口中被执行,SCO通过JS脚本语言搜索当前SCO执行窗口的父窗口1,父窗口1的父窗口2,父窗口2的父窗口3,在父窗口3定位到仿真LMS系统的API实例的API执行公共接口,建立SCO与仿真LMS之间的通信链路。本实施例中只是以3个父窗口为例进行了说明,所述父窗口的个数并没有严格的限定,只要求scorm包具有自动搜索并定位父窗口的功能,即可以在其中某个父窗口定位到API实例的API执行公共接口。在哪个窗口定位到API实例与scorm包的自动搜索能力有关外,还与浏览器在哪个窗口加载API实例有关。
步骤105:调用API实例中的标准API方法对相应代码进行调测。
所述标准API方法是指符合SCORM规范的接口名称正确的API方法。如Initilize(),Finish()等。
在SCORM的标准中,API定义了8个主要的function,分别是LMSInitilize,LMSFinish,LMSSetValue,LMSGetValue,LMSCommit,LMSGetLastError,LMSGetErrorString,LMSGetDiagnostic,其中又以LMSGetValue和LMSSetValue最为复杂。SCO找到了API实例,且SCO中API方法接口名称正确的情况下,SCO就可以调用标准API方法对代码进行调测。在SCORM标准中,SCO与LMS的通讯是由APIAdapter来完成的。以下是对所述主要function的逻辑流程的描述:
LMSInitialize:LMSInitialize负责启动SCO,当学习者进入开始阅读一个SCO时,SCO第一步就是先要呼叫LMSInitialize,LMSInitializefunction判断该学员之上课记录,当学员第一次阅读该门课的该SCO时,LMSInitialize就会将设定初值至相关的环境变量;若学习者并不是第一次阅读该SCO,LMSInitialize则必须将该学习者之前的上课记录取出,并存入环境变量中,如此即完成启动SCO之动作。
LMSFinish:当学习者阅读完并要离开一个SCO时,在结束时SCO便会将呼叫LMSFinish,LMSFinish主要负责将环境变量重设,并判断该SCO是否在结束之前己经有呼叫LMSCommit将所有记录回存至LMS,若尚未储存,则会自动呼叫将所有学习者在该SCO的上课记录回存。
LMSSetValue:LMSSetValue是负责主要交互的函数,负责储存所有相关的学习记录,当SCO呼叫欲将某个datamodel回存时,LMSSetValue第一步先判断所欲回存之datamodel,判断该datamodel是否可以set(写入),其次判断其型别,当型别错误时,记录其ErrorCode,当型别检查通过时,则依SCORM1.2RTE所订定该datamodel的处理规则,并将数据存入内存中。
LMSGetValue:LMSGetValue主要负责将数据由LMS取出,当SCO呼叫LMSGetValue时,LMSSetValue会先判断datamodel是否可以读取,若不可读取,则写入其错误代码;若该datamodel是可以读取,则进取出其值并回传给SCO。但在设计时,如同LMSSetValue并没有直接和receiver相连,所以是将数据由暂存的内存中取出。
LMSCommit:LMSCommit主要负责将所有暂存在内存中的学习记录,回存到LMS,当LMSCommit被呼叫时,会将所有之暂存数据组成XML文件,再应用XMLHTTP对象将数据POST到Receiver,当Receiver收到这个Request时,就会解译所传入之XML文件,再将XML文件中的数据直接存入数据库中。
若该函数将返回一个错误代码,每次APIfunction呼叫后,该函数的值将被重置。
步骤106:检测代码是否全部通过调测,若是,执行步骤107;否则,执行步骤114,生成关于逻辑的错误日志。
前面已经对代码进行了检测,所以代码本身是不存在错误的,如果调测没有全部通过,说明代码在调测过程中的逻辑可能不通,无法调用,因此生成关于逻辑的错误日志。
步骤107:转移存储所述scorm包,执行步骤102。按照上述列举的function功能的测试,当scorm包的各API方法接口名称正确且相应的API方法代码全部通过检测,说明所述scorm包是符合SCORM规范的。
所述符合SCORM规范的scorm包可以直接上传到实际的LMS平台进行部署。如果所述符合SCORM规范的scorm包目前还不需要进行部署,可以将该scorm包转移存储。然后获取下一个scorm包。
步骤108:所述scorm包自动搜索并定位所述仿真LMS系统的API实例,建立scorm包与所述仿真LMS系统间的通信链路。
该步骤中,文本代码存在错误的scorm包自动搜索并定位所述仿真LMS系统的API实例,实现的步骤与步骤104相同,详细过程请参见步骤104部分的详细描述。
步骤109:检测scorm包各API方法接口名称,接口名称正确的API方法,执行步骤110;接口名称错误的API方法,执行步骤112。
scorm包与仿真LMS系统建立通信链路之后,需要检测所述scorm包的各API方法接口名称是否正确,根据API方法接口名称执行不同的API方法对scorm包的代码进行调测。
步骤110:调用API实例中的标准API方法对相应代码进行调测。
所述标准API方法的调用与步骤105的步骤相同,采用正确的接口名称调用API方法进行调测。
步骤111:判断代码调测是否全部通过,若是,执行步骤114,生成关于文本代码格式的错误日志;否则,执行步骤114,生成关于逻辑的错误日志。
针对scorm包的接口名称正确的API方法调用API实例中标准的API方法进行调测,调测通过,说明scorm包的接口名称正确的API方法代码是符合SCORM规范的。
步骤112:调用API实例中的非标准API方法对错误接口相应代码进行调测。
所述非标准API方法用于调测scorm包中API接口名称错误的API方法,目的是通过具有容错能力的非标准API方法对接口名称错误的API方法进行调测,使得scorm包中API接口名称存在错误的情况下,仍然能够完成对相应代码的调测,并根据调测结果生成错误日志。
非标准API方法在进行调测时,存在两种情况:一是接口名称错误的API方法调测通过,这说明scorm包中所述接口名称错误的API方法可以运行,只涉及其中的某些参数存在不符合规范的地方;另一种接口名称错误的API方法调测未通过,说明scorm包中所述接口名称错误的API方法存在逻辑错误,使得scorm包无法正常执行。
步骤113:检测代码是否通过调测,若是,执行步骤114,生成关于文本代码格式或者API接口名称的错误日志;否者,执行步骤114,生成关于逻辑的错误日志。
本实施例中,步骤114生成错误日志的情况有多种,如:在调用API实例中标准API方法对进行代码调测未通过时,生成关于逻辑的错误日志;
在调用API实例中标准API方法对进行代码调测未通过时,生成关于文本代码格式的错误日志;
在调用API实例中非标准API方法对进行代码调测未通过时,生成关于逻辑的错误日志;
在调用API实例中非标准API方法对进行代码调测通过时,生成关于文本代码格式或者API接口名称的错误日志等。
无论生成哪一类型的错误日志,都说明在测的scorm包是不符合SCORM规范的。对于生成错误日志的scorm包,需要返回给内容提供商。根据错误日志记录的信息,开发人员对scorm包的代码进行校正,然后将校正后的scorm包重新打包返回给仿真LMS系统,校正后的scorm包等待与所述仿真LMS系统重新建立通信连接,所述仿真LMS系统继续对校正后的scorm包进行调测。
本实施例通过编写代码建立仿真LMS系统,利用获取的scorm包搜索并定位API实例建立通信链路,自动检测执行SCORM规范中所要求的代码,通过程序实现对scorm包代码的自动检测,根据规范中的函数名称,函数执行的顺序,函数执行的入参、函数执行的出参,逐一进行检查,是否满足规范要求。对于没有满足要求的代码形成错误日志,根据错误日志,对scorm包中的代码进行重新修改,修改完成后,再次进行检测执行。该方法能够实现不需要了解规范及查看代码中的详细内容即可完成不同类型scorm包的检测,能够有效减少scorm包的对接时间,提高了包检测的效率。
图2为本发明实施例的scorm包智能对接检测装置的结构框图。如图2所示,所述装置基于离线仿真LMS系统实现,所述仿真LMS系统提供一个标准的API实例,该装置包括,
获取单元201,用于获取scorm包;
第一检测单元202,用于对所述scorm包的文本代码进行检测;
API调用单元203,用于当scorm包自动搜索并定位到所述仿真LMS系统的API实例时,建立scorm包与所述仿真LMS系统间的通信链路;
第一调测单元204,用于当scorm包文本代码正确且API方法接口名称全部正确时,调用API实例中的标准API方法对相应代码进行调测;
第一执行单元205,用于当所述scorm包各API方法接口全部通过调测时,将所述scorm包转移存储,由获取单元重新获取scorm包。
第二检测单元206,用于检测文本代码存在错误的scorm包各API方法接口名称;
第二调测单元207,用于当scorm包的文本代码存在错误,scorm包API方法接口名称错误时,调用API实例中的非标准API方法对相应代码进行调测;scorm包API方法接口名称正确时,调用API实例中的标准API方法对相应代码进行调测。
第二执行单元208,用于在调用API实例中标准API方法对进行代码调测未通过时,生成关于逻辑的错误日志;在调用API实例中标准API方法对进行代码调测通过时,生成关于文本代码格式的错误日志;在调用API实例中非标准API方法对进行代码调测未通过时,生成关于逻辑的错误日志;在调用API实例中非标准API方法对进行代码调测通过时,生成关于文本代码格式或者scorm包API接口名称的错误日志。
其中,所述装置在运行SCO时,SCO必须先搜索API实例,直到API实例被发现,为了让SCO能找到API实例,IEEE为API实例对象在DOM树中定义了一个强制性名字:API_1484_11。所述仿真LMS系统中API调用要求scorm包具有通过JS脚本语言搜索多层级窗口的能力,即scorm包通过JS脚本语言搜索浏览器窗口中当前SCO执行的窗口;如当前SCO执行窗口无法定位API执行的公共接口,则将当前SCO执行窗口的上一级窗口作为搜索窗口继续搜索,直至在某个上一级窗口定位到API执行的公共接口。
所述scorm包为批量获取的不同类型的scorm包。
对于生成错误日志的scorm包,需要返回给内容提供商。根据错误日志记录的信息,开发人员对scorm包的代码进行校正,然后将校正后的scorm包重新打包返回给仿真LMS系统,等待与所述仿真LMS系统建立通信连接,继续对校正后的scorm包进行调测。
本发明的技术方案,通过建立离线仿真LMS系统,使得从不同内容提供商批量获取的scorm包都能自动搜索并定位所述仿真LMS系统的API实例,调用API实例中的API方法对scorm包的相应代码进行检测,来判断所述scorm包是否符合规范,符合规范的scorm包可以在实际LMS系统进行部署,不符合规范的scorm包,对不符合规范的代码生成错误日志。该方法不需要了解规范及查看代码中的详细内容即可完成不同类型scorm包的检测,能够有效减少scorm包的对接时间,提高了包检测的效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如:ROM/RAM、磁碟、光盘等。
上述仅为本发明的较佳实施例及所运用技术原理,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围内。
Claims (10)
1.一种scorm包智能对接检测方法,其特征在于,该方法包括,
S0:提供离线仿真LMS系统,所述仿真LMS系统提供一个标准的API实例;
S1:获取scorm包;
S2:通过检测scorm包中代码的名称、格式和关键字,对所述scorm包的文本代码进行检测,若所述scorm包的文本代码全部正确,执行步骤S3;
S3:所述scorm包自动搜索并定位预先建立的仿真LMS系统的API实例,建立scorm包与所述仿真LMS系统间的通信链路;
S4:调用API实例中的标准API方法对相应代码进行调测;S5:若所述代码全部通过调测,执行步骤S6;否则,生成关于逻辑的错误日志;
S6:转移存储所述scorm包,执行步骤S1;
其中,所述scorm包为批量获取的不同类型的scorm包。
2.根据权利要求1所述的scorm包智能对接检测方法,其特征在于,所述方法还包括,若所述scorm包的文本代码存在错误,则所述scorm包自动搜索并定位预先建立的仿真LMS系统的API实例,建立scorm包与所述仿真LMS系统间的通信链路,并检测所述scorm包各API方法接口名称是否正确,接口名称正确的API方法,调用API实例中的标准API方法对相应代码进行调测;接口名称错误的API方法,调用API实例中的非标准API方法对相应代码进行调测。
3.根据权利要求2所述的scorm包智能对接检测方法,其特征在于,所述scorm包的文本代码存在错误,调用API实例中的非标准API方法对所述接口名称错误的API方法进行调测时,如代码通过调测,则生成关于文本代码格式或者scorm包API接口名称的错误日志;否则,生成关于逻辑的错误日志。
4.根据权利要求2所述的scorm包智能对接检测方法,其特征在于,所述scorm包的文本代码存在错误,调用API实例中的标准API方法对所述接口名称正确的API方法进行调测时,如代码通过调测,则生成关于文本代码格式的错误日志;否则,生成关于逻辑错误的错误日志。
5.根据权利要求1所述的scorm包智能对接检测方法,其特征在于,所述步骤S4中所述scorm包自动搜索并定位所述仿真LMS系统的API实例包括,
S401:scorm包通过JS脚本语言搜索浏览器窗口中当前SCO执行的窗口;
S402:如当前SCO执行窗口无法定位API执行的公共接口,则将所述当前SCO执行窗口的上一级窗口作为搜索窗口继续搜索,直至在某个上一级窗口定位到API执行的公共接口。
6.根据权利要求1所述的scorm包智能对接检测方法,其特征在于,所述方法还包括,
将所述转移存储的scorm包上传到实际LMS系统进行部署。
7.一种scorm包智能对接检测装置,其特征在于,所述装置包括,
提供单元,用于提供离线仿真LMS系统,所述仿真LMS系统提供一个标准的API实例;
获取单元,用于获取scorm包;
第一检测单元,用于通过检测scorm包中代码的名称、格式和关键字,对所述scorm包的文本代码进行检测;
API调用单元,用于当scorm包自动搜索并定位到预先建立的仿真LMS系统的API实例时,建立scorm包与所述仿真LMS系统间的通信链路;
第一调测单元,用于当scorm包文本代码正确且API方法接口名称全部正确时,调用API实例中的标准API方法对相应代码进行调测;
第一执行单元,用于当所述scorm包各API方法接口全部通过调测时,将所述scorm包转移存储,由获取单元重新获取scorm包。
8.根据权利要求7所述的scorm包智能对接检测装置,其特征在于,所述装置还包括,
第二检测单元,用于检测文本代码存在错误的scorm包各API方法接口名称;
第二调测单元,用于当scorm包的文本代码存在错误,scorm包API方法接口名称错误时,调用API实例中的非标准API方法对相应代码进行调测;scorm包API方法接口名称正确时,调用API实例中的标准API方法对相应代码进行调测。
9.根据权利要求7所述的scorm包智能对接检测装置,其特征在于,所述装置还包括,
第二执行单元,用于在调用API实例中标准API方法对进行代码调测未通过时,生成关于逻辑的错误日志;在调用API实例中标准API方法对进行代码调测通过时,生成关于文本代码格式的错误日志;在调用API实例中非标准API方法对进行代码调测未通过时,生成关于逻辑的错误日志;在调用API实例中非标准API方法对进行代码调测通过时,生成关于文本代码格式或者scorm包API接口名称的错误日志。
10.根据权利要求7至9之一所述的scorm包智能对接检测装置,其特征在于,所述scorm包为批量获取的不同类型的scorm包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310085444.5A CN103198014B (zh) | 2013-03-18 | 2013-03-18 | 一种scorm包智能对接检测方法及检测装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310085444.5A CN103198014B (zh) | 2013-03-18 | 2013-03-18 | 一种scorm包智能对接检测方法及检测装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103198014A CN103198014A (zh) | 2013-07-10 |
CN103198014B true CN103198014B (zh) | 2016-01-20 |
Family
ID=48720596
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310085444.5A Active CN103198014B (zh) | 2013-03-18 | 2013-03-18 | 一种scorm包智能对接检测方法及检测装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103198014B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109800394B (zh) * | 2019-01-21 | 2023-03-24 | 中国人民解放军陆军工程大学 | Ietm数据包转换成scorm标准包的方法和工具 |
CN110245112A (zh) * | 2019-06-21 | 2019-09-17 | 同略科技有限公司 | 基于ai的智能化档案管理方法、系统、终端及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1980244A (zh) * | 2005-12-05 | 2007-06-13 | 国际商业机器公司 | 共享内容对象参考模型呈现协调的方法和系统 |
CN101819724A (zh) * | 2010-05-04 | 2010-09-01 | 北京莲宇时空科技有限公司 | 基于scorm的虚拟训练软件平台 |
CN102141918A (zh) * | 2011-04-19 | 2011-08-03 | 北京神州数码思特奇信息技术股份有限公司 | Scorm标准课件支撑技术的实现方法 |
CN102880932A (zh) * | 2012-09-04 | 2013-01-16 | 北京邮电大学 | 一种网络课件系统及学习管理系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040243559A1 (en) * | 2003-05-30 | 2004-12-02 | Brundege Mark Andrew | Client-side search engines |
US8112446B2 (en) * | 2006-12-30 | 2012-02-07 | Agilant Learning Services Llc | Centralized content repositories for distributed learning management systems |
-
2013
- 2013-03-18 CN CN201310085444.5A patent/CN103198014B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1980244A (zh) * | 2005-12-05 | 2007-06-13 | 国际商业机器公司 | 共享内容对象参考模型呈现协调的方法和系统 |
CN101819724A (zh) * | 2010-05-04 | 2010-09-01 | 北京莲宇时空科技有限公司 | 基于scorm的虚拟训练软件平台 |
CN102141918A (zh) * | 2011-04-19 | 2011-08-03 | 北京神州数码思特奇信息技术股份有限公司 | Scorm标准课件支撑技术的实现方法 |
CN102880932A (zh) * | 2012-09-04 | 2013-01-16 | 北京邮电大学 | 一种网络课件系统及学习管理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103198014A (zh) | 2013-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107729243B (zh) | 应用编程接口自动化测试方法、系统、设备及存储介质 | |
US8151276B2 (en) | Test script transformation analyzer with change guide engine | |
US8458662B2 (en) | Test script transformation analyzer with economic cost engine | |
US9292416B2 (en) | Software development kit testing | |
US10067858B2 (en) | Cloud-based software testing | |
US20130007711A1 (en) | Unified model for visual component testing | |
US20110289489A1 (en) | Concurrent cross browser testing | |
US9684587B2 (en) | Test creation with execution | |
US20170185509A1 (en) | Codeless system and tool for testing applications | |
US20200174917A1 (en) | Rapid Automation First-pass Testing Framework | |
CN104123219A (zh) | 测试软件的方法和设备 | |
US8949794B2 (en) | Binding a software item to a plain english control name | |
CN102681933B (zh) | 针对web兼容性和互操作性的代码顾问 | |
US20140109052A1 (en) | Test environment managed within tests | |
CN106502895A (zh) | 一种自动化测试信息生成装置及方法 | |
Sualim et al. | Comparative evaluation of automated user acceptance testing tool for web based application | |
CN103678116A (zh) | 用于促进自动化程序测试的方法和系统 | |
CN103631719A (zh) | 一种Web自动化测试方法和装置 | |
US20100162113A1 (en) | Operation support system, operation support method, and operation support program | |
CN103198014B (zh) | 一种scorm包智能对接检测方法及检测装置 | |
US9292422B2 (en) | Scheduled software item testing | |
CN112241370B (zh) | 一种api接口类的校验方法、系统及装置 | |
Wang et al. | User-oriented reliability modeling for a web system | |
CN110334014A (zh) | 用于用户界面自动化测试方法、系统、服务器及存储介质 | |
US8595648B1 (en) | Script logic graphical mapping |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |