具体实施方式
为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的应用的云测试方法、应用的云测试系统、客户端及服务器其具体实施方式、结构、特征及功效,详细说明如后。
有关本发明的前述及其他技术内容、特点及功效,在以下配合参考图式的较佳实施例详细说明中将可清楚的呈现。通过具体实施方式的说明,当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图式仅是提供参考与说明之用,并非用来对本发明加以限制。
图1是本发明实施例提出的应用的云测试方法的步骤流程图。请参阅图1,本发明实施例的应用的云测试方法可包括以下步骤S101-S107:
步骤S101:获取待测应用信息和对待测应用进行测试的移动终端信息,向服务器发送获取的待测应用信息及移动终端信息。
本步骤中,客户端可以获取待测应用信息和对待测应用进行测试的移动终端信息。移动终端可以为手机等设备。客户端与多个移动终端之间可以以无线或有线方式进行连接。待测应用可以为基于在安卓系统上运行的应用等。
客户端用户可以通过服务器提供的网站进行注册,经过注册的合法客户端用户可以向服务器提供的网站发送获取的待测应用信息、对待测应用进行测试的移动终端信息等。移动终端信息,例如可以包括移动终端型号、移动终端的品牌、启动测试等信息。
步骤S103:每隔一段时间向服务器发送携带至少一移动终端的相关信息的心跳包,并由服务器根据心跳包判断所获取的移动终端是否处于空闲状态。
本步骤中,移动终端的相关信息包括移动终端的品牌、型号、状态等。状态包括处于空闲状态、处于正在测试某个应用的状态等。优选地,步骤S103中还可包括:可以每隔一段时间获取此至少一移动终端的相关信息,以根据此相关信息向服务器发送携带至少一移动终端的相关信息的心跳包。客户端获取移动终端的相关信息的间隔及向服务器发送心跳包的间隔时间均可以根据实际需要而预先进行设定。客户端可以建立一个主线程专门负责向服务器发送心跳包。
步骤S105:若处于空闲状态,则接收服务器发送的携带有待执行测试任务的心跳包回执,并将待执行测试任务发送给所获取的移动终端,以控制所获取的移动终端根据此测试任务对待测应用进行测试。
本步骤中,举例说明,若步骤S101中向服务器发送待测应用信息和对待测应用进行测试的移动终端信息的客户端为A客户端,而所获取的进行测试的移动终端连接在B客户端上,则本步骤中B客户端就可以接收到服务器发送的携带有待执行测试任务的心跳包回执。若步骤S101中向服务器发送待测应用信息和对待测应用进行测试的移动终端信息的客户端为A客户端,而所获取的进行测试的移动终端也连接在A客户端上,则本步骤中A客户端就可以接收到服务器发送的携带有待执行测试任务的心跳包回执。
客户端可以建立单独的子线程将待执行测试任务发送给连接在其上的移动终端。而心跳包是由主线程发送的,并且主线程和子线程可以同步执行。对待测应用进行测试包括对待测应用进行安装、运行(即测试待测应用执行过程中屏幕显示的所有控件)、卸载等测试。
步骤S107:接收所获取的移动终端实时发送的测试过程中的测试信息,并将测试信息实时发送给服务器进行显示。
本步骤中,测试信息为待测应用正在测试或待测应用完成测试的信息,包括待测应用测试过程中的屏幕截图、测试数据、测试进度等。从屏幕截图中不仅可以看出待测应用测试过程中是否出现异常,还可以得出移动终端分辨率是否存在问题。
服务器接收到测试信息后,还可以对测试信息进行相应处理。对测试信息处理包括将所有测试信息进行汇总处理,例如将所有移动终端对同一个待测应用的测试信息进行合并处理,如果某些待测应用在某些移动终端上进行测试的过程中出现测试崩溃、无响应、异常退出、安装出错、无法卸载等测试问题,则对测试信息处理还包括将测试过程中出现的测试问题记录在日志中以供用户下载此日志。
在本发明实施例中,本发明通过向服务器发送获取的待测应用信息及移动终端信息;并每隔一段时间向服务器发送携带各个移动终端的相关信息的心跳包,并由服务器根据心跳包判断所获取的移动终端是否处于空闲状态;若处于空闲状态,则接收服务器发送的心跳包回执,并将测试任务发送给所获取的移动终端,以控制所获取的移动终端根据测试任务对待测应用进行测试;再接收所获取的移动终端实时发送的测试过程中的测试信息,并将测试信息实时发送给服务器进行显示。这样,可以自动利用连接于客户端上的移动终端对待测应用进行测试,并给出测试结果,从而很容易就可以在移动终端上完成相关的适配测试工作,提高了应用的测试效率、降低了测试成本、缩短了产品研发周期。
还能够对待测应用完成屏幕显示的所有控件的遍历测试操作,测试比较全面。如果出现测试崩溃、无响应等测试问题时都可以方便地捕获到并给出移动终端对待测应用测试的日志信息,如果是移动终端分辨率引起的问题,也可以很方便地通过测试信息中的屏幕截图来捕获,从而提高了测试过程的响应速度。
图2是本发明实施例提出的客户端的主要架构框图。请参阅图2,客户端包括:信息发送模块201、心跳包发送模块203、测试模块205以及测试信息接收模块207。
信息发送模块201,用于获取待测应用信息和对待测应用进行测试的移动终端信息,向服务器发送获取的待测应用信息及移动终端信息。
心跳包发送模块203,用于每隔一段时间向服务器发送携带至少一移动终端的相关信息的心跳包,并由服务器根据心跳包判断所获取的移动终端是否处于空闲状态。相关信息包括移动终端的品牌、型号、处于空闲状态或处于正在测试应用的状态等。
此外,心跳包发送模块203,还用于每隔一段时间获取此至少一移动终端的相关信息。
测试模块205,用于若处于空闲状态,则接收服务器发送的携带有待执行测试任务的心跳包回执,并将测试任务发送给所获取的移动终端,以控制所获取的移动终端根据测试任务对待测应用进行测试。其中,对待测应用进行测试包括对待测应用进行安装、运行、卸载等测试。
测试信息接收模块207,用于接收所获取的移动终端实时发送的测试过程中的测试信息,并将测试信息实时发送给服务器进行显示。其中,测试信息为待测应用在测试过程中的屏幕截图、测试数据、测试进度等信息。
在本发明的实施例中,本发明通过向服务器发送获取的待测应用信息及移动终端信息;并每隔一段时间向服务器发送携带各个移动终端的相关信息的心跳包,并由服务器根据心跳包判断所获取的移动终端是否处于空闲状态;若处于空闲状态,则接收服务器发送的心跳包回执,并将测试任务发送给所获取的移动终端,以控制所获取的移动终端根据测试任务对待测应用进行测试;再接收所获取的移动终端实时发送的测试过程中的测试信息,并将测试信息实时发送给服务器进行显示。这样,可以自动利用连接于客户端上的移动终端对待测应用进行测试,并给出测试结果,从而很容易就可以在移动终端上完成相关的适配测试工作,提高了应用的测试效率、降低了测试成本、缩短了产品研发周期。
还能够对待测应用完成屏幕显示的所有控件的遍历测试操作,测试比较全面。如果出现测试崩溃、无响应等测试问题时都可以方便地捕获到并给出移动终端对待测应用测试的日志信息,如果是移动终端分辨率引起的问题,也可以很方便地通过测试信息中的屏幕截图来捕获,从而提高了测试过程的响应速度。
图3是本发明另一实施例提出的应用的云测试方法的步骤流程图。请参阅图3,本发明实施例的应用的云测试方法可包括以下步骤S301-S307:
步骤S301:接收至少一客户端发送的获取的待测应用信息及移动终端信息,并根据获取的待测应用信息及移动终端信息生成相应的待执行测试任务,测试任务为所获取的移动终端对待测应用进行测试。
本步骤中,移动终端可以为手机等设备。每一客户端可以以无线或有线方式连接多个移动终端。客户端用户可以通过服务器提供的网站进行注册,经过注册的合法客户端用户可以向服务器提供的网站发送获取的待测应用信息、对待测应用进行测试的移动终端信息等。移动终端信息,例如可以包括移动终端型号、移动终端的品牌、启动测试等信息。服务器提供给客户端进行选择的待测信息可以为:展示所有可选的移动终端以供用户选择,展示所有可选的待测应用或供用户选择本地待测应用并上传,展示用户提交的待测应用的信息:待测应用的名称、版本等,展示待测应用在每个移动终端上的测试运行状态:待测试、正在测试、完成测试等状态。
服务器可以将接收的待测应用信息、对待测应用进行测试的移动终端信息及待执行测试任务存入数据库中。
服务器接收到用户上传的待测应用后,分析用户上传的待测应用,可以提取出待测应用的相关信息,例如待测应用的名称、版本号等。
服务器可以将一个待测应用在一个移动终端上进行一次测试定义为一个测试任务,由此可以根据客户端用户上传的多个待测应用及选择的多个移动终端生成多个测试任务。举例说明,若用户选择3个移动终端对一个待测应用进行测试,则就会生成3个待执行测试任务。
步骤S303:接收并存储至少一客户端发送的携带有移动终端的相关信息的心跳包,根据此些心跳包判断所获取的移动终端是否处于空闲状态,如果处于空闲状态,则进行步骤S305。
本步骤中,可以采用服务器接收并存储客户端发送的心跳包。移动终端的相关信息包括移动终端的品牌、型号、移动终端处于空闲状态、正在测试某个应用的状态等相关信息。此外,接收到心跳包后,则可以将移动终端相关信息存储到数据库中。
步骤S303中具体还可包括步骤:将移动终端的相关信息进行显示,例如显示在服务器提供的Web页面中。
步骤S303前具体还可包括步骤:
判断是否接收到客户端发送的心跳包,若接收到,则进行步骤S303,若未接收到,则结束。
本步骤中,服务器可以设定一预设时间,并判断在此预设时间内是否接收到客户端发送的心跳包,若在此预设时间内接收到客户端发送的心跳包,则表示服务器与客户端之间处于连接状态,并执行步骤S303。反之,则表示服务器与客户端之间断开,可能由于网络原因或其它原因,服务器与客户端之间会断开。此外,服务器还可存储客户端的状态,例如客户端与服务器处于连接或断开的状态。
步骤S305:将携带有待执行测试任务的心跳包回执发送给与所获取的移动终端相连的客户端,使此客户端控制所获取的移动终端执行此测试任务,以对待测应用进行测试。
本步骤中,举例说明,若步骤S301中向服务器发送获取的待测应用信息及移动终端信息的客户端为A客户端,而所获取的进行测试的两个移动终端分别连接在B客户端和C客户端上,则本步骤中将携带有待执行测试任务的心跳包回执分别发送给B和C客户端。若步骤S301中向服务器发送获取的待测应用信息及移动终端信息的客户端为A客户端,而所获取的进行测试的三个移动终端均连接在A客户端上,则本步骤中将携带有待执行测试任务的心跳包回执发送给A客户端。
客户端可以建立单独的子线程将待执行测试任务发送给所获取的移动终端。而心跳包是由主线程发送的,并且主线程和子线程可以同步执行。对待测应用进行测试包括对待测应用进行安装、运行(即测试待测应用执行过程中屏幕显示的所有控件)、卸载等测试。
步骤S307:接收并显示此客户端发送的测试过程中的测试信息,此测试信息是由所获取的移动终端实时发送的。
本步骤中,举例说明,若步骤S301中向服务器发送获取的待测应用信息及移动终端信息的客户端为A客户端,而所获取的进行测试的两个移动终端分别连接在B客户端和C客户端上,则本步骤中服务器接收B和C客户端发送的对待测应用进行测试过程中的测试信息,并将测试信息发送给A客户端以供用户查看。若步骤S301中向服务器发送获取的待测应用信息及移动终端信息的客户端为A客户端,而所获取的进行测试的三个移动终端均连接在A客户端上,则本步骤中服务器接收A客户端发送的对待测应用进行测试过程中的测试信息,并将测试信息重新发送给A客户端以供用户查看。
测试信息为待测应用正在测试或待测应用完成测试的信息,包括待测应用测试过程中的屏幕截图、测试数据、测试进度等。从屏幕截图中不仅可以看出待测应用测试过程中是否出现异常,还可以得出移动终端分辨率是否存在问题。
服务器接收到测试信息后,还可以对测试信息进行相应处理。对测试信息处理包括将所有测试信息进行汇总处理,例如将所有移动终端对同一个待测应用的测试信息进行合并处理。举例说明,若某个待测应用在5个不同型号的移动终端上进行测试,则可以将5个移动终端的测试信息进行合并处理以得出是否全部通过测试的测试结果等。
如果某些待测应用在某些移动终端上进行测试的过程中出现测试崩溃、无响应、异常退出、安装出错、无法卸载等测试问题,则对测试信息处理还包括将测试过程中出现的测试问题记录在日志中以供用户下载此日志。
步骤S307中具体还可包括步骤:
将所有测试信息进行汇总处理;将测试过程中出现的测试问题记录在日志中以供用户下载此日志;以及将测试信息和汇总处理后的测试信息进行存储。
可以将对待测应用进行测试过程中的测试信息存储到数据库中。若已执行完一个测试任务,则将数据库中存储的测试任务的状态更改为已测试完成状态。
在本发明的实施例中,本发明通过接收至少一客户端发送的获取的待测应用信息及移动终端信息,并根据获取的待测应用信息及移动终端信息生成相应的待执行测试任务;再接收并存储至少一客户端发送的携带有移动终端的相关信息的心跳包,根据这些心跳包判断所获取的移动终端是否处于空闲状态;若处于空闲状态,则将携带有待执行测试任务的心跳包回执发送给与所获取的移动终端相连的客户端,使此客户端控制所获取的移动终端对待测应用进行测试;再接收此客户端发送的测试过程中的测试信息,以供用户查看。这样,可以自动利用连接于客户端上的移动终端对待测应用进行测试,并给出测试结果,从而很容易就可以在移动终端上完成相关的适配测试工作,提高了应用的测试效率、降低了测试成本、缩短了产品研发周期。
还能够对待测应用完成屏幕显示的所有控件的遍历测试操作,测试比较全面。如果出现测试崩溃、无响应等测试问题时都可以方便地捕获到并给出移动终端对待测应用测试的日志信息,如果是移动终端分辨率引起的问题,也可以很方便地通过测试信息中的屏幕截图来捕获,从而提高了测试过程的响应速度。
图4是本发明实施例提出的服务器的主要架构框图。请参阅图4,服务器包括:信息接收模块401、心跳包接收模块403、控制模块405以及测试信息处理模块407。
具体地,信息接收模块401,用于接收至少一客户端发送的获取的待测应用信息及移动终端信息,并根据获取的待测应用信息及移动终端信息生成相应的待执行测试任务。
心跳包接收模块403,用于接收并存储至少一客户端发送的携带有移动终端的相关信息的心跳包,根据此些心跳包判断所获取的移动终端是否处于空闲状态。
此外,心跳包接收模块403,还用于将移动终端的相关信息进行显示,移动终端的相关信息包括移动终端的品牌、型号、移动终端处于空闲状态或处于正在测试应用的状态等。
心跳包接收模块403,还用于设定一预设时间,并判断在此预设时间内是否接收到客户端发送的心跳包,若在此预设时间内接收到此些客户端发送的心跳包,若接收到,则接收并存储至少一客户端发送的携带有移动终端的相关信息的心跳包。
控制模块405,用于若处于空闲状态,则将携带有待执行测试任务的心跳包回执发送给与所获取的移动终端相连的客户端,使此客户端控制所获取的移动终端执行此测试任务,以对待测应用进行测试。
对待测应用进行测试包括对待测应用进行安装、运行、卸载等测试。
测试信息处理模块407,用于接收并显示客户端发送的测试过程中的测试信息。
测试信息为待测应用在测试过程中的屏幕截图、测试数据、测试进度等信息。
测试信息处理模块407,还用于将所有测试信息进行汇总处理,将测试过程中出现的测试问题记录在日志中以供用户下载日志;将测试信息和汇总处理后的测试信息进行存储。
在本发明的实施例中,本发明通过接收至少一客户端发送的获取的待测应用信息及移动终端信息,并根据获取的待测应用信息及移动终端信息生成相应的待执行测试任务;再接收并存储至少一客户端发送的携带有移动终端的相关信息的心跳包,根据这些心跳包判断所获取的移动终端是否处于空闲状态;若处于空闲状态,则将携带有待执行测试任务的心跳包回执发送给与所获取的移动终端相连的客户端,使此客户端控制所获取的移动终端对待测应用进行测试;再接收此客户端发送的测试过程中的测试信息,以供用户查看。这样,可以自动利用连接于客户端上的移动终端对待测应用进行测试,并给出测试结果,从而很容易就可以在移动终端上完成相关的适配测试工作,提高了应用的测试效率、降低了测试成本、缩短了产品研发周期。
还能够对待测应用完成屏幕显示的所有控件的遍历测试操作,测试比较全面。如果出现测试崩溃、无响应等测试问题时都可以方便地捕获到并给出移动终端对待测应用测试的日志信息,如果是移动终端分辨率引起的问题,也可以很方便地通过测试信息中的屏幕截图来捕获,从而提高了测试过程的响应速度。
图5是本发明实施例提出的应用的云测试系统的主要架构框图。请参阅图5,应用的云测试系统包括:服务器以及至少一个客户端。每一客户端连接至少一移动终端(例如手机等),其中,服务器包括信息接收模块501、心跳包接收模块503、控制模块505以及测试信息处理模块507。每一客户端包括信息发送模块511、心跳包发送模块513、测试模块515以及测试信息接收模块517。
具体地,每一信息发送模块511,用于获取待测应用信息和对待测应用进行测试的移动终端信息,向服务器发送获取的待测应用信息及移动终端信息。
信息接收模块501,用于接收这些获取的待测应用信息及移动终端信息,并根据获取的待测应用信息及移动终端信息生成相应的多个待执行测试任务。
每一心跳包发送模块513,用于每隔一段时间向服务器发送携带至少一移动终端的相关信息的心跳包。相关信息包括移动终端的品牌、型号、处于空闲状态或处于正在测试应用的状态等。
心跳包接收模块503,用于接收并存储这些心跳包,根据这些心跳包判断所获取的移动终端是否处于空闲状态。
此外,心跳包接收模块503,还用于将移动终端的相关信息进行显示。
心跳包接收模块503,还用于设定一预设时间,并判断在此预设时间内是否接收到客户端发送的心跳包,若在此预设时间内接收到客户端发送的心跳包,则接收并存储至少一客户端发送的携带有移动终端的相关信息的心跳包。
控制模块505,用于若所获取的移动终端处于空闲状态,则将携带有待执行测试任务的心跳包回执发送给与所获取的这些移动终端相连的客户端。
每一测试模块515,用于接收心跳包回执,并将此测试任务发送给所获取的移动终端,以控制所获取的移动终端根据测试任务对待测应用进行测试。
对待测应用进行测试包括对待测应用进行安装、运行、卸载等测试。
每一测试信息接收模块517,用于接收所获取的移动终端实时发送的测试过程中的测试信息,并将这些测试信息实时发送给服务器。其中,测试信息为待测应用在测试过程中的屏幕截图、测试数据、测试进度信息。
测试信息处理模块507,用于接收并显示客户端发送的测试过程中的这些测试信息。
此外,测试信息处理模块507,还用于将所有测试信息进行汇总处理,将测试过程中出现的测试问题记录在日志中以供用户下载此日志;将测试信息和汇总处理后的测试信息进行存储。
在本发明的实施例中,本发明通过接收至少一客户端发送的获取的待测应用信息及移动终端信息,并根据获取的待测应用信息及移动终端信息生成相应的待执行测试任务;再接收并存储至少一客户端发送的携带有移动终端的相关信息的心跳包,根据这些心跳包判断所获取的移动终端是否处于空闲状态;若处于空闲状态,则将携带有待执行测试任务的心跳包回执发送给与所获取的移动终端相连的客户端,使此客户端控制所获取的移动终端对待测应用进行测试;再接收此客户端发送的测试过程中的测试信息,并将这些测试信息实时发送给服务器以供用户查看。这样,可以自动利用连接于客户端上的移动终端对待测应用进行测试,并给出测试结果,从而很容易就可以在移动终端上完成相关的适配测试工作,提高了应用的测试效率、降低了测试成本、缩短了产品研发周期。
还能够对待测应用完成屏幕显示的所有控件的遍历测试操作,测试比较全面。如果出现测试崩溃、无响应等测试问题时都可以方便地捕获到并给出移动终端对待测应用测试的日志信息,如果是移动终端分辨率引起的问题,也可以很方便地通过测试信息中的屏幕截图来捕获,从而提高了测试过程的响应速度。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来控制相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。