CN109344064B - 一种应用远程调试方法 - Google Patents
一种应用远程调试方法 Download PDFInfo
- Publication number
- CN109344064B CN109344064B CN201811125788.3A CN201811125788A CN109344064B CN 109344064 B CN109344064 B CN 109344064B CN 201811125788 A CN201811125788 A CN 201811125788A CN 109344064 B CN109344064 B CN 109344064B
- Authority
- CN
- China
- Prior art keywords
- remote debugging
- application
- information
- field
- log information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种应用远程调试方法,包括如下步骤:在远程调试服务器DebugServer端,获取从应用App端发来的HTTP请求中的Request Body部分,所述Request Body部分中包括应用App端的日志信息,解析Request Body部分,调用初级过滤模块,滤除与远程调试无关的字段信息,滤除日志信息中的重复字段信息,调用标识模块,获取预设的重点字段信息,根据获取的信息,对初级过滤模块处理后的日志信息,进行高亮标识处理。本发明,在远程调试时,针对日志信息进行整理分析,着重突出重点信息,提高调试效率,便于应用的测试、纠错,提高日志验收工作的效率和准确性。
Description
技术领域
本发明涉及iOS动态调试技术领域,具体说是一种应用远程调试方法。
背景技术
在iOS的应用(App)开发调试过程中,当运行的应用出现问题时,通常需要通过调试来追踪和定位问题。但是,当出现运行错误的设备(例如手机、平板电脑等)上没有调试工具,应用开发人员就需要实现远程调试。简单地说,就是要调试的应用和调试器不在一台设备上。
例如,如果需要远程调试手机网页,常见的方法如下:
1、微信web开发者工具(PC客户端)
微信官方出的PC客户端调试工具,支持模拟Android和iOS端设备进行调试。只需下载并安装官方的安装包,即可很方便地在电脑上调试手机网页,而无需总是拿出手机和USB线进行调试工作(常规操作需要通过USB数据线连接你的设备和开发机器)。
2、微信调试工具
需要安装QQ浏览器9及以上版本,在应用中心中搜索“微信调试工具”并安装该应用,需按官方说明的安装tbs工具后才能连接手机;安装操作较为繁琐,而且经常会莫名安装失败…… 操作较为繁琐。
3、UC浏览器开发者版
官方很清晰地给出了具体安装和操作方法说明,支持WIFI连接模式,只需要在手机安装UC浏览器开发者版,直接访问手机IP:9998 即可直接在电脑上调试手机页,非常方便。
4、Chrome
需要安装手机Chrome,并安装adb连接工具使电脑能够与手机连接;之后访问chrome://inspect/pages即可查看到当前连接的设备及手机Chrome上打开的页面。点击对应页面的下方的inspect即可开始调试对应手机页面。
Chrome的PC版支持在模拟手机端调试,支持多设备多分辨率;打开开发人员工具,左上方有个Toggle device mode,点击即可开启移动端调试模式。
5、使用Safari远程调试iOS设备网页
在终端(iOS终端)上开启Safari的Web 检查器,然后执行以下步骤:
步骤1、使用iOS设备的Safari打开你想要调试的页面,
步骤2、通过USB数据线连接iOS设备与Mac,
步骤3、在Mac中启动Safari,从“开发”菜单下找到你的iOS设备,
步骤4、子菜单项为移动设备上Safari的所有标签页,选择需要调试的页面。
现有远程调试存在的不足之处在于:
应用在不同的操作下,产生并发送了大量的日志信息,而且每条日志信息都包含大量统计信息,在不经过整理的情况下,很难通过人眼来分辨某个具体的条目,从而难以对日志进行验收工作,影响远程调试的效率。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种应用远程调试方法,在远程调试时,针对日志信息进行整理分析,着重突出重点信息,提高调试效率,便于应用的测试、纠错,提高日志验收工作的效率和准确性。
为达到以上目的,本发明采取的技术方案是:
一种应用远程调试方法,其特征在于,包括如下步骤:
在远程调试服务器DebugServer端,获取从应用App端发来的HTTP 请求中的Request Body部分,
所述Request Body部分中包括应用App端的日志信息,
解析Request Body部分,调用初级过滤模块,滤除与远程调试无关的字段信息,滤除日志信息中的重复字段信息,
调用标识模块,获取预设的重点字段信息,根据获取的信息,对初级过滤模块处理后的日志信息,进行高亮标识处理。
在上述技术方案的基础上,在应用App端,调用sendLog在调试模式中启用发送日志信息功能,
重写beforeSendRequest函数,判断日志信息发送的目的地址是否是远程调试服务器,
如目的地址不是远程调试服务器,则停止日志信息的发送,
如目的地址是远程调试服务器,则调用sendToDebugServer,对日志信息进行保密处理后发送给目的地址,
所述日志信息包括在HTTP 请求中的Request Body部分中。
在上述技术方案的基础上,发送给目的地址时,应用App端组装发送日志内容,增加==HTTP==字段作为网络请求标记。
在上述技术方案的基础上,在远程调试服务器DebugServer端,通过辨识==HTTP==字段是否存在,确认收到的Request Body部分是否含有需要处理的信息。
在上述技术方案的基础上,应用App端通过调用hookNetWorkService函数,获取日志信息发送的目的地址。
在上述技术方案的基础上,当远程调试服务器DebugServer端获得Request Body部分后,
先调用客户端过滤模块,通过ClientFilter函数过滤掉不进行远程调试的应用App端,仅对允许进行远程调试的应用App端进行后续处理。
在上述技术方案的基础上,ClientFilter函数默认通过IP地址判断是否属于需要过滤掉的应用App端。
在上述技术方案的基础上,初级过滤模块中的无关的字段信息,包括默认指定字段及用户自定义字段,
默认指定字段为远程调试服务器DebugServer端强制默认设定,用户不能修改,
用户自定义字段为用户根据实际需要自行设定,用户自定义字段具体包括:
设定用户名称,设定日期,对应App版本信息,字段名称,字段类型,设定原因备注,启用或禁用标志。
在上述技术方案的基础上,默认进行高亮标识处理采用通过正则替换增加随机高亮色。
在上述技术方案的基础上,当用户设置自定义高亮字段时,则根据用户指定的字段,先采用通过正则替换增加随机高亮色,再采用增加暗色系背景色增加对比度。
本发明所述的应用远程调试方法,在远程调试时,针对日志信息进行整理分析,着重突出重点信息,提高调试效率,便于应用的测试、纠错,提高日志验收工作的效率和准确性。
本发明所述的应用远程调试方法,尤其适合于在酷我音乐盒iOS应用中使用,便于及时处理音乐盒使用中发现的问题,提高版本更新迭代的效率,提升开发人员的工作效率。在调试应用网络请求模块时,可实现定位某个页面的所有网络请求,避免遗漏和错误,实时呈现模块的运行日志,辅助网络测试工具的信息丰富程度。
附图说明
本发明有如下附图:
图1 本发明的流程图。
具体实施方式
以下结合附图对本发明作进一步详细说明。
如图1所示,本发明所述的应用远程调试方法,包括如下步骤:
在远程调试服务器DebugServer端,获取从应用App端发来的HTTP 请求中的Request Body部分,
所述Request Body部分中包括应用App端的日志信息,
解析Request Body部分,调用初级过滤模块,滤除与远程调试无关的字段信息,滤除日志信息中的重复字段信息,
调用标识模块,获取预设的重点字段信息,根据获取的信息,对初级过滤模块处理后的日志信息,进行高亮标识处理。
在上述技术方案的基础上,在应用App端,调用sendLog在调试模式中启用发送日志信息功能,
重写beforeSendRequest函数,判断日志信息发送的目的地址是否是远程调试服务器,
如目的地址不是远程调试服务器,则停止日志信息的发送,
如目的地址是远程调试服务器,则调用sendToDebugServer,对日志信息进行保密处理后发送给目的地址,
所述日志信息包括在HTTP 请求中的Request Body部分中。
在上述技术方案的基础上,发送给目的地址时,应用App端组装发送日志内容,增加==HTTP==字段作为网络请求标记。
实际发生的信息格式为:==HTTP==|URL: + Reqest。
在上述技术方案的基础上,在远程调试服务器DebugServer端,通过辨识==HTTP==字段是否存在,确认收到的Request Body部分是否含有需要处理的信息。
在上述技术方案的基础上,应用App端通过调用hookNetWorkService函数,获取日志信息发送的目的地址。
在上述技术方案的基础上,当远程调试服务器DebugServer端获得Request Body部分后,
先调用客户端过滤模块,通过ClientFilter函数过滤掉不进行远程调试的应用App端,仅对允许进行远程调试的应用App端进行后续处理。
在上述技术方案的基础上,ClientFilter函数默认通过IP地址判断是否属于需要过滤掉的应用App端。
例如:ClientFilter函数解析Request Body部分,通过getClientIPs函数得到记录于Request Body部分的应用App端IP地址,然后同需过滤IP地址列表进行比对判断是否containClientIP条件成立,完成对应用App端的过滤处理。
在上述技术方案的基础上,初级过滤模块中的无关的字段信息,包括默认指定字段及用户自定义字段,
默认指定字段为远程调试服务器DebugServer端强制默认设定,用户不能修改,
用户自定义字段为用户根据实际需要自行设定,用户自定义字段具体包括:
设定用户名称,设定日期,对应App版本信息,字段名称,字段类型,设定原因备注,启用或禁用标志。
在上述技术方案的基础上,初级过滤模块采用正则过滤的方式滤除与远程调试无关的字段信息。
在上述技术方案的基础上,当用户设定为ShowDetail模式时,则显示所有应用App端的日志信息,初级过滤模块不执行滤除与远程调试无关的字段信息,也不执行滤除日志信息中的重复字段信息。
ShowDetail模式开关默认为关闭,在用户需要时可手动开启该开关。
在上述技术方案的基础上,默认进行高亮标识处理采用通过正则替换增加随机高亮色。
在上述技术方案的基础上,默认对含有跳转标签<a>的内容进行高亮标识处理。
在上述技术方案的基础上,当用户设置自定义高亮字段时,则根据用户指定的字段,先采用通过正则替换增加随机高亮色,再采用增加暗色系背景色增加对比度。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (7)
1.一种应用远程调试方法,其特征在于,包括如下步骤:
在远程调试服务器DebugServer端,获取从应用App端发来的HTTP请求中的RequestBody部分,
所述Request Body部分中包括应用App端的日志信息,
当远程调试服务器DebugServer端获得Request Body部分后,
先调用客户端过滤模块,通过ClientFilter函数过滤掉不进行远程调试的应用App端,仅对允许进行远程调试的应用App端进行后续处理,所述后续处理包括:
解析Request Body部分,调用初级过滤模块,滤除与远程调试无关的字段信息,滤除日志信息中的重复字段信息,
调用标识模块,获取预设的重点字段信息,根据获取的信息,对初级过滤模块处理后的日志信息,进行高亮标识处理,
默认进行高亮标识处理采用通过正则替换增加随机高亮色,
当用户设置自定义高亮字段时,则根据用户指定的字段,先采用通过正则替换增加随机高亮色,再采用增加暗色系背景色增加对比度。
2.如权利要求1所述的应用远程调试方法,其特征在于:在应用App端,调用sendLog在调试模式中启用发送日志信息功能,
重写beforeSendRequest函数,判断日志信息发送的目的地址是否是远程调试服务器,
如目的地址不是远程调试服务器,则停止日志信息的发送,
如目的地址是远程调试服务器,则调用sendToDebugServer,对日志信息进行保密处理后发送给目的地址,
所述日志信息包括在HTTP请求中的Request Body部分中。
3.如权利要求2所述的应用远程调试方法,其特征在于:发送给目的地址时,应用App端组装发送日志内容,增加==HTTP==字段作为网络请求标记。
4.如权利要求3所述的应用远程调试方法,其特征在于:在远程调试服务器DebugServer端,通过辨识==HTTP==字段是否存在,确认收到的Request Body部分是否含有需要处理的信息。
5.如权利要求2所述的应用远程调试方法,其特征在于:应用App端通过调用hookNetWorkService函数,获取日志信息发送的目的地址。
6.如权利要求1所述的应用远程调试方法,其特征在于:ClientFilter函数默认通过IP地址判断是否属于需要过滤掉的应用App端。
7.如权利要求1所述的应用远程调试方法,其特征在于:初级过滤模块中的无关的字段信息,包括默认指定字段及用户自定义字段,
默认指定字段为远程调试服务器DebugServer端强制默认设定,用户不能修改,
用户自定义字段为用户根据实际需要自行设定,用户自定义字段具体包括:
设定用户名称,设定日期,对应App版本信息,字段名称,字段类型,设定原因备注,启用或禁用标志。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811125788.3A CN109344064B (zh) | 2018-09-26 | 2018-09-26 | 一种应用远程调试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811125788.3A CN109344064B (zh) | 2018-09-26 | 2018-09-26 | 一种应用远程调试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109344064A CN109344064A (zh) | 2019-02-15 |
CN109344064B true CN109344064B (zh) | 2022-03-25 |
Family
ID=65307042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811125788.3A Active CN109344064B (zh) | 2018-09-26 | 2018-09-26 | 一种应用远程调试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109344064B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111176870B (zh) * | 2019-08-01 | 2022-07-08 | 腾讯科技(深圳)有限公司 | 一种原因定位方法、装置、终端及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808399A (zh) * | 2016-03-14 | 2016-07-27 | 百度在线网络技术(北京)有限公司 | 一种远程调试的方法和装置 |
CN108228453A (zh) * | 2017-12-28 | 2018-06-29 | 北京小度信息科技有限公司 | Ios手机应用程序的调试方法及装置 |
CN108509333A (zh) * | 2017-02-28 | 2018-09-07 | 腾讯科技(深圳)有限公司 | 调试方法及装置 |
CN108521444A (zh) * | 2018-03-19 | 2018-09-11 | 五八有限公司 | 一种网络调试方法、装置及计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108052452A (zh) * | 2017-12-29 | 2018-05-18 | 北京酷我科技有限公司 | 一种日志验收的可视优化方法 |
-
2018
- 2018-09-26 CN CN201811125788.3A patent/CN109344064B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808399A (zh) * | 2016-03-14 | 2016-07-27 | 百度在线网络技术(北京)有限公司 | 一种远程调试的方法和装置 |
CN108509333A (zh) * | 2017-02-28 | 2018-09-07 | 腾讯科技(深圳)有限公司 | 调试方法及装置 |
CN108228453A (zh) * | 2017-12-28 | 2018-06-29 | 北京小度信息科技有限公司 | Ios手机应用程序的调试方法及装置 |
CN108521444A (zh) * | 2018-03-19 | 2018-09-11 | 五八有限公司 | 一种网络调试方法、装置及计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
使用chrome控制台作为日志查看器;weixin_34161029;《https://blog.csdn.net/weixin_34161029/article/details/86007527》;20180807;第1-30页 * |
浅谈ios日志收集系统;DestinyFighter;《https://www.jianshu.com/p/bb5000f879cb》;20180731;第1-11页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109344064A (zh) | 2019-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2016008398A1 (zh) | 程序性能测试方法和装置 | |
CN110309039B (zh) | 自动化获取应用程序日志的方法、装置、设备及存储介质 | |
CN106919612B (zh) | 一种上线结构化查询语言脚本的处理方法及装置 | |
WO2020147420A1 (zh) | 应用性能数据采集方法、终端、计算机设备及存储介质 | |
CN112540924A (zh) | 接口自动化测试方法、装置、设备及存储介质 | |
CN109857637B (zh) | 基于注解的Java语言方法覆盖率和方法输入输出统计方法 | |
US10613969B2 (en) | Code coverage module with testing function identifier | |
CN112115051A (zh) | 应用的页面遍历探测方法、装置、设备及可读存储介质 | |
CN110609785A (zh) | 软件接口的测试方法及装置 | |
CN112395184A (zh) | 一种信息获取方法、设备和计算机存储介质 | |
CN109344064B (zh) | 一种应用远程调试方法 | |
CN112115055A (zh) | 一种多机自动化测试方法、装置及计算机设备 | |
CN112269697B (zh) | 一种设备存储性能测试方法、系统及相关装置 | |
CN109032705B (zh) | 应用程序的执行方法、装置、电子设备及可读存储介质 | |
CN104123397A (zh) | Web页面的自动化测试装置及方法 | |
CN107341110B (zh) | 一种软件测试定位补丁修改及影响范围的工具及实现方法 | |
CN117493188A (zh) | 接口测试方法及装置、电子设备及存储介质 | |
CN109739754B (zh) | 基于微信开发的应用程序自动化测试方法及系统 | |
CN109684156B (zh) | 基于混合模式应用的监控方法、装置、终端及存储介质 | |
CN107656849B (zh) | 一种软件系统性能问题定位方法以及装置 | |
CN110888807B (zh) | 一种安卓应用自动抓包方法 | |
CN113238901B (zh) | 多设备的自动化测试方法及装置、存储介质、计算机设备 | |
CN114880239A (zh) | 一种基于数据驱动的接口自动化测试框架及方法 | |
CN113110952A (zh) | 获取应用程序中的sdk异常信息的方法和装置 | |
CN113326193A (zh) | 一种小程序测试方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |