CN115481021A - 自动化流程的调试方法、电子设备及存储介质 - Google Patents

自动化流程的调试方法、电子设备及存储介质 Download PDF

Info

Publication number
CN115481021A
CN115481021A CN202211067417.0A CN202211067417A CN115481021A CN 115481021 A CN115481021 A CN 115481021A CN 202211067417 A CN202211067417 A CN 202211067417A CN 115481021 A CN115481021 A CN 115481021A
Authority
CN
China
Prior art keywords
line number
debugging
node
information
executor
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.)
Granted
Application number
CN202211067417.0A
Other languages
English (en)
Other versions
CN115481021B (zh
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.)
Shanghai Hongji Information Technology Co Ltd
Original Assignee
Shanghai Hongji Information 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 Shanghai Hongji Information Technology Co Ltd filed Critical Shanghai Hongji Information Technology Co Ltd
Priority to CN202211067417.0A priority Critical patent/CN115481021B/zh
Publication of CN115481021A publication Critical patent/CN115481021A/zh
Application granted granted Critical
Publication of CN115481021B publication Critical patent/CN115481021B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (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

本申请提供一种自动化流程的调试方法、电子设备及存储介质,该方法由执行器和调试器执行;执行器用于运行自动化流程代码,自动化流程代码在指定流程节点处设有断点;该方法包括:当执行器运行到指定流程节点时暂停运行,向调试器发送指定流程节点的第一行号和步入调试标志;调试器生成第一行号对应的运行时信息并返回至执行器;执行器接收运行时信息继续运行后续流程,当接收到步出调试指令时,将当前流程节点的第二行号和步出调试标志发送到调试器;调试器生成包含下一流程节点行号的步出调试信息并返回至执行器;执行器暂停至步出调试信息指示的下一流程节点,并展示下一流程节点之前的运行时信息。该方案可以加快排查和定位问题的速度。

Description

自动化流程的调试方法、电子设备及存储介质
技术领域
本申请涉及机器人流程自动化技术领域,尤其涉及一种自动化流程的调试方法、电子设备及计算机可读存储介质。
背景技术
机器人流程自动化(Robotic Process Automation,简称RPA)是一种计算机技术,采用软件自动化方式实现各个行业中大量重复的业务流程,用软件替代人工操作,把人从繁琐的重复劳动中解放出来,为人类减轻负担。在业务流程的编制过程中,为了确保业务自动化流程的准确性,流程调试是不可或缺的一个步骤。
在软件程序正式上线前,都会利用编译程序的方法进行调试测试,确保程序的正确性。传统的程序设计语言都有成熟的程序调试方案,比如C语言可以通过GDB(UNIX及UNIX-like下的调试工具)进行调试,Python可以通过PDB(一个交互式源代码调试器,用于Python程序)调试。
当前流行的RPA通常会提供断点调试和单步调试的方法,用来协助完成业务流程的设计,在流程正式发布前用来排查定位问题,以确保流程的逻辑正确性。在某些嵌套层次非常多的流程中,用户需要在不同层次的出入口都设置断点,或者采用单步调试的方式一层层进入各个嵌套的流程节点,而后又一层层退出各个流程节点来排查定位问题。不管是多个出入口断点设置的方式,还是逐层单步调试的方式,都会使得流程显得复杂,同时延长了排查问题的时间。
发明内容
本申请实施例提供了自动化流程的调试方法,用以加快排查和定位问题的速度。
本申请实施例提供了一种自动化流程的调试方法,所述方法由执行器和调试器执行;所述执行器用于运行自动化流程代码,所述自动化流程代码在指定流程节点处设有断点;所述方法包括:
当所述执行器运行到所述指定流程节点时,暂停运行;响应于接收到的步入调试指令,向所述调试器发送所述指定流程节点的第一行号和步入调试标志;
所述调试器根据所述第一行号和步入调试标志,生成所述第一行号对应的运行时信息,将所述运行时信息返回至所述执行器;
所述执行器接收所述运行时信息继续运行后续流程,当接收到步出调试指令时,将当前流程节点的第二行号和步出调试标志发送到所述调试器;
所述调试器根据所述第二行号和步出调试标志,生成包含下一流程节点行号的步出调试信息并将所述步出调试信息返回至所述执行器;
所述执行器接收所述步出调试信息,暂停至所述步出调试信息指示的所述下一流程节点,并展示所述下一流程节点之前的运行时信息。
在一实施例中,所述调试器根据所述第一行号和步入调试标志,生成所述第一行号对应的运行时信息,包括:
根据所述第一行号和步入调试标志,在所述自动化流程代码中查找所述第一行号对应的变量信息;
将所述变量信息与所述第一行号,组合生成所述第一行号对应的运行时信息。
在一实施例中,所述调试器根据所述第二行号和步出调试标志,生成包含下一流程节点行号的步出调试信息,包括:
所述调试器根据所述第二行号和步出调试标志,若所述第二行号属于非嵌套内节点行号,生成包含所述当前流程节点的下一流程节点行号的步出调试信息。
在一实施例中,所述执行器接收所述步出调试信息,暂停至所述步出调试信息指示的所述下一流程节点,并展示所述下一流程节点之前的运行时信息,包括:
所述执行器接收所述步出调试信息,暂停至所述步出调试信息指示的所述下一流程节点;
所述执行器展示所述当前流程节点运行结束后的运行时信息。
在一实施例中,在所述调试器发送所述指定流程节点的第一行号和步入调试标志之后,所述方法还包括:
根据所述第一行号和步入调试标志,在所述自动化流程代码中查找所述第一行号的父节点;
将所述第一行号、步入调试标志和所述父节点的行号,组合生成步入调试信息,并将所述步入调试信息保存中调试信息列表。
在一实施例中,所述调试器根据所述第二行号和步出调试标志,生成包含下一流程节点行号的步出调试信息,包括:
所述调试器根据所述第二行号和步出调试标志,若所述第二行号属于嵌套内节点行号,从所述调试信息列表找到所述第二行号的父节点;
在所述自动化流程代码中查找所述第二行号的父节点的下一流程节点行号,生成包含所述下一流程节点行号的步出调试信息。
在一实施例中,所述方法还包括:
从所述调试信息列表中删除所述第二行号的父节点的步入调试信息。
在一实施例中,所述执行器接收所述步出调试信息,暂停至所述步出调试信息指示的所述下一流程节点,并展示所述下一流程节点之前的运行时信息,包括:
所述执行器接收所述步出调试信息,暂停至所述步出调试信息指示的所述下一流程节点;
所述执行器展示所述第一行号的父节点所在嵌套运行结束后的运行时信息。
在一实施例中,所述执行器接收所述运行时信息继续运行后续流程,包括:
所述执行器接收所述运行时信息并进行所述运行时信息的显示;
响应于接收到的单步调试指令,对所述指定流程节点之后的流程节点进行单步调试,输出每步调试的运行时信息。
本申请实施例还提供了一种自动化流程的调试装置,所述装置包括执行器和调试器;所述执行器用于运行自动化流程代码,所述自动化流程代码在指定流程节点处设有断点;
所述执行器,用于当运行到所述指定流程节点时,暂停运行;响应于接收到的步入调试指令,向所述调试器发送所述指定流程节点的第一行号和步入调试标志;
所述调试器,用于根据所述第一行号和步入调试标志,生成所述第一行号对应的运行时信息,将所述运行时信息返回至所述执行器;
所述执行器,还用于接收所述运行时信息继续运行后续流程,当接收到步出调试指令时,将当前流程节点的第二行号和步出调试标志发送到所述调试器;
所述调试器,还用于根据所述第二行号和步出调试标志,生成包含下一流程节点行号的步出调试信息并将所述步出调试信息返回至所述执行器;
所述执行器,还用于接收所述步出调试信息,暂停至所述步出调试信息指示的所述下一流程节点,并展示所述下一流程节点之前的运行时信息。
本申请实施例还提供了一种电子设备,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述自动化流程的调试方法。
本申请实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成上述自动化流程的调试方法。
本申请上述实施例提供的方案,通过在指定流程节点处设有断点,暂停运行进行步入调试,获得运行时信息;执行器接收运行时信息继续运行后续流程,当接收到步出调试指令时,生成包含下一流程节点行号的步出调试信息进行步出调试。通过步入步出的调试方法,用户除了在步入调试的节点开始处设置断点外,无需设置其他额外的步出断点即可步出正在调试的节点,使得流程的断点显得更加清晰。用户在调试过程中可以在任意节点选择步出调试,从而直接回到步入调试的节点的下一个节点,可以加快排查和定位问题的速度。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍。
图1为本申请一实施例提供的电子设备的结构示意图;
图2是本申请实施例提供的自动化流程的调试方法的流程示意图;
图3是本申请实施例提供的一种流程图中嵌套子流程的示意图;
图4是本申请实施例提供的多层嵌套流程的示意图;
图5是图4所示多层嵌套流程的调试过程示意图;
图6是本申请实施例还提供了一种自动化流程的调试装置的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
图1是本申请实施例提供的电子设备的结构示意图。该电子设备100可以用于执行本申请实施例提供的自动化流程的调试方法。如图1所示,该电子设备100包括:一个或多个处理器102、一个或多个存储处理器可执行指令的存储器104。其中,所述处理器102被配置为执行本申请下述实施例提供的自动化流程的调试方法。
所述处理器102可以是网关,也可以为智能终端,或者是包含中央处理单元(CPU)、图像处理单元(GPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元的设备,可以对所述电子设备100中的其它组件的数据进行处理,还可以控制所述电子设备100中的其它组件以执行期望的功能。
所述存储器104可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器102可以运行所述程序指令,以实现下文所述的自动化流程的调试方法。下文的执行器和调试器可以是存储器104上存储的软件程序。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。
在一实施例中,图1示电子设备100还可以包括输入装置106、输出装置108以及数据采集装置110,这些组件通过总线***112和/或其它形式的连接机构(未示出)互连。应当注意,图1示的电子设备100的组件和结构只是示例性的,而非限制性的,根据需要,所述电子设备100也可以具有其他组件和结构。
所述输入装置106可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。所述输出装置108可以向外部(例如,用户)输出各种信息(例如,图像或声音),并且可以包括显示器、扬声器等中的一个或多个。所述数据采集装置110可以采集对象的图像,并且将所采集的图像存储在所述存储器104中以供其它组件使用。示例性地,该数据采集装置110可以为摄像头。
在一实施例中,用于实现本申请实施例的自动化流程的调试方法的示例电子设备100中的各器件可以集成设置,也可以分散设置,诸如将处理器102、存储器104、输入装置106和输出装置108集成设置于一体,而将数据采集装置110分离设置。
在一实施例中,用于实现本申请实施例的自动化流程的调试方法的示例电子设备100可以被实现为诸如平板电脑、台式电脑、服务器等智能终端。
图2是本申请实施例提供的自动化流程的调试方法的流程示意图。所述方法由执行器和调试器执行;所述执行器用于运行自动化流程代码,所述自动化流程代码在指定流程节点处设有断点。自动化流程代码是自动化流程相应的代码。指定流程节点可以认为是用户关注的流程节点(用户关注这些流程节点及后续流程节点的运行是否符合预期)。断点是调试器的功能之一,可以让程序中断在需要的地方,从而方便其分析。在指定流程节点处设置断点,可以让执行器在运行到指定流程节点处时,暂时将自动化流程代码的执行挂起。如图2所示,该自动化流程的调试方法包括以下步骤S210-步骤S250。
步骤S210:当所述执行器运行到所述指定流程节点时,暂停运行;响应于接收到的步入调试指令,向所述调试器发送所述指定流程节点的第一行号和步入调试标志。
执行器获取并运行自动化流程代码,且与挂载的调试器共享该自动化流程代码。执行器运行到所述指定流程节点时,暂停运行,并在接收到步入调试指令时,通过接口调用,将指定流程节点的第一行号和步入调试标志传递给挂载的调试器。举例来说,指定流程节点可以是流程节点1和流程节点4。行号是流程节点的标识,行号可以与流程节点的名称对应,对于流程入口,称为根节点,行号可以为0。为进行区分,指定流程节点的行号称为第一行号。步入调试标志可以是“步入”二字,也可以是特定的符号表示,用于表示进行步入调试。
步骤S220:所述调试器根据所述第一行号和步入调试标志,生成所述第一行号对应的运行时信息,将所述运行时信息返回至所述执行器。
其中,运行时信息可以包括指定流程节点的输入和输出信息。用户根据运行时信息可以判断指定流程节点的运行是否符合预期。
在一实施例中,调试器可以根据所述第一行号和步入调试标志,在所述自动化流程代码中查找所述第一行号对应的变量信息;将所述变量信息与所述第一行号,组合生成所述第一行号对应的运行时信息。
其中,变量信息包括指定流程节点运行后输出的数据和指定流程节点运行前输入的数据。变量信息可以由变量名、变量类型和变量当前值构成。运行时信息可以由变量信息和第一行号构成,例如运行时信息可以表示为:{行号:[<变量名1,变量类型1,变量当前值1>,<变量名2,变量类型2,变量当前值2>,……,<变量名n,变量类型n,变量当前值n>]}。
进一步的,调试器还可以根据所述第一行号和步入调试标志,在所述自动化流程代码中查找所述第一行号的父节点;将所述第一行号、步入调试标志和所述父节点的行号,组合生成步入调试信息,并将步入调试信息保存中调试信息列表。
举例来说,行号1的父节点可以是行号0,调试信息列表用于存储步入调试信息。步入调试信息可以由指定流程节点的第一行号、步入调试标志和指定流程节点的父节点的行号构成。例如步入调试信息可以是[步入:行号1<行号0>]。
步骤S230:所述执行器接收所述运行时信息继续运行后续流程,当接收到步出调试指令时,将当前流程节点的第二行号和步出调试标志发送到所述调试器。
执行器接收到运行时信息,可以进行运行时信息的显示,从而用户可以根据运行时信息判断指定流程节点的代码是否符合逾期。后续流程节点可以是指定流程节点之后的流程节点,假设指定流程节点是流程节点1,后续流程节点可以有流程节点2、流程节点3等。用户根据运行时信息,可以选择单步调试的方式调试运行流程节点2和流程节点3,执行器响应于接收到的单步调试指令,对所述指定流程节点之后的流程节点进行单步调试,输出每步调试的运行时信息。
单步调试是指执行器运行完每个流程节点都会暂停,将调试器返回的每个流程节点的运行时信息显示给用户,等待用户后续的动作。举例来说,假设用户选择单步调试流程节点2和流程节点3,执行器和调试器可以对流程节点2和流程节点3进行单步调试。假设流程节点4是关注的流程节点,用户也可以选择直接运行到流程节点4,不对流程节点2和流程节点3进行单步调试,将流程节点4作为指定流程节点,重复上述步骤S210和步骤S220步入调试的步骤。
本申请实施例在调试过程中用户可以选择在任意节点执行步出调试,从而直接回到步入调试的节点的下一个节点,可以加快排查和定位问题的速度。假设用户在运行到某个流程节点时,选择步出调试,从而执行器接收到步出调试指令。当执行器接收到步出调试指令时,将当前流程节点的第二行号和步出调试标志发送到调试器。
第二行号是当前流程节点的行号。当前流程节点是指选择步出调试的流程节点。举例来说,当运行到流程节点8时,用户选择步出调试,执行器接收到步出调试指令。将流程节点8的行号8和步出调试标志发送到调试器。
传统语言的步入步出调试方法(比如C++)一般作用于函数,在函数的调用处设置断点,当程序运行到断点中断时,可以选择步入调试进入到函数内部逐行语句进行调试,并向用户显示相应的运行时信息;在函数内部选择步出调试时则直接执行完函数内所有语句并返回函数的调用处,然后在该函数的后续语句处等待后续的调试命令。
可见,传统步入步出调试方法,还需要设置步出调试的断点。而本申请实施例用户除了在步入调试的节点开始处设置断点外,无需设置其他额外的步出断点即可步出正在调试的节点,使得流程的断点显得更加清晰。
步骤S240:所述调试器根据所述第二行号和步出调试标志,生成包含下一流程节点行号的步出调试信息并将所述步出调试信息返回至所述执行器。
步出调试信息包括下一个流程节点的行号以及步出调试标志。其中,下一个流程节点的行号简称下一流程节点行号。下一个流程节点基于当前流程节点是否是嵌套内的流程节点,存在不同的确定方式。需要说明的是,一个流程图中可能嵌套了一个或多个子流程,每个子流程中的节点可以称为嵌套内节点。子流程以外的节点称为非嵌套内节点。如图3所示,流程节点8、流程节点9属于嵌套内的流程节点,其他流程节点属于非嵌套内的流程节点。
在一实施例中,调试器根据所述第二行号和步出调试标志,若所述第二行号属于非嵌套内节点行号,生成包含所述当前流程节点的下一流程节点行号的步出调试信息。
举例来说,假设流程节点8是非嵌套内节点,即行号8是非嵌套内节点行号,则下一流程节点行号可以是当前流程节点8的下一个流程节点9的行号。下一流程节点行号可以由当前流程节点的节点信息中携带。步出调试信息可以包括流程节点9的行号9和步出调试标志。
在另一实施例中,调试器根据所述第二行号和步出调试标志,若所述第二行号属于嵌套内节点行号,从所述调试信息列表找到所述第二行号的父节点;在所述自动化流程代码中查找所述第二行号的父节点的下一流程节点行号,生成包含所述下一流程节点行号的步出调试信息。
举例来说,假设当前流程节点的父节点是流程节点4,则第二行号的父节点的下一流程节点行号是指流程节点4的下一个流程节点的行号。假设流程节点4、5、6、7、8、9、10是同一个嵌套内的流程节点,则流程节点4的下一个流程节点的行号是流程节点11的行号,即行号11。步出调试信息可以包括行号11和步出调试标志。步出调试标志可以是“步出”二字也可以用特定的符号表示。
进一步的,调试器在向执行器传递出步出调试信息后,可以删除调试信息列表中第二行号(即当前流程节点)的父节点的步入调试信息。举例来说,当前流程节点的父节点是流程节点4,则删除流程节点4的步入调试信息,从而便于后续其他步出调试步骤时,快速从调试信息列表中查找到当前流程节点的父节点,进而找到父节点的下一流程节点生成步出调试信息,删除父节点的步入调试信息。
步骤S250:所述执行器接收所述步出调试信息,暂停至所述步出调试信息指示的所述下一流程节点,并展示所述下一流程节点之前的运行时信息。
执行器接收到步出调试信息,可以直接运行到步出调试信息指示的所述下一流程节点,然后暂停在下一流程节点。举例来说,假设当前流程节点是行号8,步出调试信息指示的下一流程节点是行号11,则执行器可以运行流程节点9和流程节点10,然后暂停在流程节点11,并向用户显示流程节点4这个嵌套运行结束之后的运行时信息,也就是流程节点11之前的运行时信息。这个过程类似于用户在流程节点11上设置了一个断点,然后选择调试运行至流程节点11。
图4是本申请实施例提供的多层嵌套的自动化流程示意图。如图5是对图4所示的自动化流程进行调试的流程示意图。流程节点1是一个子流程,流程节点4是流程节点1中嵌套的子流程。假定流程节点1和流程节点4是用户关注的流程节点,即用户关注这些流程节点及后续流程节点的运行是否符合预期(用户通过调试查看定义的变量值在运行过程中的变化来判断是否满足预期)。参照图4和图5所示,包括以下过程:
(1)用户加载整个自动化流程代码,并在流程节点1处设置了断点,执行器运行自动化流程代码,执行器运行时,与挂载的调试器共享正在运行的自动化流程代码。
(2)执行器运行到流程节点1,判断有断点则暂停运行。用户选择步入调试后,执行器将流程节点1的行号(此处为直观表示,设定行号与流程节点名对应,行号记为1;对于流程入口,称为根节点,行号记为0)及步入调试标志通过接口调用传递给挂载的调试器插件(相当于上述实施例的步骤S210)。
(3)调试器收到行号及步入调试标志,首先通过行号在流程代码中查询对应流程节点涉及的所有变量,然后将每个变量按照<变量名,变量类型,变量当前值>的方式组合为变量字典,并与行号一起组合为运行时信息(表示为:运行时信息={行号:[<变量名1,变量类型1,变量当前值1>,<变量名2,变量类型2,变量当前值2>,……,<变量名n,变量类型n,变量当前值n>]}),传回执行器(相当于步骤S220)。同时调试器根据行号1在流程代码中查询所有的父节点(行号1的父节点只有行号0),将这些父节点和调试标志一起组成步入调试信息,并保存到调试信息列表([步入:行号1<行号0>])。
(4)执行器收到运行时信息,将运行时信息中的所有变量显示给用户。用户可以根据这些变量的名称、类型、值等信息来判断自己设计的流程是否符合预期。根据这些运行时信息,用户可以选择使用传统的单步调试的方式调试运行流程节点2和流程节点3(这种方式下,调试每个节点都会有相应的运行时信息显示给用户),也可以选择在关注的流程节点4上设置一个断点,然后直接运行流程至流程节点4上。
在流程运行到流程节点4时,与流程节点1类似,执行器判断有断点则暂停执行。用户选择步入调试后,执行器将流程节点4的行号及步入调试标志传递给调试器(相当于步骤S210)。
调试器收到行号及步入调试标志后,根据上面描述的同一方法,生成运行时信息并传回执行器(相当于步骤S220)。同时调试器根据行号4生成一组新的步入调试信息(行号4的父节点依次有:行号1,行号0),存入调试信息列表([步入:行号1<行号0>]=>[步入:行号4<行号1←行号0>])。
执行器收到运行时信息,显示给用户。用户根据这些运行时信息,与流程节点4类似,可以使用传统的单步调试方式调试运行流程节点5、流程节点6、流程节点7,运行至流程节点8(相当于步骤S230执行器接收所述运行时信息继续运行后续流程)。
(5)流程运行到流程节点8时,用户根据之前各流程节点的运行时信息,判断出不需要调试之后的流程节点9和流程节点10,但需要知道流程节点4运行结束之后的运行时信息,此时可以选择步出调试,而无需在流程节点4的后续节点(即流程节点11)处设置断点。
执行器根据用户选择的步出调试操作,将行号8和步出调试标志传递给调试器(相当于步骤S230当接收到步出调试指令时,将当前流程节点的第二行号和步出调试标志发送到所述调试器)。
(6)调试器收到行号和步出调试标志后,首先根据行号8在流程代码中逐个查询父节点。查询到第一个父节点7之后,在调试信息列表中查找发现不存在行号7的步入调试信息。接着继续查找节点7的父节点找到节点4,并在调试信息列表中查找发现行号4存在步入调试信息。找到行号4的步入调试信息之后,调试器通过调试信息列表中存储的行号4的父节点1,在流程代码中查找到流程节点4的下一个节点流程节点11,然后组合成步出调试信息([步出:行号11])并传回执行器(相当于步骤S240)。同时由于行号4的步入调试信息后续不会再被使用到(步出调试即退出原来步入调试的节点),调试器从调试信息列表中删除行号4的步入调试信息,调试信息列表内容更新为([步入:行号1<行号0>])。
(7)执行器根据收到的步出调试信息,无需用户干预,直接运行流程节点9和流程节点10,然后暂停在步出调试信息中指定的流程节点11,并向用户显示流程节点4运行结束之后的运行时信息(相当于步骤S250)。(这个过程类似于用户在流程节点11上设置了一个断点,然后选择调试运行至流程节点11)。
(8)用户在流程节点11处再次选择步出调试。经过与之前类似的信息传递,调试器向执行器传递步出调试信息,并将调试信息列表更新为空,同时执行器根据步出调试信息将流程自动运行到流程节点12,并向用户显示流程节点1运行结束之后的运行时信息。
(9)响应于用户操作,执行器运行后续流程,直到所有流程运行完毕,
然后退出调试过程。
本申请上述方案,通过步入步出的调试方法,用户除了在步入调试的节点开始处设置断点外,无需设置其他额外的步出断点即可步出正在调试的节点,使得流程的断点显得更加清晰。用户在调试过程中可以在任意节点执行步出调试,从而直接回到步入调试的节点的下一个节点,可以加快排查和定位问题的速度。通过行号及步入调试标志,调试器减少了需要存储的断点信息,从而可以更快地响应执行器的调试命令。
下述为本申请装置实施例,可以用于执行本申请上述自动化流程的调试方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请自动化流程的调试方法实施例。
图6是本申请实施例还提供了一种自动化流程的调试装置的框图,如图6所示,所述装置包括执行器610和调试器620;所述执行器610用于运行自动化流程代码,所述自动化流程代码在指定流程节点处设有断点。
其中,所述执行器610,用于当运行到所述指定流程节点时,暂停运行;响应于接收到的步入调试指令,向所述调试器620发送所述指定流程节点的第一行号和步入调试标志;
所述调试器620,用于根据所述第一行号和步入调试标志,生成所述第一行号对应的运行时信息,将所述运行时信息返回至所述执行器610;
所述执行器610,还用于接收所述运行时信息继续运行后续流程,当接收到步出调试指令时,将当前流程节点的第二行号和步出调试标志发送到所述调试器620;
所述调试器620,还用于根据所述第二行号和步出调试标志,生成包含下一流程节点行号的步出调试信息并将所述步出调试信息返回至所述执行器610;
所述执行器610,还用于接收所述步出调试信息,暂停至所述步出调试信息指示的所述下一流程节点,并展示所述下一流程节点之前的运行时信息。
在本申请所提供的几个实施例中,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (11)

1.一种自动化流程的调试方法,其特征在于,所述方法由执行器和调试器执行;所述执行器用于运行自动化流程代码,所述自动化流程代码在指定流程节点处设有断点;所述方法包括:
当所述执行器运行到所述指定流程节点时,暂停运行;响应于接收到的步入调试指令,向所述调试器发送所述指定流程节点的第一行号和步入调试标志;
所述调试器根据所述第一行号和步入调试标志,生成所述第一行号对应的运行时信息,将所述运行时信息返回至所述执行器;
所述执行器接收所述运行时信息继续运行后续流程,当接收到步出调试指令时,将当前流程节点的第二行号和步出调试标志发送到所述调试器;
所述调试器根据所述第二行号和步出调试标志,生成包含下一流程节点行号的步出调试信息并将所述步出调试信息返回至所述执行器;
所述执行器接收所述步出调试信息,暂停至所述步出调试信息指示的所述下一流程节点,并展示所述下一流程节点之前的运行时信息。
2.根据权利要求1所述的方法,其特征在于,所述调试器根据所述第一行号和步入调试标志,生成所述第一行号对应的运行时信息,包括:
根据所述第一行号和步入调试标志,在所述自动化流程代码中查找所述第一行号对应的变量信息;
将所述变量信息与所述第一行号,组合生成所述第一行号对应的运行时信息。
3.根据权利要求1所述的方法,其特征在于,所述调试器根据所述第二行号和步出调试标志,生成包含下一流程节点行号的步出调试信息,包括:
所述调试器根据所述第二行号和步出调试标志,若所述第二行号属于非嵌套内节点行号,生成包含所述当前流程节点的下一流程节点行号的步出调试信息。
4.根据权利要求3所述的方法,其特征在于,所述执行器接收所述步出调试信息,暂停至所述步出调试信息指示的所述下一流程节点,并展示所述下一流程节点之前的运行时信息,包括:
所述执行器接收所述步出调试信息,暂停至所述步出调试信息指示的所述下一流程节点;
所述执行器展示所述当前流程节点运行结束后的运行时信息。
5.根据权利要求1所述的方法,其特征在于,在所述调试器发送所述指定流程节点的第一行号和步入调试标志之后,所述方法还包括:
根据所述第一行号和步入调试标志,在所述自动化流程代码中查找所述第一行号的父节点;
将所述第一行号、步入调试标志和所述父节点的行号,组合生成步入调试信息,并将所述步入调试信息保存中调试信息列表。
6.根据权利要求5所述的方法,其特征在于,所述调试器根据所述第二行号和步出调试标志,生成包含下一流程节点行号的步出调试信息,包括:
所述调试器根据所述第二行号和步出调试标志,若所述第二行号属于嵌套内节点行号,从所述调试信息列表找到所述第二行号的父节点;
在所述自动化流程代码中查找所述第二行号的父节点的下一流程节点行号,生成包含所述下一流程节点行号的步出调试信息。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
从所述调试信息列表中删除所述第二行号的父节点的步入调试信息。
8.根据权利要求6所述的方法,其特征在于,所述执行器接收所述步出调试信息,暂停至所述步出调试信息指示的所述下一流程节点,并展示所述下一流程节点之前的运行时信息,包括:
所述执行器接收所述步出调试信息,暂停至所述步出调试信息指示的所述下一流程节点;
所述执行器展示所述第一行号的父节点所在嵌套运行结束后的运行时信息。
9.根据权利要求1所述的方法,其特征在于,所述执行器接收所述运行时信息继续运行后续流程,包括:
所述执行器接收所述运行时信息并进行所述运行时信息的显示;
响应于接收到的单步调试指令,对所述指定流程节点之后的流程节点进行单步调试,输出每步调试的运行时信息。
10.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-7任意一项所述的自动化流程的调试方法。
11.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成权利要求1-7任意一项所述的自动化流程的调试方法。
CN202211067417.0A 2022-09-01 2022-09-01 自动化流程的调试方法、电子设备及存储介质 Active CN115481021B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211067417.0A CN115481021B (zh) 2022-09-01 2022-09-01 自动化流程的调试方法、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211067417.0A CN115481021B (zh) 2022-09-01 2022-09-01 自动化流程的调试方法、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN115481021A true CN115481021A (zh) 2022-12-16
CN115481021B CN115481021B (zh) 2023-07-21

Family

ID=84420891

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211067417.0A Active CN115481021B (zh) 2022-09-01 2022-09-01 自动化流程的调试方法、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115481021B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117520155A (zh) * 2023-10-30 2024-02-06 乐麦信息技术(杭州)有限公司 一种rpa流程调试方法、装置、电子设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060064676A1 (en) * 2004-09-21 2006-03-23 Hewlett-Packard Development Company, L.P. Systems and methods for validating debug information for optimized code
US20070074168A1 (en) * 2005-09-29 2007-03-29 International Business Machines Corporation Automated step type determination
CN101719093A (zh) * 2009-12-09 2010-06-02 上海普元信息技术有限责任公司 企业Web应用***中实现跨浏览器Javascript调试的***及其方法
CN105302549A (zh) * 2015-09-29 2016-02-03 莱诺斯科技(北京)有限公司 一种支持多语言的测试流程生成、调试、执行***
CN109669876A (zh) * 2018-12-30 2019-04-23 艾普阳科技(深圳)有限公司 一种javascript代码的调试控制方法及***
CN109783342A (zh) * 2017-11-10 2019-05-21 华为技术有限公司 脚本调试方法、设备及计算机存储介质
CN109800159A (zh) * 2018-12-27 2019-05-24 百富计算机技术(深圳)有限公司 程序调试方法、程序调试装置、终端设备及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060064676A1 (en) * 2004-09-21 2006-03-23 Hewlett-Packard Development Company, L.P. Systems and methods for validating debug information for optimized code
US20070074168A1 (en) * 2005-09-29 2007-03-29 International Business Machines Corporation Automated step type determination
CN101719093A (zh) * 2009-12-09 2010-06-02 上海普元信息技术有限责任公司 企业Web应用***中实现跨浏览器Javascript调试的***及其方法
CN105302549A (zh) * 2015-09-29 2016-02-03 莱诺斯科技(北京)有限公司 一种支持多语言的测试流程生成、调试、执行***
CN109783342A (zh) * 2017-11-10 2019-05-21 华为技术有限公司 脚本调试方法、设备及计算机存储介质
CN109800159A (zh) * 2018-12-27 2019-05-24 百富计算机技术(深圳)有限公司 程序调试方法、程序调试装置、终端设备及存储介质
CN109669876A (zh) * 2018-12-30 2019-04-23 艾普阳科技(深圳)有限公司 一种javascript代码的调试控制方法及***

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117520155A (zh) * 2023-10-30 2024-02-06 乐麦信息技术(杭州)有限公司 一种rpa流程调试方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN115481021B (zh) 2023-07-21

Similar Documents

Publication Publication Date Title
US7178135B2 (en) Scope-based breakpoint selection and operation
CN110598855B (zh) 深度学习模型生成方法、装置、设备及存储介质
CN111026670B (zh) 测试用例的生成方法、测试用例的生成装置及存储介质
CN115481021B (zh) 自动化流程的调试方法、电子设备及存储介质
CN113377431A (zh) 一种代码处理方法、装置、设备及介质
CN112148594A (zh) 一种脚本测试方法、装置、电子设备及存储介质
CN112199261A (zh) 应用程序性能分析方法及装置、电子设备
KR20190135074A (ko) 딥러닝 알고리즘 및 트리를 이용한 ui테스팅 자동화 방법 및 동일 방법으로 구현된 장치
CN111143228B (zh) 基于决策表法的测试代码生成方法及装置
CN110209565A (zh) 一种元数据模型调试方法及其装置
CN112214416A (zh) 调试小程序的方法、装置、电子设备和存储介质
CN109358919B (zh) 通用页面的动态配置方法、装置、计算机设备及存储介质
EP2820547B1 (en) Debugging method and computer program product
CN114237557B (zh) 调试逻辑***设计的方法、电子设备及存储介质
CN113495723B (zh) 一种调用功能组件的方法、装置及存储介质
CN114968751A (zh) 一种无代码开发平台的程序调试方法和程序调试装置
US20200005184A1 (en) Skill generating method, apparatus, and electronic device
CN114816425B (zh) 将自动化语言程序转换为lua语言程序的方法和***
CN114816349B (zh) 一种自动化设备控制软件开发方法、***和存储介质
CN111221843A (zh) 大数据处理方法及装置
CN117149339B (zh) 基于人工智能的用户界面关系识别方法及相关装置
CN111488283B (zh) 任务生成方法、装置、电子设备及存储介质
CN115994086A (zh) 图像处理方法及装置、存储介质、终端
CN116414544A (zh) 流程可视的分布式任务编排方法、装置、介质及设备
CN114610292A (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