用于进行自动化测试调度的方法和装置与流程

文档序号:29642481发布日期:2022-04-13 18:54阅读:80来源:国知局
用于进行自动化测试调度的方法和装置与流程

1.本公开涉及用于进行自动化测试调度的方法和装置。


背景技术:

2.软件测试是软件项目不可或缺的一个环节,其旨在发现软件错误、保证软件产品的准确性和质量。自动化测试是指借助单独的软件来实现软件测试的下述过程的自动化执行:在预设条件(包括正常条件和异常条件)下运行被测软件,如系统或者应用程序,并评估运行结果。自动化测试能够提高测试效率、节省时间和人力成本,是软件测试的重要发展方向。


技术实现要素:

3.在发明内容部分中,以简化的形式介绍一些选出的概念,其将在下面的具体实施方式部分中被进一步描述。该发明内容部分并非是要标识出所要求保护的主题的任何关键特征或必要特征,也不是要被用于帮助确定所要求保护的主题的范围。
4.根据本公开的一个方面,提供了一种用于进行自动化测试调度的方法,包括:接收待测设备消息和测试脚本消息,其中,所述测试脚本消息所指示的测试脚本将被用于针对所述待测设备消息所指示的待测设备进行测试;将所述测试脚本消息推送到与所述待测设备消息所指示的待测设备相对应的消息队列中,其中,所述消息队列是多个消息队列中的一个消息队列,并且其中,所述多个消息队列中的每一个消息队列分别对应于一台待测设备;由与所述待测设备相对应的消费线程从与所述待测设备相对应的消息队列中取得一个测试脚本消息,其中,所述消费线程是多个消费线程中的一个消费线程,并且其中,所述多个消费线程中的每一个消费线程分别对应于一台待测设备;以及由所述消费线程将所取得的测试脚本消息提供给与所述待测设备相连的控制设备,以使得所述控制设备通过执行相应的测试脚本来对所述待测设备进行测试。
5.根据本公开的另一个方面,提供了一种计算设备,包括:至少一个处理器;以及存储器,其耦合到所述至少一个处理器并用于存储指令,其中,所述指令在由所述至少一个处理器执行时,使得所述至少一个处理器:接收待测设备消息和测试脚本消息,其中,所述测试脚本消息所指示的测试脚本将被用于针对所述待测设备消息所指示的待测设备进行测试;将所述测试脚本消息推送到与所述待测设备消息所指示的待测设备相对应的消息队列中,其中,所述消息队列是多个消息队列中的一个消息队列,并且其中,所述多个消息队列中的每一个消息队列分别对应于一台待测设备;由与所述待测设备相对应的消费线程从与所述待测设备相对应的消息队列中取得一个测试脚本消息,其中,所述消费线程是多个消费线程中的一个消费线程,并且其中,所述多个消费线程中的每一个消费线程分别对应于一台待测设备;以及由所述消费线程将所取得的测试脚本消息提供给与所述待测设备相连的控制设备,以使得所述控制设备通过执行相应的测试脚本来对所述待测设备进行测试。
6.根据本公开的再一个方面,提供了一种用于进行自动化测试调度的装置,包括用
6)。
22.在图1所示的示例中,服务器110通过网络140与控制设备120-1、120-2进行通信,而控制设备120-1、120-2又分别连接到多台待测设备。例如,如图1所示,控制设备120-1连接到待测设备130-1、130-2、130-3,控制设备120-2连接到待测设备130-4、130-5、130-6。根据本公开的一些实现,控制设备120-1、120-2可以分别在服务器110的调度控制下,针对其各自连接到的待测设备执行相应的测试脚本,来对待测设备进行测试。
23.根据本公开的一些实现,服务器110可以是指具有运算和存储能力的计算设备。尽管在这里将其命名为服务器,然而服务器110的示例还可以包括个人计算机、工作站,等等。此外,虽然在图1中服务器110被示出为单个设备,但是本领域技术人员可以理解的是,服务器110也可以被实现为一组设备,例如,服务器110可以被实施为服务器阵列或服务器集群。在一些实现中,服务器可以被部署在远离控制设备120(以及相应的待测设备130)的位置处。在一些实现中,服务器110或其至少一部分可以被部署在分布式计算环境中。例如,服务器110可以被部署在云端,采用云计算技术来实现。在一些实现中,服务器110的功能可以通过运行在其上的应用/服务来实施,例如所述应用/服务可以用来实施本文中所描述的自动化测试调度。
24.服务器110与控制设备120之间的网络140可以包括任意类型的有线或无线通信网络,或者有线和无线通信网络的组合。尽管图1中示出了单个网络,但是网络140可以被配置为包括多个网络。此外,在一些实现中,服务器110与各控制设备120-1、120-2之间也可以不通过网络140,而是直接连接,例如通过线缆。
25.如前所述,控制设备120用于在服务器110的调度控制下,通过执行相应的测试脚本来对其各自连接的待测设备进行测试。控制设备120同样可以是指具有运算和存储能力的任意计算设备,其可以包括但不限于个人计算机、工作站等等。此外,尽管在图1的示例中将服务器110和控制设备120示出为不同的设备,然而根据本公开的一些实现,服务器110和控制设备120也可以被实施为同一台计算设备。换句话说,本文中描述的服务器110对控制设备120的调度控制操作,也可以在控制设备120自身上来实施。这种情况尤其适用于待测设备130的数量不是太大,仅需要一台控制设备120就足以连接所需数目的待测设备130的情况。
26.在图1中,每台控制设备120-1、120-2各自连接到相同数目的待测设备,然而可以理解的是,上述图示仅为示例而非限制,每台控制设备连接到的待测设备的数量可以是不同的,例如,控制设备120-1可以仅连接到一台待测设备,而控制设备120-2可以连接到五台待测设备。控制设备120与待测设备130之间可以通过任何合适类型的线缆和/或连接器相连。在根据本公开的一些实现中,待测设备可以包括待测的闪存芯片,闪存芯片可以通过专门的连接器(如插座)以及相应的线缆(如果有的话)来与控制设备相连。在根据本公开的一些实现中,待测设备可以包括移动计算设备(例如,移动电话等),其中安装有闪存芯片作为存储,移动计算设备可以通过usb或其它类型的线缆连接到控制设备。此外,在一些实现中,控制设备120与待测设备130之间的连接也可以任意合适类型的无线连接,本公开并不限于此。
27.接下来参考图2,其示出了根据本公开的一些实现的架构示例。图2所示的架构示例可以实施在图1中的服务器110上。如图所示,服务器110可以维护一个消息队列池,其中,
针对多台待测设备(待测设备1至待测设备n,例如,对应于图1中所示的待测设备130-1至130-6)中每一台待测设备,在该消息队列池中均设置有相应的一个消息队列。服务器110接收到的一个测试脚本消息(如后文中所述,其关联到特定的一台待测设备,并且指示将被用于对该待测设备进行测试的测试脚本)将会被放入消息队列池中与该待测设备相对应的那个消息队列中。例如,图2中所示的第一个消息队列中,有按照接收的顺序依次编号的测试脚本消息001、测试脚本消息002、测试脚本消息003、测试脚本消息004。另一方面,如图所示,服务器110还可以维护一个消费线程池。消费线程池中的多个消费线程也是与所述多台待测设备、并且因此与消息队列池中的多个消息队列一一对应的。因此,消费线程池中的每一个消费线程将仅服务于特定的一台待测设备,从相应的一个消息队列中取得一个测试脚本消息、并将所取得的测试脚本消息提供给与该待测设备相连的控制设备,以使得控制设备通过执行相应的测试脚本来对该待测设备进行测试。借助于这样的架构,为每一台待测设备均设置一个单独的消息队列并分配有相应的一个消费线程,可以有效保证针对每一台待测设备的测试任务调度的独立性,避免了出错的可能。
28.接下来参考图3,其示出了根据本公开的一些实现的架构示例。与图2的示例的区别在于,在图3中,服务器110接收到的测试脚本消息是带有优先级的,并且因此,消息队列池中包含的每一个消息队列中的测试脚本消息会被按照其各自的优先级进行排序。例如,一个新接收到的测试脚本消息(如测试脚本消息004)可能因为其具有最高的优先级(如优先级“a”),会被越过已经在相应的消息队列中存储的其它测试脚本消息而放置在该消息队列的队首,并因此在相应的消费线程针对该消息队列的下一次读取时就会被从该消息队列中取出,从而实现优先处理,提高了调度的灵活性。
29.图4示出了根据本公开的一些实现的示例性方法400的流程图。方法400可以用于进行自动化测试调度。方法400例如可以在图1中所示的服务器110或任何类似的或相关的实体中实现。
30.如图4所示,方法400开始于步骤410,在该步骤中,接收待测设备消息和测试脚本消息,其中,所述测试脚本消息所指示的测试脚本将被用于针对所述待测设备消息所指示的待测设备进行测试。根据本公开的一些实现,用户或者第三方应用/服务可以通过预设的接口或api来将待测设备消息和测试脚本消息发送至服务器110。在一些实现中,待测设备消息和测试脚本消息可以是单独的两个消息,而在另一些实现中,它们可以是一个消息中的两个部分,本公开并不限于此。
31.待测设备消息可以包括与所指定的一台待测设备(例如,130-2)相关联的任何信息,例如,其可以包括待测设备130-2的唯一标识符(如uri),凭此服务器110可以准确识别出将要针对待测设备130-2进行测试。测试脚本消息可以包括与要执行的测试脚本(在该示例中,在与待测设备130-2相连的控制设备120-1上执行)相关联的任何信息。例如,在一些实现中,测试脚本消息可以包括相应的测试脚本的url,可以从该url下载该测试脚本(例如,由控制设备120-1来下载)。此外,在一些实现中,测试脚本可以直接被内嵌在测试脚本消息中,而无需再从其它位置单独下载。
32.在根据本公开的一些实现中,要进行的测试与半导体存储器相关。半导体存储器可以包括易失性存储器和非易失性存储器,其中,易失性存储器的示例可以包括随机存取存储器(ram),其可以包括动态随机存取存储器(dram)、静态随机存取存储器(sram)等;非
易失性存储器的示例可以包括只读存储器(rom)、非易失性随机存取存储器(nvram)、闪速存储器(flash memory,通常简称为“闪存”)等等。闪存的类型可以包括nand型、nor型,等等,然而本公开并不限于此。
33.对于与闪存相关的测试,根据本公开的一个具体实现,服务器110接收到的待测设备消息所指示的待测设备130-2是一台移动计算设备(例如移动电话),其中安装有闪存芯片作为存储,而接收到的测试脚本消息所指示的测试脚本将被用于在控制设备120-1上执行,来对该移动电话的存储系统进行测试。
34.根据本公开的另一个具体实现,服务器110接收到的待测设备消息所指示的待测设备130-2是闪存芯片,该闪存芯片通过专门的连接器(如插座)以及相应的线缆(如果有的话)连接到控制设备120-1,后者则通过执行相应的测试脚本消息所指示的测试脚本来直接对该闪存芯片进行测试,例如压力测试、性能测试等。
35.尽管在图2的流程图中没有示出,但是根据本公开的一些实现,可选地,响应于接收到待测设备消息和测试脚本消息,服务器110可以对所述待测设备消息和所述测试脚本消息进行验证。作为一个示例,服务器110可以通过预设的验证机制来验证所接收到的消息的完整性,例如检查消息的格式是否正确、内容是否完全等,以例如避免在消息传递过程中出现数据损坏的可能。在一个示例中,服务器110还可以验证待测设备消息和测试脚本消息的真实性,即确认所接收到的消息是否来源于可信的用户或第三方应用/服务。
36.方法400然后前进到步骤420,在该步骤中,将所述测试脚本消息推送到与所述待测设备消息所指示的待测设备相对应的消息队列中,其中,所述消息队列是多个消息队列中的一个消息队列,并且其中,所述多个消息队列中的每一个消息队列分别对应于一台待测设备。
37.根据本公开的一些实现,例如如图2、3所示,服务器110可以维护一个消息队列池,其中,针对每一台待测设备,均存在相应的一个消息队列。换句话说,从消息队列池中包含的多个消息队列中的一个消息队列中取出的测试脚本消息,将仅被用于针对相应的那一台待测设备进行测试。基于接收到的待测设备消息(继续前面的示例,其中指示了待测设备130-2),服务器110可以把与待测设备消息一起接收到的测试脚本消息推送到与待测设备130-2相对应的那个消息队列中。
38.本领域技术人员可以理解,消息队列中的测试脚本消息是按照先进先出的顺序被访问的,这样的好处是可以保证消息队列的吞吐量。然而,根据本公开的一些实现,每一个脚本测试消息还可以被指派有各自的优先级,因此,在这样的实现中消息队列中的测试脚本消息会被按照其各自的优先级进行排序。例如,当一个新的测试脚本消息被推送到其相应的消息队列中时,这个新测试脚本消息的优先级会被与该消息队列中的其它消息的优先级进行比较。根据比较结果,新消息会被放到消息队列中的适当位置,例如,插入到队首、插入到队列中间的某个具体位置,或者留在队尾。可以理解的是,插入到队首是因为这个新消息相对于消息队列中的其它消息具有最高的优先级,并因此将会在下一次读取时就被从该消息队列取出。由此,根据本发明的一些实现可以保证一些重要性比较高的测试脚本被优先处理,有效地提高了调度的灵活性。
39.方法400进行到步骤430,在该步骤中,由与所述待测设备相对应的消费线程从与所述待测设备相对应的消息队列中取得一个测试脚本消息,其中,所述消费线程是多个消
费线程中的一个消费线程,并且其中,所述多个消费线程中的每一个消费线程分别对应于一台待测设备。
40.根据本公开的一些实现,例如如图2、3所示,服务器110不但维护着一个消息队列池,其中针对每一台待测设备都有相应的一个消息队列用于容纳服务器接收到的测试脚本消息,而且,服务器110还维护着一个消费线程池,在该池中,针对每一台待测设备均有一个单独的消费线程。也就是说,消息队列池中的消息队列与消费线程池中的消费线程是一一对应的关系。这里,每一个消费线程的职能,是从其对应的消息队列中取出排在最前面的一个测试脚本消息。根据本公开的一些实现,在判断针对某一台待测设备的前一个测试已经完成的情况下,与该待测设备相对应的那个消费线程会去同样对应于该待测设备的消息队列获取用于下一个测试的测试脚本消息。在一个示例中,可以由运行在服务器110上的单独的监视器应用/服务来和与该待测设备相连的控制设备进行通信以执行所述判断,并在判断结果为是的情况下通知相应的那个消费线程来进行取消息操作,然而本公开并不限于此。
41.然后,方法400前进到步骤440,在该步骤中,由所述消费线程将所取得的测试脚本消息提供给与所述待测设备相连的控制设备,以使得所述控制设备通过执行相应的测试脚本来对所述待测设备进行测试。
42.这里仍以待测设备130-2为例,在与待测设备130-2相对应的消费线程从与待测设备130-2相对应的消息队列中取得一个测试脚本消息之后,该消费线程将所取得的测试脚本消息提供给控制设备120-1,后者连接到待测设备130-2。控制设备120-1可以根据测试脚本消息来获得相应的测试脚本,例如,直接从测试脚本消息中获得、或者从测试脚本消息中指示的测试脚本存储位置获得。由此,控制设备120-1可以通过执行所获得的测试脚本来对相应的待测设备130-2进行测试。尽管这里是以对应于待测设备130-2的消费线程为例示出的,但是对于消费线程池中的与其它待测设备相对应的每一个消费线程来说,其也会进行类似的操作。
43.此外,虽然在图4中没有示出,但是根据本公开的一些实现,服务器110还可以响应于控制设备(如上述的控制设备120-1)对待测设备(如上述的待测设备130-2)进行测试,从控制设备120-1接收所述测试的结果。从控制设备120-1(以及类似地,控制设备120-2)接收的针对待测设备130-2的测试结果(以及类似地,也会有针对各控制设备各自相连的其它待测设备的测试结果)可以被收集并存储在服务器110的数据库中,以供后续需要时使用,例如进行结果分析。
44.此外,根据本公开的一些实现,在控制设备通过执行测试脚本消息所指示的测试脚本来对与其相连的待测设备进行测试之前,与该待测设备相对应的消费线程还可以执行下述操作:检查所述测试脚本的工作目录;检查所述测试脚本的代码版本;以及检查所述测试脚本的自动执行环境。例如,检查工作目录可以包括检查控制设备上针对该测试脚本设置的工作目录是否正确,如果不正确的话,则启动相应的设置过程;检查代码版本可以包括检查要执行的测试脚本的代码版本是否正确,如果不正确的话,则可以暂停后续操作、执行代码版本转换和/或通过适当的机制进行反馈;检查自动执行环境可以包括检查控制设备上的用于执行测试脚本的例如python、java解释器执行环境是否存在问题,如果有问题的话则启动相应的自动执行环境初始化过程。
45.此外,根据本公开的一些实现,方法400还可以包括对与待测设备相对应的消息队列和消费线程进行初始化。在一些实现中,初始化过程可以发生在服务器110检测到新的待测设备在线时。例如,服务器可以定期地轮询各个控制设备120,来确定是否有新的待测设备在线。在另一个实例中,也可以由控制设备120在检测到有新的待测设备在线时,主动地向服务器110发出通知。响应于判定有新的待测设备,服务器110可以在消息队列池中为新待测设备初始化一个消息队列,并且相应地在消费线程池中为新待测设备初始化一个消费线程。此外,在一些实现中,服务器110也可以在接收到待测设备消息和测试脚本消息(例如,步骤410)时,检查该待测设备消息所指示的待测设备是否在线、并且如果在线的话是否存在相应的消息队列和消费线程,如果发现不存在的话,则为该待测设备初始化对应的消息队列和消费线程。其它的初始化实现机制也是可行的。
46.此外,根据本公开的一些实现,方法400还可以包括消费线程和消息队列的回收机制。在一些实现中,服务器110(例如,其上运行的监视器应用/服务)可以确定一台待测设备是否已经离线,如果确定已经离线的话进一步判断与该待测设备相对应的消息队列是否为空(即,没有待处理的测试脚本消息了),若判定为空的话则进一步确定与该待测设备相对应的消费线程是否正在运行,当确定没有运行时,即可以对与该待测设备相对应的消费线程和消息队列进行回收。其它的回收实现机制也是可行的。
47.通过采用合适的初始化和回收机制,可以减轻对服务器资源的不当占用,保证服务器调度操作的平顺执行。
48.上文中结合图4描述了根据本公开的一些实现的方法400的流程图,本领域技术人员可以理解,方法400仅仅是示例性的而非限制性的。方法400并非要以所描述的操作顺序来实施,而且并不是这里所描述的每一个操作都是实现本公开的一个特定实现所必需的。在另外一些实现中,方法400还可以包括在说明书中描述的其它操作。可以理解的是,示例性方法400的各种操作可以用软件、硬件、固件或其任意组合来实现。
49.下面参考图5,其示出了根据本公开的一些实现的示例性装置500的框图。装置500可以用于实现本文中公开的自动化测试调度。例如,装置500可以在图1中所示的服务器110或任何类似的或相关的实体中实现。
50.如图5所示,装置500可以包括模块510,其用于接收待测设备消息和测试脚本消息,其中,所述测试脚本消息所指示的测试脚本将被用于针对所述待测设备消息所指示的待测设备进行测试。装置500还可以包括模块520,其用于将所述测试脚本消息推送到与所述待测设备消息所指示的待测设备相对应的消息队列中,其中,所述消息队列是多个消息队列中的一个消息队列,并且其中,所述多个消息队列中的每一个消息队列分别对应于一台待测设备。此外,装置500还可以包括模块530,其用于由与所述待测设备相对应的消费线程从与所述待测设备相对应的消息队列中取得一个测试脚本消息,其中,所述消费线程是多个消费线程中的一个消费线程,并且其中,所述多个消费线程中的每一个消费线程分别对应于一台待测设备。此外,装置500还可以包括模块540,其用于由与所述待测设备相对应的消费线程从与所述待测设备相对应的消息队列中取得一个测试脚本消息,其中,所述消费线程是多个消费线程中的一个消费线程,并且其中,所述多个消费线程中的每一个消费线程分别对应于一台待测设备。
51.此外,在一些实现中,装置500的上述模块中的一个或多个中还可以包括进一步的
子模块、和/或装置500还可以包括附加的模块,用于执行说明书中已经描述的其它操作,例如结合图4的示例性方法400的流程图而描述的。此外,在一些实现中,装置500的各种模块还可以取决于实际需求进行组合或拆分。上述及其它变型均落入本公开的范围之内。
52.本领域技术人员可以理解,示例性装置500可以用软件、硬件、固件、或其任意组合来实现。
53.图6示出了根据本公开的一些实现的示例性计算设备600的框图。计算设备600可以用于实现本文中公开的自动化测试调度。例如,计算设备600例如可以在图1中所示的服务器110或任何类似的或相关的实体中实现。
54.如图6所示,计算设备600可以包括至少一个处理器610。处理器610可以包括任意类型的通用处理单元(例如:cpu、gpu,等等)、专用处理单元、核心、电路、控制器,等等。此外,计算设备600还可以包括耦合到处理器610的存储器620。存储器620可以包括任意类型的可以用于存储数据的介质。在一些实现中,存储器620被配置为存储指令,所述指令在执行时使得至少一个处理器610执行本公开中描述的操作,例如,结合图4的示例性方法400的流程图而描述的。
55.此外,在一些实现中,计算设备600还可以耦合到或配备有一种或多种外设部件,所述外设部件可以包括但不限于显示器、扬声器、鼠标、键盘,等等。另外,在一些实现中,计算设备600还可以配备有通信接口,其可以支持各种类型的有线/无线通信协议以与通信网络进行通信。通信网络的示例可以包括但不限于:局域网(lan)、城域网(man)、广域网(wan)、公共电话网、互联网、内联网、物联网、红外网络、蓝牙网络、近场通信(nfc)网络、zigbee网络,等等。
56.此外,在一些实现中,上述及其它部件之间可以经由一种或多种总线/互连来相互通信,所述总线/互连可以支持任何合适的总线/互连协议,包括外围组件互连(pci)、快速pci快速、通用串行总线(usb)、串行附接scsi(sas)、串行ata(sata)、光纤通道(fc)、系统管理总线(smbus),或其它合适的协议。
57.本领域技术人员可以理解,对于计算设备700的结构的上述描述仅仅是示例性而非限制性的,其它结构的设备也是可行的,只要能够用来实现本公开中所讨论的功能。
58.本公开的各种实现可以使用硬件单元、软件单元或其组合来实现。硬件单元的示例可以包括设备、部件、处理器、微处理器、电路、电路元件(例如、晶体管、电阻器、电容器、电感器,等等)、集成电路、专用集成电路(asic)、可编程逻辑器件(pld)、数字信号处理器(dsp)、现场可编程门阵列(fpga)、存储单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组,等等。软件单元的示例可以包括软件部件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(api)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或其任意组合。确定一个实现是使用硬件单元和/或软件单元来实施的可以取决于多种因素而变化,例如期望的计算速率、功率级别、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度,以及其它的设计或性能约束,正如一个给定的实现所期望的。
59.本公开的一些实现可以包括制品。制品可以包括存储介质,其用于存储逻辑。存储介质的示例可以包括一种或多种类型的能够存储电子数据的计算机可读存储介质,包括易
失性存储器或非易失性存储器、可移动或不可移动存储器、可擦除或不可擦除存储器、可写或可重写存储器,等等。逻辑的示例可以包括各种软件单元,例如软件部件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(api)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或其任意组合。在一些实现中,例如,制品可以存储可执行的计算机程序指令,其在被处理器执行时,使得处理器执行本文中所述的方法和/或操作。可执行的计算机程序指令可以包括任意合适类型的代码,例如,源代码、编译代码、解释代码、可执行代码、静态代码、动态代码,等等。可执行的计算机程序指令可以根据预定义的用于命令计算机来执行特定功能的计算机语言、方式或语法来实现。所述指令可以使用任意适当的高级的、低级的、面向对象的、可视化的、编译的和/或解释的编程语言来实现。
60.下面描述本公开的一些示例性实现。
61.示例1可以包括一种用于进行自动化测试调度的方法,所述方法包括:接收待测设备消息和测试脚本消息,其中,所述测试脚本消息所指示的测试脚本将被用于针对所述待测设备消息所指示的待测设备进行测试;将所述测试脚本消息推送到与所述待测设备消息所指示的待测设备相对应的消息队列中,其中,所述消息队列是多个消息队列中的一个消息队列,并且其中,所述多个消息队列中的每一个消息队列分别对应于一台待测设备;由与所述待测设备相对应的消费线程从与所述待测设备相对应的消息队列中取得一个测试脚本消息,其中,所述消费线程是多个消费线程中的一个消费线程,并且其中,所述多个消费线程中的每一个消费线程分别对应于一台待测设备;以及由所述消费线程将所取得的测试脚本消息提供给与所述待测设备相连的控制设备,以使得所述控制设备通过执行相应的测试脚本来对所述待测设备进行测试。
62.示例2可以包括示例1所述的主题,其中,所述消息队列中的测试脚本消息被按照其各自的优先级进行排序。
63.示例3可以包括示例1-2中的任意一项所述的主题,其中,所述待测设备包括安装有闪存芯片的移动计算设备,并且其中,所述测试用于针对所述移动计算设备的存储系统进行测试。
64.示例4可以包括示例1-2中的任意一项所述的主题,其中,所述待测设备包括闪存芯片,所述闪存芯片通过连接器连接到所述控制设备,并且其中,所述测试用于针对所述闪存芯片进行测试。
65.示例5可以包括示例1-4中的任意一项所述的主题,其中,所述控制设备是多台控制设备中的一台控制设备,并且其中,所述多台控制设备中的每一台控制设备分别连接到多台待测设备。
66.示例6可以包括示例1-5中的任意一项所述的主题,其中,所述方法还包括:响应于接收到待测设备消息和测试脚本消息,对所述待测设备消息和所述测试脚本消息进行验证。
67.示例7可以包括示例1-6中的任意一项所述的主题,其中,所述方法还包括:对与待测设备相对应的消息队列和消费线程进行初始化。
68.示例8可以包括示例1-7中的任意一项所述的主题,其中,所述方法还包括:响应于确定待测设备已经离线、与该待测设备相对应的消息队列为空并且与该待测设备相对应的
消费线程没有正在运行,对与该待测设备相对应的消费线程和消息队列进行回收。
69.示例9可以包括示例1-8中的任意一项所述的主题,其中,所述方法还包括,在所述控制设备对所述待测设备进行测试之前:检查所述测试脚本的工作目录;检查所述测试脚本的代码版本;以及检查所述测试脚本的自动执行环境。
70.示例10可以包括一种计算设备,所述计算设备包括:至少一个处理器;以及存储器,其耦合到所述至少一个处理器并用于存储指令,其中,所述指令在由所述至少一个处理器执行时,使得所述至少一个处理器:接收待测设备消息和测试脚本消息,其中,所述测试脚本消息所指示的测试脚本将被用于针对所述待测设备消息所指示的待测设备进行测试;将所述测试脚本消息推送到与所述待测设备消息所指示的待测设备相对应的消息队列中,其中,所述消息队列是多个消息队列中的一个消息队列,并且其中,所述多个消息队列中的每一个消息队列分别对应于一台待测设备;由与所述待测设备相对应的消费线程从与所述待测设备相对应的消息队列中取得一个测试脚本消息,其中,所述消费线程是多个消费线程中的一个消费线程,并且其中,所述多个消费线程中的每一个消费线程分别对应于一台待测设备;以及由所述消费线程将所取得的测试脚本消息提供给与所述待测设备相连的控制设备,以使得所述控制设备通过执行相应的测试脚本来对所述待测设备进行测试。
71.示例11可以包括示例10所述的主题,其中,所述消息队列中的测试脚本消息被按照其各自的优先级进行排序。
72.示例12可以包括示例10-11中的任意一项所述的主题,其中,所述待测设备包括安装有闪存芯片的移动计算设备,并且其中,所述测试用于针对所述移动计算设备的存储系统进行测试。
73.示例13可以包括示例10-11中的任意一项所述的主题,其中,所述待测设备包括闪存芯片,所述闪存芯片通过连接器连接到所述控制设备,并且其中,所述测试用于针对所述闪存芯片进行测试。
74.示例14可以包括示例10-13中的任意一项所述的主题,其中,所述控制设备是多台控制设备中的一台控制设备,并且其中,所述多台控制设备中的每一台控制设备分别连接到多台待测设备。
75.示例15可以包括示例10-14中的任意一项所述的主题,其中,所述指令在由所述至少一个处理器执行时,还使得所述至少一个处理器:响应于接收到待测设备消息和测试脚本消息,对所述待测设备消息和所述测试脚本消息进行验证。
76.示例16可以包括示例10-15中的任意一项所述的主题,其中,所述指令在由所述至少一个处理器执行时,还使得所述至少一个处理器:对与待测设备相对应的消息队列和消费线程进行初始化。
77.示例17可以包括示例10-16中的任意一项所述的主题,其中,所述指令在由所述至少一个处理器执行时,还使得所述至少一个处理器:响应于确定待测设备已经离线、与该待测设备相对应的消息队列为空并且与该待测设备相对应的消费线程没有正在运行,对与该待测设备相对应的消费线程和消息队列进行回收。
78.示例18可以包括示例10-17中的任意一项所述的主题,其中,所述指令在由所述至少一个处理器执行时,还使得所述至少一个处理器在所述控制设备对所述待测设备进行测试之前:检查所述测试脚本的工作目录;检查所述测试脚本的代码版本;以及检查所述测试
脚本的自动执行环境。
79.示例19可以包括一种用于进行自动化测试调度的装置,所述装置包括:用于接收待测设备消息和测试脚本消息的模块,其中,所述测试脚本消息所指示的测试脚本将被用于针对所述待测设备消息所指示的待测设备进行测试;用于将所述测试脚本消息推送到与所述待测设备消息所指示的待测设备相对应的消息队列中的模块,其中,所述消息队列是多个消息队列中的一个消息队列,并且其中,所述多个消息队列中的每一个消息队列分别对应于一台待测设备;用于由与所述待测设备相对应的消费线程从与所述待测设备相对应的消息队列中取得一个测试脚本消息的模块,其中,所述消费线程是多个消费线程中的一个消费线程,并且其中,所述多个消费线程中的每一个消费线程分别对应于一台待测设备;以及用于由所述消费线程将所取得的测试脚本消息提供给与所述待测设备相连的控制设备,以使得所述控制设备通过执行相应的测试脚本来对所述待测设备进行测试的模块。
80.示例20可以包括示例19所述的主题,其中,所述消息队列中的测试脚本消息被按照其各自的优先级进行排序。
81.示例21可以包括示例19-20中的任意一项所述的主题,其中,所述待测设备包括安装有闪存芯片的移动计算设备,并且其中,所述测试用于针对所述移动计算设备的存储系统进行测试。
82.示例22可以包括示例19-20中的任意一项所述的主题,其中,所述待测设备包括闪存芯片,所述闪存芯片通过连接器连接到所述控制设备,并且其中,所述测试用于针对所述闪存芯片进行测试。
83.示例23可以包括示例19-22中的任意一项所述的主题,其中,所述控制设备是多台控制设备中的一台控制设备,并且其中,所述多台控制设备中的每一台控制设备分别连接到多台待测设备。
84.示例24可以包括示例19-23中的任意一项所述的主题,其中,所述装置还包括:用于响应于接收到待测设备消息和测试脚本消息,对所述待测设备消息和所述测试脚本消息进行验证的模块。
85.示例25可以包括示例19-24中的任意一项所述的主题,其中,所述装置还包括:用于对与待测设备相对应的消息队列和消费线程进行初始化的模块。
86.示例26可以包括示例19-25中的任意一项所述的主题,其中,所述装置还包括:用于响应于确定待测设备已经离线、与该待测设备相对应的消息队列为空并且与该待测设备相对应的消费线程没有正在运行,对与该待测设备相对应的消费线程和消息队列进行回收的模块。
87.示例27可以包括示例19-26中的任意一项所述的主题,其中,所述装置还包括,在所述控制设备对所述待测设备进行测试之前:用于检查所述测试脚本的工作目录的模块;用于检查所述测试脚本的代码版本的模块;以及用于检查所述测试脚本的自动执行环境的模块。
88.示例28可以包括一种计算机可读存储介质,其上存储有指令,所述指令在由至少一个处理器执行时,使得所述至少一个处理器执行示例1-9中的任意一项所述的方法。
89.示例29可以包括一种计算机程序产品,其包括指令,所述指令在由至少一个处理器执行时,使得所述至少一个处理器执行根据示例1-9中的任意一项所述的方法。
90.上面已经描述的包括所公开的架构的示例。当然并不可能描述部件和/或方法的每种可以想见的组合,但是本领域技术人员可以理解,许多其它的组合和排列也是可行的。因此,该新颖架构旨在涵盖落入所附权利要求的精神和范围之内的所有这样的替代、修改和变型。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1