CN110377509A - 一种web页面实时查看插件脚本调试日志的方法 - Google Patents

一种web页面实时查看插件脚本调试日志的方法 Download PDF

Info

Publication number
CN110377509A
CN110377509A CN201910580883.0A CN201910580883A CN110377509A CN 110377509 A CN110377509 A CN 110377509A CN 201910580883 A CN201910580883 A CN 201910580883A CN 110377509 A CN110377509 A CN 110377509A
Authority
CN
China
Prior art keywords
log
plug
unit
output
web page
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.)
Withdrawn
Application number
CN201910580883.0A
Other languages
English (en)
Inventor
李勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Wave Intelligent Technology Co Ltd
Original Assignee
Suzhou Wave Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Wave Intelligent Technology Co Ltd filed Critical Suzhou Wave Intelligent Technology Co Ltd
Priority to CN201910580883.0A priority Critical patent/CN110377509A/zh
Publication of CN110377509A publication Critical patent/CN110377509A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种web页面实时查看插件脚本调试日志的方法,包括以下步骤:平台创建插件执行任务,调用插件脚本发起测试任务;平台调用插件的日志设置接口,将平台创建的日志输出方法的实例化对象传递给插件;平台调用插件的测试执行接口,开始执行测试任务;插件在需要输出日志的位置调用所需级别日志输出方法,用来记录调试过程日志;通过Websocket将插件调试过程日志实时输出到web页面。本发明允许开发者可通过web页面实时查看插件调试的过程日志,而不需要通过ssh登录服务器,从而提高了插件的开发效率。

Description

一种web页面实时查看插件脚本调试日志的方法
技术领域
本发明涉及计算机网络安全管理技术,尤其是一种web页面实时查看插件脚本调试日志的方法。
背景技术
在安全测评及测试领域,自动化测试逐渐代替基础的人工测试,成为新兴的测试手段。为更方便的进行自动化测试,开发者搭建了一套平台(包括web前端和服务端,简称平台),通过这个平台创建不同的插件任务,以完成不同的测试内容。其中,插件是独立于平台存在的一种脚本文件,插件脚本中包含了测试执行函数,供平台调用发起插件执行任务。不同的插件对应着不同的测试用例或方法,开发者通过编写不同的插件脚本以实现不同的测试方法,达到更细粒化的测试效果。
由于插件是独立于平台存在的一种脚本文件,其编写调试过程与平台是分离的,一般来说,平台运行在一个进程中,插件任务运行在另一个进程中,二者之间是无法直接通信的。因此,开发者在进行插件脚本调试时,只能通过ssh(Secure Shell、安全外壳协议,是一种专为远程登录会话和其他网络服务提供安全性的协议)登录至服务器,通过插件的print函数查看调试输出内容,无法实时获取插件执行过程日志,严重影响了插件的开发效率。
发明内容
为解决开发者在进行插件脚本调试时只能通过ssh登录至服务器,通过插件的print函数查看调试输出内容,无法实时获取插件执行过程日志,开发效率低下的技术问题,本发明提供了一种web页面实时查看插件脚本调试日志的方法。
为实现上述目的,本发明采用下述技术方案:
本发明提供了一种web页面实时查看插件脚本调试日志的方法,包括以下步骤:
平台创建插件执行任务,调用插件脚本发起测试任务;
平台调用插件的日志设置接口,将平台创建的日志输出方法的实例化对象传递给插件;
平台调用插件的测试执行接口,开始执行测试任务;
插件在需要输出日志的位置调用所需级别日志输出方法,用来记录调试过程日志;
通过Websocket将插件调试过程日志实时输出到web页面。
进一步地,所述创建插件执行任务,调用插件脚本发起测试任务,具体包括:
平台定义日志输出方法的实例化对象;
创建插件脚本的日志设置函数,用来传入平台提供的日志输出方法的实例化对象,同时将此传入的实例化对象设置为本插件的一个全局变量,供插件内部使用,以输出各级别日志;
创建插件脚本的测试执行函数,用来执行测试用例,返回执行结果。
进一步地,所述日志输出方法的实例化对象具体包括:
平台根据各开发者用户登录平台的用户名创建用来区分不同用户产生调试日志的可直接调用的定义了日志输出模式、日志输出格式、日志输出级别的日志输出方法。
进一步地,所述插件在需要输出日志的位置调用所需级别日志输出方法,具体包括:
插件在需要输出日志的位置调用根据各编程语言提供的日志库,输出与日志输出级别同名的日志。
进一步地,所述通过Websocket将插件调试过程日志实时输出到web页面,具体包括:
检测到web页面日志按钮被按下,触发Websocket与平台服务端建立链接;
根据当前登录用户筛选日志内容,记录当前用户日志到列表或数组中;
Websocket将开发者用户产生的日志内容推送到web前端展示。
进一步地,所述检测到web页面日志按钮被按下,触发Websocket与平台服务端建立链接,具体包括:
Web前端向平台服务端发送启动websocket请求,使得web前端与服务端建立一个全双工通讯的TCP链接。
进一步地,所述根据当前登录用户筛选日志内容,记录当前用户日志到列表或数组中,具体包括:
平台在服务端向数据库发送查询请求,查询当前登录用户信息,提取出当前用户名;
创建一个新的后端线程,按行读取指定路径的日志文件,判断每行日志信息中是否包括当前登录用户名,若包含当前登录用户名,则将当前行日志记录到一个列表或数组中。
进一步地,所述Websocket将开发者用户产生的日志内容推送到web前端展示,具体包括:
平台在接收到web前端发起的websocket请求后,创建一个线程去读取日志文件,将筛选后的日志列表或数组通过Websocket向web前端返回日志数据,web页面将日志内容展示出来。
发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:
本发明允许开发者可通过web页面实时查看插件调试的过程日志,而不需要通过ssh登录服务器,从而提高了插件的开发效率。
附图说明
图1是本发明一个实施例的方法流程图;
图2是本发明一个实施例中步骤S1的方法流程图;
图3是本发明一个实施例中步骤S5的方法流程图;
图4是本发明一个实施例中步骤S52的方法流程图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
如图1所示,一种web页面实时查看插件脚本调试日志的方法,包括以下步骤:
S1、平台创建插件执行任务,调用插件脚本发起测试任务。
S2、平台调用插件的日志设置接口,将平台创建的日志输出方法的实例化对象传递给插件。
S3、平台调用插件的测试执行接口,开始执行测试任务。
S4、插件在需要输出日志的位置调用所需级别日志输出方法,用来记录调试过程日志。
S5、通过Websocket将插件调试过程日志实时输出到web页面。
Websocket是HTML5(HTML(HyperText Markup Language超文本标记语言)是一种标记语言,是网页制作所必备的。HTML5是万维网的核心语言、标准通用标记语言下的一个应用超文本标记语言(HTML)的第五次重大修改。)开始提供的一种在单个TCP(TCP(Transmission Control Protocol传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议)连接上进行全双工通讯的协议。在WebSocketAPI中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
如图2所示,步骤S1中,创建插件执行任务,调用插件脚本发起测试任务,具体包括:
S11、平台定义日志输出方法的实例化对象;
S12、创建插件脚本的日志设置函数,用来传入平台提供的日志输出方法的实例化对象,同时将此传入的实例化对象设置为本插件的一个全局变量,供插件内部使用,以输出各级别日志;
S13、创建插件脚本的测试执行函数,用来执行测试用例,返回执行结果。
步骤S2中,输出日志方法指的是各编程语言提供的日志库方法,比如
python的logging库,java的log4j库,为减少开发工作量,本实施例直接使用。
平台创建的实例化对象是由平台根据各开发者用户登录平台的用户名创建的、用来区分不同用户产生调试日志的可直接调用的日志输出方法,其中,定义了日志输出模式,指定了日志输出格式,并设置了日志输出级别。本实施例以python的logging库为例。
日志输出模式,是由各编程语言的日志库提供的日志输出模式,包括控制台输出模式、普通文件输出模式、回滚文件输出模式、其他模式等。为了避免日志文件越来越大而影响系统性能,本实施例采用回滚文件输出模式,即对日志文件进行切分,当切分的日志文件达到指定数目上限时,最老的日志文件被自动删除。
日志输出格式,是由各编程语言的日志库提供的日志输出格式,可提供输出日志的执行文件路径、执行文件名称、当前行号、当前时间等信息,除此之外,还有平台添加的登录用户信息。
日志输出级别,是由各编程语言的日志库提供的日志输出级别,一般包括debug(调试级别)、info(信息级别)、warn(警告级别)、error(错误级别)、critical(严重错误级别)五个级别。
步骤S4中,插件在需要输出日志的位置调用所需级别日志输出方法,具体包括:
插件在需要输出日志的位置调用根据各编程语言提供的日志库,输出与日志输出级别同名的日志。所需级别日志输出方法,根据各编程语言提供的日志库,一般可以提供与日志输出级别同名的日志输出方法,如全局变量为logger,则输出信息级别的日志可以写为logger.info(“info message”),其他输出级别的可以写为logger.debug(“debugmessage”)、logger.warn(“warning message”)、logger.error(“errormessage”)、logger.fatal(“critical message”)。日志输出方法的作用是,调用此方法后,将日志存储到相应的日志文件中。
如图3中,步骤S5中通过Websocket将插件调试过程日志实时输出到web页面,具体包括:
S51、检测到web页面日志按钮被按下,触发Websocket与平台服务端建立链接;
S52、根据当前登录用户筛选日志内容,记录当前用户日志到列表或数组中;
S53、Websocket将开发者用户产生的日志内容推送到web前端展示。
步骤S51中,检测到web页面日志按钮被按下,触发Websocket与平台服务端建立链接,具体包括:
Web前端向平台服务端发送启动websocket请求,使得web前端与服务端建立一个全双工通讯的TCP链接。
如图4所示,步骤S52中根据当前登录用户筛选日志内容,记录当前用户日志到列表或数组中,具体包括:
S521、平台在服务端向数据库发送查询请求,查询当前登录用户信息,提取出当前用户名;
S522、创建一个新的后端线程,按行读取指定路径的日志文件,判断每行日志信息中是否包括当前登录用户名,若包含当前登录用户名,则将当前行日志记录到一个列表或数组中。
平台是多开发者用户同时登录使用的,多用户进行插件调试时产生的调试日志是存储到同一个日志文件中的。如果不区分用户而直接显示所有日志,会导致日志太多太乱,影响测试清晰的查看调试日志。因此,服务端根据平台的不同登录用户,筛选出当前登录用户的日志内容。
步骤S53中,Websocket将开发者用户产生的日志内容推送到web前端展示,具体包括:
平台在接收到web前端发起的websocket请求后,创建一个线程去读取日志文件,将筛选后的日志列表或数组通过Websocket向web前端返回日志数据,web页面将日志内容展示出来。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

Claims (8)

1.一种web页面实时查看插件脚本调试日志的方法,其特征是,包括以下步骤:
平台创建插件执行任务,调用插件脚本发起测试任务;
平台调用插件的日志设置接口,将平台创建的日志输出方法的实例化对象传递给插件;
平台调用插件的测试执行接口,开始执行测试任务;
插件在需要输出日志的位置调用所需级别日志输出方法,用来记录调试过程日志;
通过Websocket将插件调试过程日志实时输出到web页面。
2.如权利要求1所述的web页面实时查看插件脚本调试日志的方法,其特征是,所述创建插件执行任务,调用插件脚本发起测试任务,具体包括:
平台定义日志输出方法的实例化对象;
创建插件脚本的日志设置函数,用来传入平台提供的日志输出方法的实例化对象,同时将此传入的实例化对象设置为本插件的一个全局变量,供插件内部使用,以输出各级别日志;
创建插件脚本的测试执行函数,用来执行测试用例,返回执行结果。
3.如权利要求2所述的web页面实时查看插件脚本调试日志的方法,其特征是,所述日志输出方法的实例化对象具体包括:
平台根据各开发者用户登录平台的用户名创建用来区分不同用户产生调试日志的可直接调用的定义了日志输出模式、日志输出格式、日志输出级别的日志输出方法。
4.如权利要求3所述的web页面实时查看插件脚本调试日志的方法,其特征是,所述插件在需要输出日志的位置调用所需级别日志输出方法,具体包括:
插件在需要输出日志的位置调用根据各编程语言提供的日志库,输出与日志输出级别同名的日志。
5.如权利要求4所述的web页面实时查看插件脚本调试日志的方法,其特征是,所述通过Websocket将插件调试过程日志实时输出到web页面,具体包括:
检测到web页面日志按钮被按下,触发Websocket与平台服务端建立链接;
根据当前登录用户筛选日志内容,记录当前用户日志到列表或数组中;
Websocket将开发者用户产生的日志内容推送到web前端展示。
6.如权利要求5所述的web页面实时查看插件脚本调试日志的方法,其特征是,所述检测到web页面日志按钮被按下,触发Websocket与平台服务端建立链接,具体包括:
Web前端向平台服务端发送启动websocket请求,使得web前端与服务端建立一个全双工通讯的TCP链接。
7.如权利要求6所述的web页面实时查看插件脚本调试日志的方法,其特征是,所述根据当前登录用户筛选日志内容,记录当前用户日志到列表或数组中,具体包括:
平台在服务端向数据库发送查询请求,查询当前登录用户信息,提取出当前用户名;
创建一个新的后端线程,按行读取指定路径的日志文件,判断每行日志信息中是否包括当前登录用户名,若包含当前登录用户名,则将当前行日志记录到一个列表或数组中。
8.如权利要求7所述的web页面实时查看插件脚本调试日志的方法,其特征是,所述Websocket将开发者用户产生的日志内容推送到web前端展示,具体包括:
平台在接收到web前端发起的websocket请求后,创建一个线程去读取日志文件,将筛选后的日志列表或数组通过Websocket向web前端返回日志数据,web页面将日志内容展示出来。
CN201910580883.0A 2019-06-29 2019-06-29 一种web页面实时查看插件脚本调试日志的方法 Withdrawn CN110377509A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910580883.0A CN110377509A (zh) 2019-06-29 2019-06-29 一种web页面实时查看插件脚本调试日志的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910580883.0A CN110377509A (zh) 2019-06-29 2019-06-29 一种web页面实时查看插件脚本调试日志的方法

Publications (1)

Publication Number Publication Date
CN110377509A true CN110377509A (zh) 2019-10-25

Family

ID=68251296

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910580883.0A Withdrawn CN110377509A (zh) 2019-06-29 2019-06-29 一种web页面实时查看插件脚本调试日志的方法

Country Status (1)

Country Link
CN (1) CN110377509A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110806962A (zh) * 2019-11-06 2020-02-18 星环信息科技(上海)有限公司 日志级别的预测方法、设备及存储介质
CN110968476A (zh) * 2019-11-15 2020-04-07 苏州浪潮智能科技有限公司 一种自动监控Linux系统登录信息的方法及装置
CN111309574A (zh) * 2020-02-17 2020-06-19 北京百度网讯科技有限公司 信息处理方法、装置及设备
CN112565513A (zh) * 2020-09-27 2021-03-26 华帝股份有限公司 一种移动终端的调试方法、移动终端及存储介质
CN113419943A (zh) * 2021-05-11 2021-09-21 芜湖雄狮汽车科技有限公司 用于车辆自动化测试的方法及装置
CN113672418A (zh) * 2021-08-02 2021-11-19 北京每日优鲜电子商务有限公司 数据处理任务详情页面展示方法、装置、电子设备和介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294672A (zh) * 2016-08-08 2017-01-04 杭州玳数科技有限公司 一种日志实时展现和查询的方法与系统
CN107729238A (zh) * 2017-10-09 2018-02-23 郑州云海信息技术有限公司 一种插件调试方法、系统、装置及计算机可读存储介质
CN109783754A (zh) * 2018-12-17 2019-05-21 杭州玳数科技有限公司 一种基于web技术实现的日志展示方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294672A (zh) * 2016-08-08 2017-01-04 杭州玳数科技有限公司 一种日志实时展现和查询的方法与系统
CN107729238A (zh) * 2017-10-09 2018-02-23 郑州云海信息技术有限公司 一种插件调试方法、系统、装置及计算机可读存储介质
CN109783754A (zh) * 2018-12-17 2019-05-21 杭州玳数科技有限公司 一种基于web技术实现的日志展示方法及系统

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110806962A (zh) * 2019-11-06 2020-02-18 星环信息科技(上海)有限公司 日志级别的预测方法、设备及存储介质
CN110806962B (zh) * 2019-11-06 2021-04-16 星环信息科技(上海)股份有限公司 日志级别的预测方法、设备及存储介质
CN110968476A (zh) * 2019-11-15 2020-04-07 苏州浪潮智能科技有限公司 一种自动监控Linux系统登录信息的方法及装置
CN110968476B (zh) * 2019-11-15 2022-12-27 苏州浪潮智能科技有限公司 一种自动监控Linux系统登录信息的方法及装置
CN111309574A (zh) * 2020-02-17 2020-06-19 北京百度网讯科技有限公司 信息处理方法、装置及设备
CN111309574B (zh) * 2020-02-17 2023-09-05 北京百度网讯科技有限公司 信息处理方法、装置及设备
CN112565513A (zh) * 2020-09-27 2021-03-26 华帝股份有限公司 一种移动终端的调试方法、移动终端及存储介质
CN112565513B (zh) * 2020-09-27 2022-04-05 华帝股份有限公司 一种移动终端的调试方法、移动终端及存储介质
CN113419943A (zh) * 2021-05-11 2021-09-21 芜湖雄狮汽车科技有限公司 用于车辆自动化测试的方法及装置
CN113672418A (zh) * 2021-08-02 2021-11-19 北京每日优鲜电子商务有限公司 数据处理任务详情页面展示方法、装置、电子设备和介质

Similar Documents

Publication Publication Date Title
CN110377509A (zh) 一种web页面实时查看插件脚本调试日志的方法
Marchetto et al. State-based testing of Ajax web applications
US9185039B1 (en) Application testing through object level code inspection
KR101828506B1 (ko) Jvm 및 크로스-jvm 호출 스택들의 시각화
US9218269B2 (en) Testing multiple target platforms
US7958234B2 (en) System and method for monitoring user interaction with web pages
US7231606B2 (en) Method and system for testing websites
US8954989B1 (en) Flexible, event-driven JavaScript server architecture
US20020103896A1 (en) HTTP transaction monitor
US7330887B1 (en) Method and system for testing web-based applications
US20020065911A1 (en) HTTP transaction monitor with edit and replay capacity
US8819539B1 (en) On-the-fly rewriting of uniform resource locators in a web-page
US20050027559A1 (en) Generic framework for applying object-oriented models to multi-tiered enterprise applications
US20110138361A1 (en) Computer method and apparatus for debugging in a dynamic computer language
US20020156881A1 (en) HTTP transaction monitor with replay capacity
Offutt et al. Modeling presentation layers of web applications for testing
US20040243944A1 (en) Graphical user interface for viewing interactions between web service objects
US10965763B2 (en) Web analytics tags
WO2001057671A1 (en) Method and system for testing internet-based applications
CN110287053A (zh) 分布式系统异常统一处理的方法
CN106407099A (zh) 一种测试方法和客户端
US20040243685A1 (en) Method and apparatus for representing Web service activity
CN111245880A (zh) 基于行为轨迹重建的用户体验监控方法及装置
CN115292636A (zh) H5页面录制方法、装置和设备及存储介质
Hallé et al. Runtime verification for the web: a tutorial introduction to interface contracts in web applications

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
WW01 Invention patent application withdrawn after publication

Application publication date: 20191025

WW01 Invention patent application withdrawn after publication