一种开发调试方法及装置与流程

文档序号:12063565阅读:205来源:国知局
一种开发调试方法及装置与流程

本发明涉及一种互联网技术领域,尤其涉及一种开发调试方法及装置。



背景技术:

目前随着移动互联网的高速发展,移动终端的web前端开发越来越多。受限于移动终端性能、屏幕尺寸的影响,用于真机调试的工具特别缺乏,因此有必要提供一种适用于真机调试的web前端调试技术,其中,真机调试是使用真机(如:移动终端)进行测试并获取真机运行时的调试信息的调试方法。在现有技术方案中,主要包括以下几种调试方案:第一类alert提示框类型,该类型在代码中插入“alert(‘some debug info’)”语句,当代码运行到调试行,在页面中弹出提示框,显示调试信息;第二类页面console控制台类型,该类型在页面中构建一个调试控制台,调试信息可以随时打印在页面中;第三类jsconsole类型,该类型首先使用websocket将调试信息以网络请求的方式发送到jsconsole服务器,然后jsconsole服务器将调试信息返回客户端进行显示。但是,上述几种开发调试方式可能出现页面卡住、调试不稳定或者依赖服务器显示速度慢等技术问题。



技术实现要素:

本发明实施例所要解决的技术问题在于,提供一种开发调试的方法及装置,可以提高开发调试效率,并提高开发调试的稳定性以及安全性。

为了解决上述技术问题,本发明实施例提供了一种开发调试的方法,包括:

当程序运行到调试代码处时,向虚拟服务器发送携带有调试信息的网络调试请求;

使用预装的调试代理工具Fiddler拦截所述网络调试请求,并通过所述调试代理工具Fiddler中预先编写的插件从拦截的所述网络调试请求中获取所述调试 信息;

将获取到所述调试信息作为所述网络调试请求的响应内容进行显示以提示用户对所述程序进行调试。

可选的,所述使用预装的调试代理工具Fiddler拦截所述网络调试请求包括:

使用预装的调试代理工具Fiddler,通过监听预设的网络端口拦截所述网络调试请求。

可选的,所述网络调试请求包括调试会话标识,所述使用预装的调试代理工具Fiddler拦截所述网络调试请求,并通过所述调试代理工具Fiddler中预先编写的插件从拦截的所述网络调试请求中获取所述调试信息包括:

根据所述调试会话标识,从拦截的多个服务请求中查询所述网络调试请求;

从查询到的所述网络调试请求中获取所述调试信息。

可选的,所述将获取到所述调试信息作为所述网络调试请求的响应内容进行显示以提示用户对所述程序进行调试包括:

将所述调试信息从字符串类型转化为JSON数据类型进行显示。

可选的,所述当程序运行到调试代码处时,向虚拟服务器发送携带有调试信息的网络调试请求之前,还包括:

建立与所述虚拟服务器的网络连接。

相应地,本发明实施例提供了一种开发调试的装置,包括:

请求发送模块,用于当程序运行到调试代码处时,向虚拟服务器发送携带有调试信息的网络调试请求;

信息获取模块,用于使用预装的调试代理工具Fiddler拦截所述网络调试请求,并通过所述调试代理工具Fiddler中预先编写的插件从拦截的所述网络调试请求中获取所述调试信息;

信息显示模块,用于将获取到所述调试信息作为所述网络调试请求的响应内容进行显示以提示用户对所述程序进行调试。

可选的,所述信息获取模块具体用于:

使用预装的调试代理工具Fiddler,通过监听预设的网络端口拦截所述网络调试请求。

可选的,所述信息获取模块包括:

请求查询单元,用于根据所述调试会话标识,从拦截的多个服务请求中查询所述网络调试请求;

信息获取单元,用于从查询到的所述网络调试请求中获取所述调试信息。

可选的,所述信息显示模块,还用于将所述调试信息从字符串类型转化为JSON数据类型进行显示。

可选的,所述装置还包括:

连接建立模块,用于建立与所述虚拟服务器的网络连接。

本发明实施例中首先在程序运行到调试代码处时发起网络调试请求;然后使用预装的调试代理工具Fiddler拦截网络调试请求,并通过调试代理工具Fiddler中预先编写的插件从拦截的网络调试请求中获取调试信息,最后将从网络调试请求获取到调试信息作为网络调试请求的响应内容进行显示,调试的整个过程均在本地完成,因此不仅可以提高开发调试效率,而且提高开发调试的稳定性以及安全性。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明提出的一种开发调试方法的第一实施例的流程示意图;

图2是本发明实施例提供的调试信息显示效果示意图;

图3是本发明提出的一种开发调试方法的第二实施例的流程示意图;

图4是本发明实施例提出的一种开发调试装置的结构示意图;

图5是本发明实施例提出的开发调试装置中信息获取模块的结构示意图;

图6是本发明实施例提出的另一种开发调试装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图1,图1是本发明提出的一种开发调试方法的第一实施例的流程示意图。本实施例的执行主体可以为个人电脑,如图所示,本发明实施例中的方法包括:

S101,当程序运行到调试代码处时,向虚拟服务器发送携带有调试信息的网络调试请求。

具体实现中,为了获知程序运行的执行过程,用户在程序的每个执行阶段可以插入调试代码,当程序运行到调试代码处时,程序通过执行相关调用函数打印出插入的调试代码,从而用户可以获知程序运行到调试代码处的时间点,或者如果在打印的调试信息中未查找到目标调试代码,用户可以确定程序在该目标调试代码对应的执行阶段存在问题。在本发明实施例中,网络调试请求可以为HTTP(Hypertext transfer protocol,超文本传送协议)请求,当程序运行到调试代码处时,可以以ajax(Asynchronous JavaScript and XML)的形式向虚拟服务器发送携带有调试信息的HTTP请求。例如:当程序运行到调试代码fc.log('something want to display',{name:'aslin',age:'23',job:'code farmer'},{fcflag:'print 1'})处时,向虚拟服务器http://fiddler.fc.com接口发送HTTP请求。其中,fcflag对应的参数print 1为调试会话标识。需要说明的是,http://fiddler.fc.com接口在实际网络中并不存在。

可选的,在向虚拟服务器发送携带有调试信息的网络调试请求之前,可以建立与所述虚拟服务器的网络连接。

S102,使用预装的调试代理工具Fiddler拦截所述网络调试请求,并通过所述调试代理工具Fiddler中预先编写的插件从拦截的所述网络调试请求中获取所述调试信息。

具体实现中,可以首先启动并运行预装的调试代理工具Fiddler,使用预装的调试代码工具Fiddler监听预设的网络端口,通过监听预设的网络端口拦截所 述网络调试请求,然后通过所述调试代理工具Fiddler中预先编写的插件从拦截的所述网络调试请求中获取所述调试信息。其中,该插件为调用上述预装的调试代理工具Fiddler中的多个调用接口并编译出的在windows下可安装执行的程序。需要说明的是,通过预设的网络端口可以向虚拟服务器发送多个服务请求,预装的调试代码工具可以对所有的上述多个服务请求进行拦截。

进一步的,所述网络调试请求可以包括调试会话标识,可以根据所述调试会话标识,从拦截的多个服务请求中查询所述网络调试请求;从查询到的所述网络调试请求中获取所述调试信息。

S103,将获取到所述调试信息作为所述网络调试请求的响应内容进行显示以提示用户对所述程序进行调试。

具体实现中,一次网络调试请求可以分为客户端对虚拟服务器发送请求以及虚拟服务器响应客户端的请求两个阶段,从上述步骤可知,虚拟服务器http://fiddler.fc.com接口在实际网络中并不存在,使用预装的调试代理工具Fiddler拦截网络调试请求之后,网络调试请求并不发往实际网络,可以将获取到的所述调试信息作为所述网络调试请求的响应内容。

可选的,可以将所述调试信息从字符串类型转化为JSON(JavaScript Object Notation)数据类型进行显示。如图2所示,图2是调试代码fc.log('something want to display',{name:'aslin',age:'23',job:'code farmer'},{fcflag:'print 1'})执行完成后打印出的以JSON数据类型显示的效果图,从而向用户展示调试信息的数据结构,方便用户操作。

本发明实施例中首先在程序运行到调试代码处时发起网络调试请求;然后使用预装的调试代理工具Fiddler拦截网络调试请求,并通过调试代理工具Fiddler中预先编写的插件从拦截的网络调试请求中获取调试信息,最后将从网络调试请求获取到调试信息作为网络调试请求的响应内容进行显示,调试的整个过程均在本地完成,因此不仅可以提高开发调试效率,而且提高开发调试的稳定性以及安全性。

请参考图3,图3是本发明提出的一种开发调试方法的第二实施例的流程示 意图。本实施例的执行主体可以为个人电脑,如图所示,本发明实施例中的方法包括:

S301,建立与所述虚拟服务器的网络连接。

S302,当程序运行到调试代码处时,向虚拟服务器发送携带有调试信息的网络调试请求。

具体实现中,为了获知程序运行的执行过程,用户在程序的每个执行阶段可以插入调试代码,当程序运行到调试代码处时,程序通过执行相关调用函数打印出插入的调试代码,从而用户可以获知程序运行到调试代码处的时间点,或者如果在打印的调试信息中未查找到目标调试代码,用户可以确定程序在该目标调试代码对应的执行阶段存在问题。在本发明实施例中,网络调试请求可以为HTTP(Hypertext transfer protocol,超文本传送协议)请求,当程序运行到调试代码处时,可以以ajax(Asynchronous JavaScript and XML)的形式向虚拟服务器发送携带有调试信息的HTTP请求。例如:当程序运行到调试代码fc.log('something want to display',{name:'aslin',age:'23',job:'code farmer'},{fcflag:'print 1'})处时,向虚拟服务器http://fiddler.fc.com接口发送HTTP请求。其中,fcflag对应的参数print 1为调试会话标识。需要说明的是,http://fiddler.fc.com接口在实际网络中并不存在。

S303,使用预装的调试代理工具Fiddler,通过监听预设的网络端口拦截所述网络调试请求,并通过所述调试代理工具Fiddler中预先编写的插件从拦截的所述网络调试请求中获取所述调试信息。

具体实现中,可以首先启动并运行预装的调试代理工具Fiddler,使用预装的调试代码工具Fiddler监听预设的网络端口,通过监听预设的网络端口拦截所述网络调试请求,然后通过所述调试代理工具Fiddler中预先编写的插件从拦截的所述网络调试请求中获取所述调试信息。其中,该插件为调用上述预装的调试代理工具Fiddler中多个调用接口并编译出的在windows下可安装执行的程序。需要说明的是,通过预设的网络端口可以向虚拟服务器发送多个服务请求,预装的调试代码工具可以对所有的上述多个服务请求进行拦截。

进一步的,所述网络调试请求可以包括调试会话标识,可以根据所述调试 会话标识,从拦截的多个服务请求中查询所述网络调试请求;从查询到的所述网络调试请求中获取所述调试信息。

S304,将获取到所述调试信息作为所述网络调试请求的响应内容进行显示以提示用户对所述程序进行调试。

具体实现中,一次网络调试请求可以分为客户端对虚拟服务器发送请求以及虚拟服务器响应客户端的请求两个阶段,从上述步骤可知,虚拟服务器http://fiddler.fc.com接口在实际网络中并不存在,使用预装的调试代理工具Fiddler拦截网络调试请求之后,网络调试请求并不发往实际网络,可以将获取到的所述调试信息作为所述网络调试请求的响应内容。

可选的,可以将所述调试信息从字符串类型转化为JSON(JavaScript Object Notation)数据类型进行显示。如图2所示,图2是调试代码fc.log('something want to display',{name:'aslin',age:'23',job:'code farmer'},{fcflag:'print 1'})执行完成后打印出的以JSON数据类型显示的效果图,从而向用户展示调试信息的数据结构,方便用户操作。

本发明实施例中首先在程序运行到调试代码处时发起网络调试请求;然后使用预装的调试代理工具Fiddler拦截网络调试请求,并通过调试代理工具Fiddler中预先编写的插件从拦截的网络调试请求中获取调试信息,最后将从网络调试请求获取到调试信息作为网络调试请求的响应内容进行显示,调试的整个过程均在本地完成,因此不仅可以提高开发调试效率,而且提高开发调试的稳定性以及安全性。

如图4所示,图4是本发明实施例提出的一种开发调试装置的结构示意图,如图所示,本发明实施例中的装置包括:

请求发送模块401,用于当程序运行到调试代码处时,向虚拟服务器发送携带有调试信息的网络调试请求。

具体实现中,为了获知程序运行的执行过程,用户在程序的每个执行阶段可以插入调试代码,当程序运行到调试代码处时,程序通过执行相关调用函数打印出插入的调试代码,从而用户可以获知程序运行到调试代码处的时间点, 或者如果在打印的调试信息中未查找到目标调试代码,用户可以确定程序在该目标调试代码对应的执行阶段存在问题。在本发明实施例中,网络调试请求可以为HTTP(Hypertext transfer protocol,超文本传送协议)请求,当程序运行到调试代码处时,可以以ajax(Asynchronous JavaScript and XML)的形式向虚拟服务器发送携带有调试信息的HTTP请求。例如:当程序运行到调试代码fc.log('something want to display',{name:'aslin',age:'23',job:'code farmer'},{fcflag:'print 1'})处时,向虚拟服务器http://fiddler.fc.com接口发送HTTP请求。其中,fcflag对应的参数print 1为调试会话标识。需要说明的是,http://fiddler.fc.com接口在实际网络中并不存在。

信息获取模块402,用于使用预装的调试代理工具Fiddler拦截所述网络调试请求,并通过所述调试代理工具Fiddler中预先编写的插件从拦截的所述网络调试请求中获取所述调试信息。其中,所述网络调试请求可以包括调试会话标识。

具体实现中,可以首先启动并运行预装的调试代理工具Fiddler,使用预装的调试代码工具Fiddler监听预设的网络端口,通过监听预设的网络端口拦截所述网络调试请求,然后通过所述调试代理工具Fiddler中预先编写的插件从拦截的所述网络调试请求中获取所述调试信息。其中,该插件为调用上述预装的调试代理工具Fiddler中多个调用接口并编译出的在windows下可安装执行的程序。需要说明的是,通过预设的网络端口可以向虚拟服务器发送多个服务请求,预装的调试代码工具可以对所有的上述多个服务请求进行拦截。

进一步的,如图5所示,信息获取模块402还可以进一步包括:

请求查询单元501,用于根据所述调试会话标识,从拦截的多个服务请求中查询所述网络调试请求。

信息获取单元502,用于从查询到的所述网络调试请求中获取所述调试信息。

信息显示模块403,用于将获取到所述调试信息作为所述网络调试请求的响应内容进行显示以提示用户对所述程序进行调试。

具体实现中,一次网络调试请求可以分为客户端对虚拟服务器发送请求以 及虚拟服务器响应客户端的请求两个阶段,从上述步骤可知,虚拟服务器http://fiddler.fc.com接口在实际网络中并不存在,使用预装的调试代理工具Fiddler拦截网络调试请求之后,网络调试请求并不发往实际网络,可以将取到所述调试信息作为所述网络调试请求的响应内容。

可选的,可以将所述调试信息从字符串类型转化为JSON(JavaScript Object Notation)数据类型进行显示。如图2所示,图2是调试代码fc.log('something want to display',{name:'aslin',age:'23',job:'code farmer'},{fcflag:'print 1'})执行完成后打印出的以JSON数据类型显示的效果图,从而向用户展示调试信息的数据结构,方便用户操作。

可选的,如图4所示,开发调试装置还可以进一步包括:

连接建立模块404,用于建立与所述虚拟服务器的网络连接。

本发明实施例中首先在程序运行到调试代码处时发起网络调试请求;然后使用预装的调试代理工具Fiddler拦截网络调试请求,并通过调试代理工具Fiddler中预先编写的插件从拦截的网络调试请求中获取调试信息,最后将从网络调试请求获取到调试信息作为网络调试请求的响应内容进行显示,调试的整个过程均在本地完成,因此不仅可以提高开发调试效率,而且提高开发调试的稳定性以及安全性。

图6是本发明实施例提出的一种开发调试装置的另一结构示意图。如图所示,所述开发调试装置可以包括:至少一个处理器601,例如CPU,至少一个接收器603,至少一个存储器604,至少一个发送器605,至少一个通信总线602。其中,通信总线602用于实现这些组件之间的连接通信。其中,本发明实施例中的开发调试装置的接收器603和发送器605可以是有线发送端口,也可以为无线设备,例如包括天线装置,用于与虚拟服务器进行信令或数据的通信。存储器604可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器604可选的还可以是至少一个位于远离前述处理器601的存储装置。存储器604中存储一组程序代码,且处理器601用于调用存储器604中存储的程序代码,用于执行以下操作:

当程序运行到调试代码处时,通过发送器605向虚拟服务器发送携带有调试信息的网络调试请求;

使用预装的调试代理工具Fiddler拦截所述网络调试请求,并通过所述调试代理工具Fiddler中预先编写的插件从拦截的所述网络调试请求中获取所述调试信息;

将获取到所述调试信息作为所述网络调试请求的响应内容进行显示以提示用户对所述程序进行调试。

可选的,处理器601调用存储器604中存储的程序,处理器601还可以执行:

使用预装的调试代理工具Fiddler,通过监听预设的网络端口拦截所述网络调试请求。

可选的,处理器601调用存储器604中存储的程序,所述网络调试请求包括调试会话标识,处理器601还可以执行:

根据所述调试会话标识,从拦截的多个服务请求中查询所述网络调试请求;

从查询到的所述网络调试请求中获取所述调试信息。

可选的,处理器601调用存储器604中存储的程序,处理器601还可以执行:

将所述调试信息从字符串类型转化为JSON数据类型进行显示。

可选的,处理器601调用存储器604中存储的程序,所述当程序运行到调试代码处时,向虚拟服务器发送携带有调试信息的网络调试请求之前,还可以执行:

建立与所述虚拟服务器的网络连接。

需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详 细描述的部分,可以参见其他实施例的相关描述。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。

以上对本发明实施例所提供的内容下载方法及相关设备、系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1