一种非侵入式监测方法、控制设备及存储介质
技术领域
本发明涉及智能终端技术领域,具体涉及一种非侵入式监测方法、控制设备及存储介质。
背景技术
一款软件开发完成,付诸最终用户使用,软件操作的时延作为软件用户体验的一个重要质量指标,能反映出软件本身的用户认可度,比如,大多数用户期望的网站加载时间是3秒,如果超过这一时间网页还没打开,那么会有57%的用户会选择直接关闭窗口不再访问。因此持续监测软件操作的时延,可以持续关注软件的用户亲和性;持续关注软件在用户体验改进方面的不足;同时持续关注用户的使用习惯,从而检测软件的用户体验,为软件改进提供参考。
现有技术中,对于软件程序运行时延的监测,一般采用侵入式监测方法,例如软件在业务逻辑开发过程中进行自我打点,或者通过集成应用性能管理软件开发工具包(application performance management software development kit,APM SDK)来实现应用性能管理(application performance management,APM);其中无论是软件自我打点还是APM,由于时延数据上报与软件自身的业务逻辑深度耦合,软件自身的业务逻辑难以避免受时延数据收集逻辑影响,从而影响软件自身的业务逻辑的运行,同时,对于APM方法,只能获得业务逻辑间的关系,难以获得网络侧的时延数据。
进一步地,若采取人为手动进行拨测,难以进行批量测试,同时数据收集困难,精确度难以保证,难以大面积多点开展。
因此,现有技术中所存在的上述问题还有待于改进。
发明内容
本发明实施例提供一种非侵入式监测方法、控制设备及存储介质,能够通过控制设备驱动终端设备运行待测试软件程序,获取终端设备运行所述待测试软件程序的时延数据,从而在不改写软件程序代码的情况下对软件程序运行的时延情况进行监控。
有鉴于此,本申请第一方面提供一种非侵入式监测方法,包括:控制设备与终端设备建立连接;该控制设备驱动该终端设备运行待测试软件程序;该控制设备获取该终端设备运行该待测试软件程序的时延数据;该控制设备向用户体验数据分析中心发送该时延数据。
本实施例中,控制设备通过与终端设备连接从而识别该终端设备,之后控制设备驱动该终端设备运行待测试软件程序,从而在终端设备运行待测试软件程序的过程中,控制设备获取该终端设备运行该待测试软件程序的时延数据,实现非侵入式的软件程序监测方法,不需要在待测试软件程序中植入代码,即可监测待测试软件程序运行的时延情况,控制设备将获取到的时延数据发送给用户体验数据分析中心,用户体验数据分析中心对时延数据进行分析后,向远程服务器发送用于网络参数调整的指令,调整远程服务器与网络运行参数,从而降低软件程序的运行时延,提升最终用户使用该软件程序的体验。
结合上述第一方面,在第一种可能的实现方式中,该控制设备与终端设备建立连接,包括:该控制设备从该终端设备获取注册信息,该注册信息可以是该终端设备的序列号;该控制设备根据该注册信息识别该终端设备,可以是该控制设备通过该序列号识别该终端设备。
本实施例中,终端设备通过注册信息在控制设备上注册,一方面实现控制设备与终端设备的连接;同时,使得控制设备能够识别该终端设备,从而对所识别到的终端设备进行相关的监测操作。
结合上述第一方面第一种可能的实现方式,在第二种可能的实现方式中,该控制设备与终端设备建立连接之后,还包括:该控制设备根据所识别的该终端设备从云端获取监测程序;该控制设备驱动该终端设备运行待测试软件程序,包括:该控制设备根据该监测程序驱动该终端设备运行待测试软件程序;该控制设备获取该终端设备运行该待测试软件程序的时延数据,包括:该控制设备根据该监测程序获取该终端设备运行该待测试软件程序的时延数据。
本实施例中,控制设备根据所识别的该终端设备从云端获取监测程序,可选地,控制设备可以是根据所识别的终端设备获取与该终端设备对应的监测程序,也可以是在检测到与终端设备连接后,获取相同的监测程序,控制设备可以是通过应用程序编程接口(Application Programming Interface,API)调用获取到存储在云端的监测程序,该云端可以是云服务器。控制设备通过API调用获取存储在云服务器上的监测程序,从而控制设备本身不需存储相关程序,简化了控制设备的结构,不占用控制设备额外的存储空间,降低了控制设备的成本。
结合上述第一方面第二种可能的实现方式,在第三种可能的实现方式中,该控制设备根据该监测程序驱动该终端设备运行待测试软件程序,包括:该控制设备驱动该终端设备运行待测试软件程序的至少一个用户场景操作;该控制设备根据该监测程序获取该终端设备运行该待测试软件程序的时延数据,包括:该控制设备分别获取该至少一个用户场景操作的开始时间和结束时间;该控制设备根据该至少一个用户场景操作的开始时间和结束时间获取该待测试软件程序中用户场景的场景时延数据。
本实施例中,该控制设备根据该监测程序驱动该终端设备运行待测试软件程序的具体实现方式为:控制设备驱动终端设备运行待测试软件程序的至少一个用户场景操作;由于待测试软件程序的运行面向用户而言是通过一个个用户场景操作来实现的,为了检测软件程序的用户使用体验,就需要获取软件程序运行过程中每个用户场景操作的时延,从而监测软件程序时延情况对用户体验的影响。
结合上述第一方面第三种可能的实现方式,在第四种可能的实现方式中,该控制设备驱动该终端设备运行待测试软件程序的至少一个用户场景操作,包括:该控制设备在该至少一个用户场景操作中驱动该终端设备与远程服务器交互;该控制设备根据该监测程序获取该终端设备运行该待测试软件程序的时延数据,还包括:该控制设备获取该至少一个用户场景中该终端设备与远程服务器交互的网络分段时延数据。
本实施例中,在用户使用软件程序时,涉及到用户体验的时延数据,除了软件程序中每个用户场景操作运行的时延情况外,还有在每个用户场景操作中,终端设备与远程服务器进行数据交互的网络分段时延数据,因此,控制设备在对待测试软件程序检测的过程中,在至少一个用户场景操作中驱动该终端设备与远程服务器交互,从而获得每个用户场景操作中的网络分段时延数据。
结合上述第一方面第四种可能的实现方式,在第五种可能的实现方式中,该控制设备驱动该终端设备运行待测试软件程序之后,还包括:该控制设备获取该终端设备运行该待测试软件程序的指令代码;该控制设备分别获取该至少一个用户场景操作的开始时间和结束时间,包括:该控制设备在获取到用户场景操作的开始指令时,记录该至少一个用户场景操作的开始时间;该控制设备在获取到用户场景操作的结束指令时,记录该至少一个用户场景操作的结束时间。
本实施例中,控制设备获取时延数据的具体方式,是通过获取待测试软件程序的指令代码,控制设备在监测开始之前,预置了待测试软件程序的指令代码;因此在待测试软件程序运行的过程中,控制设备能够根据所获取到的指令代码,获知待测试软件程序当前运行到哪个步骤,从而得到相应的时延数据,针对场景时延数据而言,控制设备在获取到用户场景操作的开始指令时,记录该至少一个用户场景操作的开始时间;该控制设备在获取到用户场景操作的结束指令时,记录该至少一个用户场景操作的结束时间,从而得到每个用户场景操作的场景时延数据。
结合上述第一方面第五种可能的实现方式,在第六种可能的实现方式中,该控制设备获取该至少一个用户场景中该终端设备与远程服务器交互的网络分段时延数据,包括:该控制设备获取该终端设备向该远程服务器发送消息的指令代码和该终端设备从该远程服务器接收消息的指令代码;该控制设备根据获取到该发送消息的指令代码和该接收消息的指令代码的时间得到该网络分段时延数据。
本实施例中,控制设备中预置了终端设备向该远程服务器发送消息的指令代码和该终端设备从该远程服务器接收消息的指令代码,从而当终端设备与远程服务器进行信号交互时,控制设备能够通过获取指令代码获知该信号交互动作的发生时间,从而获取到网络分段时延数据。
结合上述第一方面第四至第六种可能的实现方式,在第七种可能的实现方式中,该网络分段时延数据包括域名系统DNS解析时延数据,安全传输层协议TLS证书交换时延数据及数据传输时延数据中的至少一种。
本实施例中,终端设备与远程服务器的信号交互包含多种不同的类型,具体可以包括DNS时延数据,TLS证书交换时延数据或数据传输时延数据。
结合上述第一方面及第一方面第一至第七种可能的实现方式,在第八种可能的实现方式中,该控制设备与终端设备建立连接,包括:该控制设备与至少一个终端设备建立连接;该控制设备驱动该终端设备运行待测试软件程序,包括:该控制设备驱动至少一个终端设备分别运行待测试软件程序;该控制设备获取该终端设备运行该待测试软件程序的时延数据,包括:该控制设备获取该至少一个终端设备中每个终端设备运行该待测试软件程序的时延数据。
本实施例中,控制设备可以仅与一个终端设备连接;可选地,控制设备也可以同时与多个终端设备连接,同时监测多个终端设备运行待测试软件程序的时延情况,在多个终端设备中,可以运行同一个待测试软件程序,也可以分别运行不同的待测试软件程序。
结合上述第一方面及第一方面第一至第八种可能的实现方式,在第九种可能的实现方式中,该控制设备与终端设备建立连接,包括:该控制设备与该终端设备有线连接,或者,该控制设备与该终端设备无线连接。
本实施例中,控制设备与终端设备之间可以通过有线连接,例如通过网线、USB接口、Lightning接口、Micro USB接口或Type-c接口等,也可以通过无线连接,例如WIFI连接或蓝牙连接等。
本申请第二方面提供一种非侵入式监测装置,包括:连接单元,该连接单元用于与终端设备建立连接;驱动单元,该驱动单元用于驱动该连接单元连接的该终端设备运行待测试软件程序;第一获取单元,该获取单元用于获取该终端设备运行该驱动单元驱动运行的该待测试软件程序的时延数据;发送单元,该发送单元用于向用户体验数据分析中心发送该第一获取单元获取到的该时延数据。
本实施例中,控制设备通过与终端设备连接从而识别该终端设备,之后控制设备驱动该终端设备运行待测试软件程序,从而在终端设备运行待测试软件程序的过程中,控制设备获取该终端设备运行该待测试软件程序的时延数据,实现非侵入式的软件程序监测方法,不需要在待测试软件程序中植入代码,即可监测待测试软件程序运行的时延情况,控制设备将获取到的时延数据发送给用户体验数据分析中心,用户体验数据分析中心对时延数据进行分析后,向远程服务器发送用于网络参数调整的指令,调整远程服务器与网络运行参数,从而降低软件程序的运行时延,提升最终用户使用该软件程序的体验。
结合上述第二方面,在第一种可能的实现方式中,该连接单元,还用于:从该终端设备获取注册信息;根据该注册信息识别该终端设备。
本实施例中,终端设备通过注册信息在控制设备上注册,一方面实现控制设备与终端设备的连接;同时,使得控制设备能够识别该终端设备,从而对所识别到的终端设备进行相关的监测操作。
结合上述第二方面第一种可能的实现方式,在第二种可能的实现方式中,该装置还包括第二获取单元,该第二获取单元用于,根据所识别的该终端设备从云端获取监测程序;该驱动单元,还用于:根据该第二获取单元获取到的该监测程序驱动该终端设备运行待测试软件程序;该第一获取单元,还用于:根据该第二获取单元获取到的该监测程序获取该终端设备运行该待测试软件程序的时延数据。
本实施例中,控制设备根据所识别的该终端设备从云端获取监测程序,可选地,控制设备可以是根据所识别的终端设备获取与该终端设备对应的监测程序,也可以是在检测到与终端设备连接后,获取相同的监测程序,控制设备可以是通过应用程序编程接口(Application Programming Interface,API)调用获取到存储在云端的监测程序,该云端可以是云服务器。控制设备通过API调用获取存储在云服务器上的监测程序,从而控制设备本身不需存储相关程序,简化了控制设备的结构,不占用控制设备额外的存储空间,降低了控制设备的成本。
结合上述第二方面第二种可能的实现方式,在第三种可能的实现方式中,该驱动单元,还用于:驱动该终端设备运行待测试软件程序的至少一个用户场景操作;该第一获取单元,还用于:分别获取该至少一个用户场景操作的开始时间和结束时间;根据该至少一个用户场景操作的开始时间和结束时间获取该待测试软件程序中用户场景的场景时延数据。
本实施例中,该控制设备根据该监测程序驱动该终端设备运行待测试软件程序的具体实现方式为:控制设备驱动终端设备运行待测试软件程序的至少一个用户场景操作;由于待测试软件程序的运行面向用户而言是通过一个个用户场景操作来实现的,为了检测软件程序的用户使用体验,就需要获取软件程序运行过程中每个用户场景操作的时延,从而监测软件程序时延情况对用户体验的影响。
结合上述第二方面第三种可能的实现方式,在第四种可能的实现方式中,该驱动单元,还用于:在该至少一个用户场景操作中驱动该终端设备与远程服务器交互;该第一获取单元,还用于:该控制设备获取该至少一个用户场景中该终端设备与远程服务器交互的网络分段时延数据。
本实施例中,在用户使用软件程序时,涉及到用户体验的时延数据,除了软件程序中每个用户场景操作运行的时延情况外,还有在每个用户场景操作中,终端设备与远程服务器进行数据交互的网络分段时延数据,因此,控制设备在对待测试软件程序检测的过程中,在至少一个用户场景操作中驱动该终端设备与远程服务器交互,从而获得每个用户场景操作中的网络分段时延数据。
结合上述第二方面第四种可能的实现方式,在第五种可能的实现方式中,该第一获取单元,还用于:获取该终端设备运行该待测试软件程序的指令代码;在获取到用户场景操作的开始指令时,记录该至少一个用户场景操作的开始时间;在获取到用户场景操作的结束指令时,记录该至少一个用户场景操作的结束时间。
本实施例中,控制设备获取时延数据的具体方式,是通过获取待测试软件程序的指令代码,控制设备在监测开始之前,预置了待测试软件程序的指令代码;因此在待测试软件程序运行的过程中,控制设备能够根据所获取到的指令代码,获知待测试软件程序当前运行到哪个步骤,从而得到相应的时延数据,针对场景时延数据而言,控制设备在获取到用户场景操作的开始指令时,记录该至少一个用户场景操作的开始时间;该控制设备在获取到用户场景操作的结束指令时,记录该至少一个用户场景操作的结束时间,从而得到每个用户场景操作的场景时延数据。
结合上述第二方面第五种可能的实现方式,在第六种可能的实现方式中,该第一获取单元,还用于:获取该终端设备向该远程服务器发送消息的指令代码和该终端设备从该远程服务器接收消息的指令代码;根据获取到该发送消息的指令代码和该接收消息的指令代码的时间得到该网络分段时延数据。
本实施例中,控制设备中预置了终端设备向该远程服务器发送消息的指令代码和该终端设备从该远程服务器接收消息的指令代码,从而当终端设备与远程服务器进行信号交互时,控制设备能够通过获取指令代码获知该信号交互动作的发生时间,从而获取到网络分段时延数据。
结合上述第二方面第四至第六种可能的实现方式,在第七种可能的实现方式中,该网络分段时延数据包括域名系统DNS解析时延数据,安全传输层协议TLS证书交换时延数据及数据传输时延数据中的至少一种。
本实施例中,终端设备与远程服务器的信号交互包含多种不同的类型,具体可以包括DNS时延数据,TLS证书交换时延数据或数据传输时延数据。
结合上述第二方面及第二方面第一至第七种可能的实现方式,在第八种可能的实现方式中,该连接单元,还用于:与至少一个终端设备建立连接;该驱动单元,还用于:该控制设备驱动至少一个终端设备分别运行待测试软件程序;该第一获取单元,还用于:该控制设备获取该至少一个终端设备中每个终端设备运行该待测试软件程序的时延数据。
本实施例中,控制设备可以仅与一个终端设备连接;可选地,控制设备也可以同时与多个终端设备连接,同时监测多个终端设备运行待测试软件程序的时延情况,在多个终端设备中,可以运行同一个待测试软件程序,也可以分别运行不同的待测试软件程序。
结合上述第二方面及第二方面第一至第八种可能的实现方式,在第九种可能的实现方式中,该连接单元,还用于:与该终端设备有线连接,或者,与该终端设备无线连接。
本实施例中,控制设备与终端设备之间可以通过有线连接,例如通过网线、USB接口、Lightning接口、Micro USB接口或Type-c接口等,也可以通过无线连接,例如WIFI连接或蓝牙连接等。
本申请第三方面提供一种控制设备,该控制设备具有实现上述第一方面或第一方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
本申请第四方面提供一种计算机可读存储介质,包括指令,当所述指令在计算机设备或处理器上运行时,使得所述计算机设备或所述处理器执行如上述第一方面或第一方面任意一种可能实现方式所述的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
本发明实施例中,提供了一种非侵入式监测方法,包括:控制设备与终端设备建立连接;控制设备驱动终端设备运行待测试软件程序;控制设备获取终端设备运行待测试软件程序的时延数据;控制设备向用户体验数据分析中心发送时延数据。其中,通过控制设备驱动连接的终端设备运行待测试软件程序,使得控制设备能够获取终端设备运行待测试软件程序的时延数据,从而达到不侵入待测试软件程序的代码本身,即可对待测试软件程序的时延情况进行监测的目的;同时,由于不需要侵入待测试软件程序的代码本身,使得时延数据上报不受软件自身的业务逻辑的影响,同时,通过该方法能够获取到终端设备与网络侧交互的时延情况,从而能够全面、准确、大规模地获取到待测试软件程序运行时延的大数据,便于调整提升用户使用软件程序的体验。
附图说明
图1为本申请实施例中非侵入式监测方法的实施例的示意图;
图2为本申请实施例中非侵入式监测方法的另一实施例的示意图;
图3为本申请实施例中非侵入式监测方法的另一实施例的示意图;
图4为本申请实施例中非侵入式监测装置的示意图;
图5为本申请实施例中控制设备的示意图。
具体实施方式
本发明实施例提供一种非侵入式监测方法、控制设备及存储介质,能够通过控制设备驱动终端设备运行待测试软件程序,获取终端设备运行所述待测试软件程序的时延数据,从而在不改写软件程序代码的情况下对软件程序运行的时延情况进行监控。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
随着智能终端技术的发展,在一款软件程序,例如智能手机或平板电脑上的app开发完成付诸最终用户使用时,软件操作的时延作为软件用户体验的一个重要质量指标,能反映出软件本身的用户认可度,比如,大多数用户期望的网站加载时间是3秒,如果超过这一时间网页还没打开,那么会有57%的用户会选择直接关闭窗口不再访问。因此,持续监测软件运行的时延数据,可有以下好处:持续关注软件的用户亲和性;持续关注软件在用户体验改进方面的不足;持续关注用户的使用习惯,为软件改进提供参考。;
当前,对软件程序运行过程中的时延数据的收集方式包括软件程序自身打点、应用性能管理(application performance management,APM)以及手动拨测等;其中,软件程序自身打点即除了软件程序自身的业务处理逻辑外,需要添加额外的打点逻辑,对软件程序有侵入,对业务逻辑有要求。同时,由于时延数据上报逻辑与软件程序的业务逻辑深度耦合,业务逻辑难以避免受时延数据上报逻辑影响;对于APM技术,此技术对业务逻辑进行全方位的跟踪,而且实现函数调用级别的采样,获得的数据量大,但实际需要的信息量可能只点整体数据量的少部分,造成效率低下,而且得到的信息需要再进行二次加工。由于基于函数调用级别的采样,对业务逻辑侵入影响更大,容易导致业务性能受损。
进一步地,APM业务需要通过集成应用性能管理软件开发工具包(applicationperformance management software development kit,APM SDK)来具备类似能力,采用业务侵入式方式来实现业务逻辑调用堆栈关系。此方法只能获得业务逻辑间的关系,难以获得网络侧的用户体验数据。对于人为手动进行拨测,难以进行批量测试,同时数据收集困难,精确度难以保证,难以大面积多点开展。
针对上述情况,本申请实施例提供一种非侵入式监测方法,能够通过控制设备驱动终端设备运行待测试软件程序,获取终端设备运行所述待测试软件程序的时延数据,从而在不改写软件程序代码的情况下对软件程序运行的时延情况进行监控,为便于理解,以下结合附图对本申请实施例的具体实施方式做详细说明。
请参阅图1,如图1所示,本申请实施例所提供的非侵入式监测方法包括以下步骤。
101、控制设备与终端设备建立连接。
本实施例中,终端设备可以为智能手机、平板电脑等终端设备,其中,该终端设备内安装有待测试的软件程序,例如app等;上述建立连接的具体方式可以为:控制设备从终端设备获取注册信息;控制设备根据注册信息识别所述终端设备,其中,该注册信息可以是终端设备发送给控制设备的序列号,该序列号用于唯一地标记该终端设备,从而实现终端设备在控制设备上的注册,实现终端设备和控制设备的连接。
102、控制设备驱动终端设备运行待测试软件程序。
本实施例中,为了获知待测试软件程序在终端设备中运行的时延情况,控制设备驱动终端设备运行安装在终端设备内的待测试软件程序,从而该控制设备可以对该待测试软件程序进行监测,同时不需要侵入该待测试软件程序。
103、控制设备获取终端设备运行待测试软件程序的时延数据。
本实施例中,控制设备在终端设备运行待测试软件程序时,对待测试软件程序的运行情况进行监测,从而获取待测试软件程序运行过程中的时延情况,得到待测试软件程序的时延数据。
104、控制设备向用户体验数据分析中心发送时延数据。
本实施例中,控制设备将获取到的时延数据发送给用户体验数据分析中心,用户体验数据分析中心收到时延数据后,进行汇总分析;用户体验数据分析中心在控制设备对多个终端设备进行采样后发来的多份时延数据进行分析,根据分析结果对与终端设备连接的远程服务器进行调优,并将该调优结果发送给远程服务器,从而可以根据所监测到的时延数据,调整远程服务器与网络运行参数,从而动态调节待测试软件程序在终端设备上运行的时延情况,提升用户体验。
本实施例中,控制设备与终端设备连接,驱动终端设备上的待测试软件程序运行,监测该待测试软件程序运行的时延情况,将时延数据发送给用户体验数据分析中心,从而在不侵入软件程序代码的情况下,实现了对待测试软件程序时延情况的检测,该种检测方法由于不侵入待测试软件程序,时延数据上报的逻辑不会受到软件程序本身业务逻辑的影响,同时,能够同时获取到待测试软件程序业务逻辑间的关系和网络侧的时延数据。能够大规模的获取待测试软件程序在不同终端设备上运行的时延情况,从而供用户体验数据分析中心进行大数据实时分析,并反馈调优时延情况,提升用户使用软件程序的体验。
需要说明的是,上述控制设备监测终端设备运行待测试软件程序可以是预置在控制设备内部的,也可以是设置在云端的监测程序,该监测程序为可定制程序,可根据待测试软件程序的实际运行情况进行定制,控制设备在于终端设备建立连接后,从云端获取监测程序对终端设备上的待测试软件程序进行监测。为便于理解,以下结合附图,对本申请实施例中,控制设备从云端获取监测程序,对终端设备上的待测试软件程序进行监测的情况进行具体说明。
请参阅图2,如图2所示,包括以下步骤。
201、控制设备与终端设备建立连接。
本实施例中,终端设备可以为智能手机、平板电脑等终端设备,其中,该终端设备内安装有待测试的软件程序,例如app等;上述建立连接的具体方式可以为:控制设备从终端设备获取注册信息;控制设备根据注册信息识别所述终端设备,其中,该注册信息可以是终端设备发送给控制设备的序列号,该序列号用于唯一地标记该终端设备,从而实现终端设备在控制设备上的注册,实现终端设备和控制设备的连接。
202、控制设备根据所识别的终端设备从云端获取监测程序。
本实施例中,终端设备是通过序列号实现在控制设备上的注册,从而实现终端设备与控制设备的连接的,该序列号是与终端设备对应的唯一的序列号,因此,控制设备可以根据该序列号识别所连接的终端设备;之后控制设备根据所识别的终端设备从云端获取用于监测终端设备上待测试软件程序运行时延情况的监测程序。优选地,在本申请实施例中,云端预存有多个不同的监测程序,且该多个监测程序与不同的终端设备具有一一对应关系,使得控制设备可以根据不同型号的终端设备(例如手机),获取不同的监测程序,从而获取到同一待检测软件程序在不同型号手机上的运行情况,避免了因手机型号不同导致同一待检测软件程序在不同型号手机上运行时延不同,使得时延数据不准确的情况。可选地,本申请实施例中,也可以是针对一个待检测软件程序,云端只预存有一种监测程序,当控制设备检测到与终端设备后即连接云端获取该监测程序对终端设备上该待检测软件程序运行的时延情况进行监测。具体情况可根据用户实际需要而定,本申请实施例并不进行限定。
203、控制设备根据监测程序驱动终端设备运行待测试软件程序。
本实施例中,控制设备本身并不存储监测程序,而是直接从云端获取监测程序,控制设备与云端之间的接口可基于应用程序编程接口(application programminginterface,API)调用,之后通过该监测程序驱动终端设备运行待测试软件程序,从而降低了控制设备的成本,同时不影响监测工作的正常进行。
204、控制设备根据监测程序获取终端设备运行待测试软件程序的时延数据。
本实施例中,控制设备基于API调用获取监测程序,对待测试软件程序的运行情况进行监测,从而获取待测试软件程序运行过程中的时延情况,得到待测试软件程序的时延数据。
205、控制设备向用户体验数据分析中心发送时延数据。
本实施例中,控制设备将获取到的时延数据发送给用户体验数据分析中心,用户体验数据分析中心收到时延数据后,进行汇总分析;用户体验数据分析中心在控制设备对多个终端设备进行采样后发来的多份时延数据进行分析,根据分析结果对与终端设备连接的远程服务器进行调优,并将该调优结果发送给远程服务器,从而可以根据所监测到的时延数据,调整远程服务器与终端设备交互的网络参数,从而动态调节待测试软件程序在终端设备上运行的时延情况,提升用户体验。
需要说明的是,上述控制设备所获取到的时延数据,具体可以分为待测试软件程序运行用户场景过程中自身业务逻辑的场景时延数据,以及待测试软件程序运行过程中与远程服务器交互的网络分段时延数据,其中,该远程服务器是为该待测试软件程序提供服务的服务器。为便于理解,以下结合附图对获取上述两种时延数据的具体工作方式做详细说明。
请参阅图3,如图3所示,包括以下步骤。
301、控制设备与终端设备建立连接。
本实施例中,终端设备可以为智能手机、平板电脑等终端设备,其中,该终端设备内安装有待测试的软件程序,例如app等;上述建立连接的具体方式可以为:控制设备从终端设备获取注册信息;控制设备根据注册信息识别所述终端设备,其中,该注册信息可以是终端设备发送给控制设备的序列号,该序列号用于唯一地标记该终端设备,从而实现终端设备在控制设备上的注册,实现终端设备和控制设备的连接。
302、控制设备驱动终端设备运行待测试软件程序的至少一个用户场景操作。
本实施例中,待测试软件程序的运行包含多个用户场景操作,例如登录操作,界面跳转操作等等,控制设备驱动终端设备运行待测试软件程序中的用户场景操作,从而对这些场景操作的时延情况进行检测。
需要说明的是,在上述过程中,控制设备还可以在上述至少一个用户场景操作中驱动终端设备与远程服务器交互,从而监控终端设备运行待测试软件程序时,与远程服务器的交互情况,便于对网络分段时延进行检测。
303、控制设备分别获取至少一个用户场景操作的开始时间和结束时间。
本实施例中,控制设备监测终端设备的待测试软件程序在运行时,用户场景操作的开始时间和结束时间,其具体实现方式可以为:
控制设备获取终端设备运行待测试软件程序的指令代码;
控制设备在获取到用户场景操作的开始指令时,记录至少一个用户场景操作的开始时间;
控制设备在获取到用户场景操作的结束指令时,记录至少一个用户场景操作的结束时间。
其中,上述开始指令和结束指令是预置在监测程序中的,因此控制设备能够对指令代码中每个用户场景操作的开始指令和结束指令进行识别,从而得到每个用户场景操作的开始时间和结束时间。
需要说明的是,在上述工作过程中,若控制设备还在上述至少一个用户场景操作中驱动终端设备与远程服务器交互,则可以通过同样的方法:
控制设备获取终端设备向远程服务器发送消息的指令代码和终端设备从远程服务器接收消息的指令代码。
其中,上述发送消息的指令代码和接收消息的指令代码是预置在监测程序中的,因此控制设备能够对指令代码中每个用户场景与远程服务器交互的收发指令进行识别,从而得到每个用户场景操作与远程服务器交互的信号收发时间。
304、控制设备根据至少一个用户场景操作的开始时间和结束时间获取待测试软件程序中用户场景的场景时延数据。
本实施例中,控制设备获取到了终端设备运行待测试软件程序时,每个用户场景操作的开始时间和结束时间,因此,只需通过结束时间减去开始时间,即可获得每个用户场景操作的总时间,将每个用户场景操作的总时间减去每个用户场景操作的预设时间,即可得到每个用户场景操作的时延,从而得到待测试软件程序中用户场景的场景时延数据。
需要说明的是,在上述工作过程中,若控制设备还获取了终端设备向远程服务器发送消息的指令代码和终端设备从远程服务器接收消息的指令代码,则,控制设备可以通过每个用户场景操作与远程服务器交互的信号收发时间得到每个用户场景操作的网络分段时延数据,可选地,该网络分段时延数据可以是域名系统DNS解析时延数据,安全传输层协议TLS证书交换时延数据及数据传输时延数据中的至少一种。
305、控制设备向用户体验数据分析中心发送时延数据。
本实施例中,时延数据包括每个用户场景操作的场景时延数据和网络分段时延数据,从而控制设备在不侵入待测试软件程序的情况下,获取同时获取到了体现待测试软件程序内部业务逻辑间关系的场景时延数据和体现网络侧时延情况的网络分段时延数据。
用户体验数据分析中心在收到时延数据后,可以进行分析:根据场景时延数据对所提供服务的内部业务逻辑进行调整,以降低用户场景操作的时延,同时用户体验数据分析中心还可以根据网络分段时延数据对数据交互时的网络参数进行调整,例如不同内容分发网络(content delivery network,CDN)的选择;不同域名系统(domain name system,DNS)的选择;以及动态路由的选择。
之后,用户体验数据分析中心将分析的结果发送给远程服务器,使得远程服务器根据用户体验数据分析中心分析的结果对网络参数进行调整,从而通过上述工作方式,能够实时大量地获取到待测试软件程序在不同终端设备上运行的时延情况,针对时延数据对网络参数进行动态调整,从而降低待测试软件程序运行过程中,用户场景操作的时延,提升用户体验。
需要说明的是,在上述所有情况中,控制设备与至少一个终端设备连接,优选地,控制设备可以同时与多个终端设备连接,从而同时对多个终端设备进行检测。可以是同时监测多个同型号终端设备上同一待检测软件程序的时延数据,或者,同时监测不同终端设备上同一待检测软件程序的时延数据,或者,同时监测多个同型号终端设备上不同待检测软件程序的时延数据,或者,同时监测不同终端设备上不同待检测软件程序的时延数据。
在监测过程中,控制设备驱动至少一个终端设备分别运行待测试软件程序;
控制设备获取至少一个终端设备中每个终端设备运行待测试软件程序的时延数据。
具体实施方式可参见上述图1至图3所示出的任意一种实施方式,此处不再赘述。
需要说明的是,上述控制设备与终端设备的连接,可以是有线连接,也可以是无线连接,本申请对此并不进行限定。
上述实施例所提供的情况,可以分别应用在以下场景中:
场景一:
针对待测试软件程序为具体的移动APP,app开发完成后,需要了解移动APP在实际生产环境下的时延数据情况,可基于上述方法对用户的操作过程中移动APP客户端(终端设备)与远程服务器交互的网络性能进行监测,并实时对这些网络性能数据进行分析,从而了解网络运行环境对移动APP的影响,并最终为移动APP针对网络运行特点进行逻辑调优。
场景二:
针对移动APP的版本升级及相应的变更,通过上述方法,即可观察变更前后APP的表现差异,从而为移动APP版本演进提供参考。
场景三:
针对移动APP与类似功能特性的其它应用进行对比分析,从而为移动APP进行竞品分析提供可能。
上述场景一至场景三的具体实现方式可以为上述图1至图3所示的具体实时方式,本申请并不进行限定,此处不再赘述。
需要说明的是,由于本申请实施例所提供的方法为一种非侵入式监测方法,不需要对待测试软件程序的代码进行改写,即可监控待测试软件程序运行的时延情况,因此,在检测时,并不需要对终端设备进行越狱操作,同时,也不需要区分终端设备所运行的系统环境,即可实现本申请实施例所提供的检测方法,对于搭载安卓(Android)系统的终端设备而言,不需要该终端设备启动需要root权限的程序;对于搭载ios系统的终端设备而言,不需要通过文件管理工具,启用与Cydia相关的文件,同时,不需要未经过苹果认证的APP以实现该方法。
本申请实施例所提供的非侵入式监测方法,能够通过控制设备驱动终端设备运行待测试软件程序,获取终端设备运行所述待测试软件程序的时延数据,从而在不改写软件程序代码的情况下对软件程序运行的时延情况进行监控,之后通过用户体验数据分析中心对时延数据进行分析后,将分析结果发送给为终端设备提供服务的远程服务器,从而对网络参数进行调整,以降低待测试软件程序的用户场景操作时延,提升用户体验。由于该方法采用非侵入式的监测方法,不会受到待测试软件程序自身业务逻辑的影响,还能够获取到网络侧的时延情况,从而批量、快速、全面、准确地获取到待测试软件程序的时延情况,同时不需要对终端设备进行越狱操作,还能够适应不同的系统环境。
本申请实施例还提供一种非侵入式监测装置,为便于理解,以下结合附图,进行具体的说明。
请参阅图4,如图4所示,本申请实施例所提供的非侵入式监测装置,包括:
连接单元401,该连接单元401用于与终端设备建立连接;
驱动单元402,该驱动单元402用于驱动该连接单元401连接的该终端设备运行待测试软件程序;
第一获取单元403,该获取单元用于获取该终端设备运行该驱动单元402驱动运行的该待测试软件程序的时延数据;
发送单元404,该发送单元404用于向用户体验数据分析中心发送该第一获取单元403获取到的该时延数据。
本实施例中,控制设备通过与终端设备连接从而识别该终端设备,之后控制设备驱动该终端设备运行待测试软件程序,从而在终端设备运行待测试软件程序的过程中,控制设备获取该终端设备运行该待测试软件程序的时延数据,实现非侵入式的软件程序监测方法,不需要在待测试软件程序中植入代码,即可监测待测试软件程序运行的时延情况,控制设备将获取到的时延数据发送给用户体验数据分析中心,用户体验数据分析中心对时延数据进行分析后,向远程服务器发送用于网络参数调整的指令,调整远程服务器与网络运行参数,从而降低软件程序的运行时延,提升最终用户使用该软件程序的体验。
可选地,该连接单元401,还用于:从该终端设备获取注册信息;根据该注册信息识别该终端设备。
本实施例中,终端设备通过注册信息在控制设备上注册,一方面实现控制设备与终端设备的连接;同时,使得控制设备能够识别该终端设备,从而对所识别到的终端设备进行相关的监测操作。
可选地,该装置还包括第二获取单元405,该第二获取单元405用于,根据所识别的该终端设备从云端获取监测程序;该驱动单元402,还用于:根据该第二获取单元405获取到的该监测程序驱动该终端设备运行待测试软件程序;该第一获取单元403,还用于:根据该第二获取单元405获取到的该监测程序获取该终端设备运行该待测试软件程序的时延数据。
本实施例中,控制设备根据所识别的该终端设备从云端获取监测程序,可选地,控制设备可以是根据所识别的终端设备获取与该终端设备对应的监测程序,也可以是在检测到与终端设备连接后,获取相同的监测程序,控制设备可以是通过应用程序编程接口(Application Programming Interface,API)调用获取到存储在云端的监测程序,该云端可以是云服务器。控制设备通过API调用获取存储在云服务器上的监测程序,从而控制设备本身不需存储相关程序,简化了控制设备的结构,不占用控制设备额外的存储空间,降低了控制设备的成本。
可选地,该驱动单元402,还用于:驱动该终端设备运行待测试软件程序的至少一个用户场景操作;该第一获取单元403,还用于:分别获取该至少一个用户场景操作的开始时间和结束时间;根据该至少一个用户场景操作的开始时间和结束时间获取该待测试软件程序中用户场景的场景时延数据。
本实施例中,该控制设备根据该监测程序驱动该终端设备运行待测试软件程序的具体实现方式为:控制设备驱动终端设备运行待测试软件程序的至少一个用户场景操作;由于待测试软件程序的运行面向用户而言是通过一个个用户场景操作来实现的,为了检测软件程序的用户使用体验,就需要获取软件程序运行过程中每个用户场景操作的时延,从而监测软件程序时延情况对用户体验的影响。
可选地,该驱动单元402,还用于:在该至少一个用户场景操作中驱动该终端设备与远程服务器交互;该第一获取单元403,还用于:该控制设备获取该至少一个用户场景中该终端设备与远程服务器交互的网络分段时延数据。
本实施例中,在用户使用软件程序时,涉及到用户体验的时延数据,除了软件程序中每个用户场景操作运行的时延情况外,还有在每个用户场景操作中,终端设备与远程服务器进行数据交互的网络分段时延数据,因此,控制设备在对待测试软件程序检测的过程中,在至少一个用户场景操作中驱动该终端设备与远程服务器交互,从而获得每个用户场景操作中的网络分段时延数据。
可选地,该第一获取单元403,还用于:获取该终端设备运行该待测试软件程序的指令代码;在获取到用户场景操作的开始指令时,记录该至少一个用户场景操作的开始时间;在获取到用户场景操作的结束指令时,记录该至少一个用户场景操作的结束时间。
本实施例中,控制设备获取时延数据的具体方式,是通过获取待测试软件程序的指令代码,控制设备在监测开始之前,预置了待测试软件程序的指令代码;因此在待测试软件程序运行的过程中,控制设备能够根据所获取到的指令代码,获知待测试软件程序当前运行到哪个步骤,从而得到相应的时延数据,针对场景时延数据而言,控制设备在获取到用户场景操作的开始指令时,记录该至少一个用户场景操作的开始时间;该控制设备在获取到用户场景操作的结束指令时,记录该至少一个用户场景操作的结束时间,从而得到每个用户场景操作的场景时延数据。
可选地,该第一获取单元403,还用于:获取该终端设备向该远程服务器发送消息的指令代码和该终端设备从该远程服务器接收消息的指令代码;根据获取到该发送消息的指令代码和该接收消息的指令代码的时间得到该网络分段时延数据。
本实施例中,控制设备中预置了终端设备向该远程服务器发送消息的指令代码和该终端设备从该远程服务器接收消息的指令代码,从而当终端设备与远程服务器进行信号交互时,控制设备能够通过获取指令代码获知该信号交互动作的发生时间,从而获取到网络分段时延数据。
可选地,该网络分段时延数据包括域名系统DNS解析时延数据,安全传输层协议TLS证书交换时延数据及数据传输时延数据中的至少一种。
本实施例中,终端设备与远程服务器的信号交互包含多种不同的类型,具体可以包括DNS时延数据,TLS证书交换时延数据或数据传输时延数据。
可选地,该连接单元401,还用于:与至少一个终端设备建立连接;该驱动单元402,还用于:该控制设备驱动至少一个终端设备分别运行待测试软件程序;该第一获取单元403,还用于:该控制设备获取该至少一个终端设备中每个终端设备运行该待测试软件程序的时延数据。
本实施例中,控制设备可以仅与一个终端设备连接;可选地,控制设备也可以同时与多个终端设备连接,同时监测多个终端设备运行待测试软件程序的时延情况,在多个终端设备中,可以运行同一个待测试软件程序,也可以分别运行不同的待测试软件程序。
可选地,该连接单元401,还用于:与该终端设备有线连接,或者,与该终端设备无线连接。
本实施例中,控制设备与终端设备之间可以通过有线连接,例如通过网线、USB接口、Lightning接口、Micro USB接口或Type-c接口等,也可以通过无线连接,例如WIFI连接或蓝牙连接等。
本申请实施例还提供一种控制设备,为便于理解,以下结合附图,进行具体的说明。
请参阅图5,如图5所示,本申请实施例所提供的控制设备,包括相互连接的处理器501、扣板502和收发器503,该扣板502上设置有用于与终端设备连接的至少一个接口,其中,该处理器501用于:通过该扣板502与该终端设备建立连接;通过该扣板502驱动该终端设备运行待测试软件程序;通过该扣板502获取该终端设备运行该待测试软件程序的时延数据;通过该收发器503向用户体验数据分析中心发送该时延数据。
需要说明的是,该用户体验数据分析中心可以为云服务器,用于根据时延数据进行分析,从而生成网络参数调整数据,发送给远程服务器,从而提升用户体验。
可选地,该处理器501还用于:通过该扣板502从该终端设备获取注册信息;根据该注册信息识别该终端设备。
可选地,该处理器501还用于:根据所识别的该终端设备,通过该收发器503从云端获取监测程序;根据该收发器503接收的该监测程序驱动该终端设备运行待测试软件程序;根据该收发器503接收的该监测程序,通过该扣板502获取该终端设备运行该待测试软件程序的时延数据。
可选地,该处理器501还用于:通过该扣板502驱动该终端设备运行待测试软件程序的至少一个用户场景操作;通过该扣板502分别获取该至少一个用户场景操作的开始时间和结束时间;根据该至少一个用户场景操作的开始时间和结束时间获取该待测试软件程序中用户场景的场景时延数据。
可选地,该处理器501还用于:通过该扣板502在该至少一个用户场景操作中,驱动该终端设备与远程服务器交互;通过该扣板502获取该至少一个用户场景中,该终端设备与远程服务器交互的网络分段时延数据。
可选地,该处理器501还用于:通过该扣板502获取该终端设备运行该待测试软件程序的指令代码;在通过该扣板502获取到用户场景操作的开始指令时,记录该至少一个用户场景操作的开始时间;在通过该扣板502获取到用户场景操作的结束指令时,记录该至少一个用户场景操作的结束时间。
可选地,该处理器501还用于:通过该扣板502获取该终端设备向该远程服务器发送消息的指令代码和该终端设备从该远程服务器接收消息的指令代码;根据通过该扣板502获取到的该发送消息的指令代码和该接收消息的指令代码的时间得到该网络分段时延数据。
可选地,该网络分段时延数据包括域名系统DNS解析时延数据,安全传输层协议TLS证书交换时延数据及数据传输时延数据中的至少一种。
可选地,该处理器501还用于:通过该扣板502与至少一个终端设备建立连接;通过该扣板502驱动至少一个终端设备分别运行待测试软件程序;通过该扣板502获取该至少一个终端设备中每个终端设备运行该待测试软件程序的时延数据。
可选地,该扣板502用于:通过该接口与该终端设备有线连接,或者,通过该接口与该终端设备无线连接。
需要说明的是,上述扣板502集成了通信处理器501系统,提供10M/100M以太网与PC主板进行通信的功能,其中,该PC主板上设置有上述处理器501,该扣板502按照既定主机通信协议从PC主板接收各种测试/配置命令,并上报各种测试结果,该各种测试/配置命令包括上述驱动终端设备运行待测试软件程序的指令,该测试结果包括上述时延数据。
进一步地,该扣板502还用于完成各个模块的初始化、管理、现场可编程门阵列(field-programmable gate array,FPGA)的加载、状态监控和告警管理、状态指示等。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本发明实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例所提供的非侵入式监测方法、控制设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。