在线远程调试方法、系统、存储介质和计算机设备与流程

文档序号:32308092发布日期:2022-11-23 10:39阅读:66来源:国知局
在线远程调试方法、系统、存储介质和计算机设备与流程

1.本发明涉及软件测试技术领域,具体而言,本发明涉及一种在线远程调试方法、装置、计算机可读存储介质和计算机设备。


背景技术:

2.vconsole项目是一个轻量、可拓展、针对手机网页的开源调试面板。开发者通过在项目中加载vconsole后,可以通过vconsole提供的调试功能面板在运行项目的设备中查看一些当前项目的运行信息。使用vconsole期间,运行项目的设备应该在开发者身边、由开发者直接使用,如果开发者不能接触到运行设备,vconsole提供的信息则无法直接反馈给开发者。例如,发生以下场景时上述问题会更加明显:项目在测试期间,开发者和软件测试人员位于不同城市,运行项目的设备在测试人员侧,此时开发者无法直接使用设备、查看vconsole提供的运行信息,只能另外通过远程协同的方式由测试人员将运行信息反馈给开发者,由于专业领域不同,在远程协同时又会衍生出如何有效沟通等问题。由此可见,现有软件测试存在在物理空间上限制了运行项目的设备和开发者的距离的缺点。
3.因此,亟需一种更够有效解决上述问题的在线远程调试方法。


技术实现要素:

4.为至少能解决上述的技术缺陷之一,本发明提供了以下技术方案的在线远程调试方法及对应的装置、计算机可读存储介质和计算机设备。
5.本发明的实施例根据一个方面,提供了一种在线远程调试方法,应用于客户端,包括如下步骤:
6.基于预先注入的集成sdk,收集web项目的运行信息;
7.外发所述运行信息,以使已建立通信连接的调试端接收所述运行信息并返回根据所述运行信息生成的调试代码;
8.接收并执行所述调试代码,返回调试结果。
9.优选地,所述外发所述运行信息之前,还包括:
10.请求建立对应所述web项目的虚拟房间并加入所述虚拟房间。
11.优选地,所述已建立通信连接的调试端为加入所述虚拟房间的调试端。
12.优选地,所述外发所述运行信息之前,还包括:
13.接收到调试端加入所述虚拟房间的广播消息。
14.优选地,所述调试端的数量为一个或多个。
15.本发明的实施例根据另一个方面,提供了一种在线远程调试系统,包括:客户端、服务端和调试端;
16.所述客户端用于:基于预先注入的集成sdk,收集web项目的运行信息;经由服务端向调试端外发所述运行信息;接收并执行所述调试代码,返回调试结果;
17.所述调试端用于:接收并显示所述运行信息和调试结果;根据所述运行信息生成
调试代码并返回;
18.所述服务端用于:将所述客户端和所述调试端建立通信连接;将客户端外发的所述运行信息和所述调试结果转发至调试端;将调试端返回的调试代码转发至客户端。
19.优选地,所述客户端还用于:请求建立对应所述web项目的虚拟房间并加入所述虚拟房间;
20.所述调试端还用于:请求加入所述虚拟房间;
21.所述服务端用于将所述客户端和所述调试端建立通信连接时具体用于:响应客户端请求建立对应所述web项目的虚拟房间,将客户端加入所述虚拟房间;响应调试端请求将调试端加入所述虚拟房间;基于websocket建立与客户端和调试端的通信连接;在虚拟房间内广播调试端加入所述虚拟房间的广播消息。
22.优选地,所述调试端的数量为一个或多个。
23.本发明的实施例根据又一个方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的在线远程调试方法。
24.本发明的实施例根据再一个方面,提供了一种计算机设备,所述计算机包括一个或多个处理器;存储器;一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个计算机程序配置用于:执行上述的在线远程调试方法。
25.本发明与现有技术相比,具有以下有益效果:
26.本发明提供的在线远程调试方法、系统、计算机可读存储介质和计算机设备,通过在客户端中注入集成sdk,基于集成sdk在客户端网页浏览器上运行web项目时实现在客户端收集数据、与服务端的通信能力,将采集到的运行信息经由服务端进行外发,使得已建立通信连接的调试端接收所述运行信息并返回根据所述运行信息生成的调试代码,从而实现web项目的在线远程调试,降低了排障难度,测试人员无需再通过远程协同的方式将web项目的故障信息反馈给开发者,显著减少了远程调试的沟通成本,能够打破物理空间上的使用距离限制。
27.本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
28.本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
29.图1为本发明实施例提供的一种在线远程调试系统的结构示意图;
30.图2为本发明实施例提供的一种在线远程调试方法的方法流程图;
31.图3为本发明实施例提供的另一种在线远程调试系统的结构示意图;
32.图4为本发明实施例提供的另一种在线远程调试方法的方法流程图;
具体实施方式
33.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终
相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
34.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
35.本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
36.本发明实施例提供了一种在线远程调试系统,如图1所示,所述在线远程调试系统包括客户端10、服务端20和调试端30;所述客户端10与所述服务端20双向通信连接,所述调试端30也与所述服务端20双向通信连接,所述客户端10和所述调试端30经由所述服务端20实现双向通信连接。
37.在web(world wide web,即全球广域网,也称为万维网)项目开发测试的实际应用场景中,特别是开发者和软件测试人员不在同一地理位置的远程调试应用场景中,所述客户端10位于测试人员一侧,由测试人员提供待调试应用并在所述客户端10中进行测试,该待调试应用为待运行在所述客户端10网页浏览器上的web项目。其中,所述客户端10可以是手机、计算机、平板等设备,本发明实施例对此不作限定。
38.所述调试端30位于开发者一侧,由开发者通过所述调试端30进行项目开发测试的信息查看、调试等操作。
39.所述服务端20承接所述客户端10和所述调试端30之间的交互,负责执行的操作包括但不限于数据通信、消息转发和数据存储。
40.本发明实施例提供了一种在线远程调试方法,应用于所述客户端10,如图2所示,该方法包括:
41.步骤s110:基于预先注入的集成sdk,收集web项目的运行信息。
42.sdk(software development kit,软件开发工具包)是开发工具的集合,是提供给研发相关人员进行应用程序开发的工具,研发相关人员可以直接使用相应功能,从而省去了编写相应功能代码的过程。
43.对于本实施例,预先将收集客户端上web项目的运行信息、与服务端通信的能力集成在sdk中,得到所述集成sdk。所述集成sdk用于实现功能代理,针对需要收集的数据,代理浏览器的原生方法,注入拦截逻辑。在web项目开发测试的实际应用场景,特别是在远程调试的实际应用场景中,位于测试人员一侧的客户端应在其运行待调试应用发生故障时,具备收集运行现场的故障信息的能力,此外,所述客户端还应进一步具备将所收集的运行现场的故障信息进行外发的能力。由于收集客户端上web项目的运行信息、与服务端通信的能力与所述web项目中的业务代码并无关联,因此可以将具备这种能力的逻辑代码封装在一个独立的脚本文件中形成sdk分发。
44.通过将客户端上web项目的运行信息和连接服务器的功能全部集成在sdk内,需要调试时在客户端中集成sdk,反之从客户端中剔除sdk即可。该方法便于功能集成,对于浏览器设备无依赖、和客户端所运行的实际业务无耦合。若开展调试时,客户端没有注入所述集成sdk,测试人员可通过模板动态注入或者手动引入的方式在客户端中注入sdk,测试人员刷新运行在所述客户端网页浏览器上的web项目即可实现功能拦截、数据收集、消息通信的能力。
45.对于本实施例,客户端收集web项目的运行信息,具体为,客户端调用功能代理后的函数时,sdk中的拦截逻辑对调用的函数类型、函数参数等数据进行收集。此外,客户端还可以按照调试端的数据格式要求进行转换并将数据缓存。
46.步骤s120:外发所述运行信息,以使已建立通信连接的调试端接收所述运行信息并返回根据所述运行信息生成的调试代码。
47.对于本实施例,客户端向服务端外发所述运行信息,并经由所述服务端转发所述运行信息,使得已建立通信连接的调试端接收到所述运行信息。调试端在接收到所述运行信息之后,数据可通过html(hyper text markup language,超文本标记语言)、css(cascading style sheets,层叠样式表)、js(javascript)编码的手段图形化展示在调试端的浏览器界面。通过该方式,即便开发者和软件测试人员位于不同城市,运行项目的设备在测试人员一侧,开发者仍可通过调试端有效查看客户端上web项目的运行信息。将客户端上web项目的运行信息以多维度的图形可视化方式呈现在开发者面前,能够显著降低web项目的排障难度。开发者可根据客户端上web项目的运行信息来提供调试代码,在调试端中生成调试代码并向服务端外发所述调试代码,并经由所述服务端转发所述调试代码,使得客户端接收到调试端返回的根据所述运行信息生成的调试代码。
48.步骤s130:接收并执行所述调试代码,返回调试结果。
49.对于本实施例,客户端接收到调试端返回的根据所述运行信息生成的调试代码并执行所述调试代码,并将执行的调试结果经由服务端返回给调试端。当与客户端建立通信连接的调试端有多个时,为避免各个调试端对调试代码存在信息不同步的问题,向各个调试端返回调试结果的同时还一并发送对应的调试代码。
50.在本发明实施例提供的在线远程调试方法,通过在客户端中注入集成sdk,基于集成sdk在客户端网页浏览器上运行web项目时实现在客户端收集数据、与服务端的通信能力,将采集到的运行信息经由服务端进行外发,使得已建立通信连接的调试端接收所述运行信息并返回根据所述运行信息生成的调试代码,从而实现web项目的在线远程调试,降低了排障难度,测试人员无需再通过远程协同的方式将web项目的故障信息反馈给开发者,显著减少了远程调试的沟通成本,能够打破物理空间上的使用距离限制。
51.在一些实施例中,在上述实施例的基础上,所述步骤s120外发所述运行信息之前,还包括:请求建立对应所述web项目的虚拟房间并加入所述虚拟房间。
52.对于本实施例,基于websocket技术(一种基于tcp的全双工通信的协议),客户端携带其客户端属性信息和web项目的项目信息作为参数请求服务端建立连接,请求建立对应所述web项目的虚拟房间。相应的,服务端在接到客户端基于集成sdk发出的连接请求后,执行创建虚拟房间的逻辑,并将客户端加入到刚刚建立的虚拟房间中。
53.在一些实施例中,在上述实施例的基础上,所述已建立通信连接的调试端为加入
所述虚拟房间的调试端。
54.对于本实施例,所述客户端和所述调试端通过进入同一虚拟房间的方式建立通信连接。
55.在一些实施例中,在上述实施例的基础上,所述调试端的数量为一个或多个。
56.对于本实施例,一个客户端可对应n个调试端。也就是,在web项目开发测试的实际应用场景中,加入同一虚拟房间的调试端的连接数量不受限制,在客户端上运行web项目产生的问题可相应的通过多个开发者协同解决。本发明实施例对所述调试端的具体数量不作限定,理论上调试端的数量不受限制,但由于硬件设备性能限制有一定数量瓶颈。
57.对于本实施例,各个调试端与客户端建立通信连接的时间节点或者连接顺序并不存在制约条件,多个调试端可以同时与客户端建立通信连接,也可以在不同的时间节点先后与客户端建立通信连接。
58.在一些实施例中,在上述实施例的基础上,所述步骤s120外发所述运行信息之前,还包括:接收到调试端加入所述虚拟房间的广播消息。
59.对于本实施例,客户端和调试端通过服务端实现双向通信连接,当有调试端进入客户端当前所在的虚拟房间时,服务端会在虚拟房间内广播有新的调试端加入的消息,客户端能够在虚拟房间内接收到调试端加入所述虚拟房间的广播消息,在收到广播消息之后,再执行向该新加入虚拟房间的调试端发送运行信息的步骤。
60.在一些实施例中,客户端按照调试端的数据格式要求进行转换并将数据缓存时,还可进一步保证一定的顺序,当有新的调试端与客户端建立通信连接时,可将缓存的运行信息一并发送给新建立通信连接的调试端,以此保证与客户端建立通信连接的所有调试端接收的运行信息均一致。
61.在上述应用于客户端的在线远程调试方法的基础上,参见图3,本发明提供的在线远程调试系统具体为:
62.所述客户端用于:基于预先注入的集成sdk,收集web项目的运行信息,即集成sdk,对客户端功能代理、收集数据并转换;请求建立对应所述web项目的虚拟房间并加入所述虚拟房间;经由服务端向调试端外发所述运行信息;接收并执行所述调试代码,返回调试结果;同时发送调试代码。
63.所述调试端用于:请求加入所述虚拟房间;接收并显示所述运行信息;根据所述运行信息生成调试代码并返回;接收并显示所述调试结果。优选的,所述调试端的数量为一个或多个。
64.所述服务端用于:将所述客户端和所述调试端建立通信连接,具体地,响应客户端请求建立对应所述web项目的虚拟房间,将客户端加入所述虚拟房间;响应调试端请求将调试端加入所述虚拟房间;基于websocket建立与客户端和调试端的通信连接;在虚拟房间内广播调试端加入所述虚拟房间的广播消息以及客户端反馈运行信息的广播消息;将客户端外发的所述运行信息和所述调试结果转发至调试端;将调试端返回的调试代码转发至客户端。
65.在本实施例中,通过在客户端中注入集成sdk,基于集成sdk在客户端网页浏览器上运行web项目时实现在客户端收集数据、与服务端的通信能力,将采集到的运行信息经由服务端进行外发,使得已建立通信连接的调试端接收所述运行信息并返回根据所述运行信
息生成的调试代码,从而实现web项目的在线远程调试,降低了排障难度,测试人员无需再通过远程协同的方式将web项目的故障信息反馈给开发者,显著减少了远程调试的沟通成本,能够打破物理空间上的使用距离限制。
66.本发明方法实施例的内容均适用于本系统实施例,本系统实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法达到的有益效果也相同,具体请参见方法实施例中的说明,在此不再赘述。
67.在上述在线远程调试系统的基础上,本发明实施例还提供了另一种在线远程调试方法,应用于所述在线远程调试系统,如图4所示,所述在线远程调试方法包括以下步骤:
68.1.功能代理:客户端预先注入集成sdk,所述集成sdk用于实现功能代理,针对需要收集的数据,代理浏览器的原生方法,注入拦截逻辑。
69.2.收集数据:客户端调用功能代理后的函数时,sdk中的拦截逻辑对调用的函数类型、函数参数等数据进行收集;客户端还可以按照调试端的数据格式要求进行转换并将数据缓存。
70.3.客户端与服务端的通信连接:基于websocket技术,客户端携带其客户端属性信息和web项目的项目信息作为参数请求服务端建立连接,请求建立对应所述web项目的虚拟房间。相应的,服务端在接到客户端基于集成sdk发出的连接请求后,执行创建虚拟房间的逻辑,并将客户端加入到刚刚建立的虚拟房间中,实现客户端与服务端的通信连接。
71.4.调试端与服务端的通信连接:当调试端有加入虚拟房间的需求时,会向服务端轮询是否有虚拟房间;调试端从服务端获取到虚拟房间的信息之后,请求加入所述虚拟房间。相应的,服务端响应调试端请求将调试端加入所述虚拟房间,基于websocket技术实现调试端与服务端的通信连接。
72.5.广播新连接加入:服务端在与新的调试端建立通信连接之后,在虚拟房间内广播调试端加入所述虚拟房间的广播消息。
73.6.发送数据:客户端经由服务端向调试端外发所述运行信息,以使调试端根据所述运行信息生成调试代码并返回,客户端接收并执行所述调试代码,返回调试结果,最终完成web项目的在线远程调试。
74.在本实施例中,通过在客户端中注入集成sdk,基于集成sdk在客户端网页浏览器上运行web项目时实现在客户端收集数据、与服务端的通信能力,将采集到的运行信息经由服务端进行外发,使得已建立通信连接的调试端接收所述运行信息并返回根据所述运行信息生成的调试代码,从而实现web项目的在线远程调试,降低了排障难度,测试人员无需再通过远程协同的方式将web项目的故障信息反馈给开发者,显著减少了远程调试的沟通成本,能够打破物理空间上的使用距离限制。
75.本发明应用于客户端的方法实施例的内容均适用于本应用于在线远程调试系统的方法实施例,本应用于在线远程调试系统的方法实施例所具体实现的功能与上述应用于客户端的方法实施例相同,并且达到的有益效果与上述方法达到的有益效果也相同,具体请参见方法实施例中的说明,在此不再赘述。
76.此外,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现以上任一实施例所述的在线远程调试方法。其中,所述计算机可读存储介质包括但不限于任何类型的盘(包括软盘、硬盘、光
盘、cd-rom、和磁光盘)、rom(read-only memory,只读存储器)、ram(random access memory,随即存储器)、eprom(erasable programmable read-only memory,可擦写可编程只读存储器)、eeprom(electrically erasable programmable read-only memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,存储设备包括由设备(例如,计算机、手机)以能够读的形式存储或传输信息的任何介质,可以是只读存储器,磁盘或光盘等。
77.本发明方法实施例的内容均适用于本存储介质实施例,本存储介质实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法达到的有益效果也相同,具体请参见方法实施例中的说明,在此不再赘述。
78.此外,本发明实施例还提供了一种计算机设备,本实施例所述的计算机设备可以是服务器、个人计算机以及网络设备等设备。所述计算机设备包括:一个或多个处理器,存储器,一个或多个计算机程序,其中所述一个或多个计算机程序被存储在存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个计算机程序配置用于执行以上任一实施例所述的在线远程调试方法。
79.本发明方法实施例的内容均适用于本计算机设备实施例,本计算机设备实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法达到的有益效果也相同,具体请参见方法实施例中的说明,在此不再赘述。
80.此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
81.以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1