CN115185640A - 运维操作方法和装置、运行脚本生成方法、存储介质 - Google Patents
运维操作方法和装置、运行脚本生成方法、存储介质 Download PDFInfo
- Publication number
- CN115185640A CN115185640A CN202210819653.7A CN202210819653A CN115185640A CN 115185640 A CN115185640 A CN 115185640A CN 202210819653 A CN202210819653 A CN 202210819653A CN 115185640 A CN115185640 A CN 115185640A
- Authority
- CN
- China
- Prior art keywords
- elements
- script
- party tool
- running script
- determining
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
- G06F9/45512—Command shells
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0489—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using dedicated keyboard keys or combinations thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及一种运维操作方法和装置、运行脚本生成方法、计算机设备、计算机可读存储介质和计算机程序产品。该方法包括:获取连接第一目标设备的运行脚本;运行脚本是通过捕获第三方工具中的多个UI元素得到的;顺序读取运行脚本中的各UI元素的路径,确定在第三方工具中需要被操作的各UI元素;根据运行脚本中的各UI元素的操作类型,确定对应的UI元素接口;调用对应的UI元素接口,通过操作系统内核分别对各UI元素进行操作,以控制第三方工具自动连接第一目标设备。采用本方法能够提高运维操作的稳定性。
Description
技术领域
本申请涉及工业控制技术领域,特别是涉及一种运维操作方法和装置、运行脚本生成方法、计算机设备、计算机可读存储介质和计算机程序产品。
背景技术
堡垒机作为一种能满足角色管理、授权审批、信息资源访问控制、操作记录与审计、系统变更和维护控制等要求的产品被广泛地部署应用,可以有效地降低运维操作的风险,使运维操作管理变得更简单、更安全。
通常地,运维人员在借助第三方工具对目标设备进行运维时,在第三方工具上的自动填写操作是堡垒机通过模拟键盘和鼠标来实现的,然而,通过调用键盘和鼠标来模拟操作时,会受到电脑性能和用户操作习惯等因素的限制,导致运维操作的稳定性低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够运维操作稳定性的运维操作方法和装置、运行脚本生成方法、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种运维操作方法。所述方法包括:
获取连接第一目标设备的运行脚本;所述运行脚本是通过捕获第三方工具中的多个UI元素得到的;
顺序读取所述运行脚本中的各所述UI元素的路径,确定在所述第三方工具中需要被操作的各UI元素;
根据所述运行脚本中的各所述UI元素的操作类型,确定对应的UI元素接口;
调用对应的所述UI元素接口,通过操作系统内核分别对各所述UI元素进行操作,以控制所述第三方工具自动连接所述第一目标设备。
在其中一个实施例中,所述获取连接第一目标设备的运行脚本,包括:
构建以桌面为根节点的UI树;所述UI树中存储多个UI元素对应的区域;
将鼠标所在区域的面积最小的UI元素,确定为所述第三方工具中需要被操作的元素;
模拟鼠标左键对所述鼠标所在区域的面积最小的多个UI元素的点击操作,以进行捕获各所述UI元素相对于所述桌面的路径;
获取各所述UI元素的操作类型;
根据各所述UI元素的捕获顺序,以及各所述UI元素的操作类型和各所述UI元素的路径,得到运行脚本。
在其中一个实施例中,所述根据各所述UI元素的捕获顺序,以及各所述UI元素的操作类型和各所述UI元素的路径,得到运行脚本,包括:
在各所述UI元素的操作类型为预设类型时,获取所述第一目标设备对应的填充内容;
根据各所述UI元素的捕获顺序,将各所述UI元素的路径分别添加到初始运行脚本,并在所述初始运行脚本中的各所述UI元素的操作类型对应的位置分别添加对应的所述填充内容,得到所述运行脚本。
在其中一个实施例中,还包括:
若所述第三方工具连接第二目标设备,获取所述第二目标设备对应的填充内容;
在所述运行脚本中的各所述UI元素的操作类型对应的位置,将所述第一目标设备对应的填充内容更新为所述第二目标设备对应的填充内容,得到更新后的所述运行脚本。
在其中一个实施例中,所述UI元素接口为Windows用户界面自动化接口。
第二方面,本申请还提供了一种运行脚本生成方法,包括:
构建以桌面为根节点的UI树;所述UI树中存储多个UI元素对应的区域;
将鼠标所在区域的面积最小的UI元素,确定为第三方工具中需要被操作的元素;
模拟鼠标左键对所述鼠标所在区域的面积最小的多个UI元素的点击操作,以进行捕获各所述UI元素相对于所述桌面的路径;
获取各所述UI元素的操作类型;
根据各所述UI元素的捕获顺序,以及各所述UI元素的操作类型和各所述UI元素的路径,得到运行脚本。
第三方面,本申请还提供了一种运维操作装置。所述装置包括:
获取模块,用于获取连接第一目标设备的运行脚本;所述运行脚本是通过捕获第三方工具中的多个UI元素得到的;
元素确定模块,用于顺序读取所述运行脚本中的各所述UI元素的路径,确定在所述第三方工具中需要被操作的各UI元素;
接口确定模块,用于根据所述运行脚本中的各所述UI元素的操作类型,确定对应的UI元素接口;
连接模块,用于调用对应的所述UI元素接口,通过操作系统内核分别对各所述UI元素进行操作,以控制所述第三方工具自动连接所述第一目标设备。
第四方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取连接第一目标设备的运行脚本;所述运行脚本是通过捕获第三方工具中的多个UI元素得到的;
顺序读取所述运行脚本中的各所述UI元素的路径,确定在所述第三方工具中需要被操作的各UI元素;
根据所述运行脚本中的各所述UI元素的操作类型,确定对应的UI元素接口;
调用对应的所述UI元素接口,通过操作系统内核分别对各所述UI元素进行操作,以控制所述第三方工具自动连接所述第一目标设备。
第五方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取连接第一目标设备的运行脚本;所述运行脚本是通过捕获第三方工具中的多个UI元素得到的;
顺序读取所述运行脚本中的各所述UI元素的路径,确定在所述第三方工具中需要被操作的各UI元素;
根据所述运行脚本中的各所述UI元素的操作类型,确定对应的UI元素接口;
调用对应的所述UI元素接口,通过操作系统内核分别对各所述UI元素进行操作,以控制所述第三方工具自动连接所述第一目标设备。
第六方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取连接第一目标设备的运行脚本;所述运行脚本是通过捕获第三方工具中的多个UI元素得到的;
顺序读取所述运行脚本中的各所述UI元素的路径,确定在所述第三方工具中需要被操作的各UI元素;
根据所述运行脚本中的各所述UI元素的操作类型,确定对应的UI元素接口;
调用对应的所述UI元素接口,通过操作系统内核分别对各所述UI元素进行操作,以控制所述第三方工具自动连接所述第一目标设备。
上述运维操作方法和装置、运行脚本生成方法、计算机设备、计算机可读存储介质和计算机程序产品,通过获取连接第一目标设备的运行脚本,再顺序读取运行脚本中的各所述UI元素的路径,可以确定在第三方工具中需要被操作的各UI元素,根据运行脚本中的各所述UI元素的操作类型,确定对应的UI元素接口,进而,调用对应的UI元素接口,通过操作系统内核分别对各UI元素进行操作,从而可以控制第三方工具自动连接第一目标设备,这样,通过操作系统内核直接对第三方工具连接第一目标设备所需的UI元素进行操作,可以稳定可靠地完成信息自动填写操作,能够解决通过调用键盘和鼠标来模拟操作时,会受到电脑性能、用户操作习惯等因素的限制而导致的运维操作稳定性低的问题,从而提高运维操作的稳定性;而且,通过生成用来描述所要执行的操作的整个流程的运行脚本,再通过读取运行脚本来重复执行操作,可以让堡垒机自动帮助运维人员执行大量、重复的常规操作,提高运维效率。
附图说明
图1为一个实施例中运维操作方法的应用环境图;
图2为一个实施例中运维操作方法的流程示意图;
图3为一个实施例中获取连接第一目标设备的运行脚本的流程示意图;
图4为一个实施例中根据各UI元素的捕获顺序,以及各UI元素的操作类型和各UI元素的路径,得到运行脚本的流程示意图;
图5为一个实施例中运维操作方法的流程示意图;
图6为一个实施例中运维操作方法的流程示意图;
图7为一个实施例中运维操作装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
堡垒机是一种具有运维和安全审计功能的系统,它是从跳板机演变而来的,基于跳板机可以实现对运维人员的远程登录进行集中管理,但跳板机没有实现对运维人员的操作行为的控制和审计,并且存在严重的安全风险,因此,堡垒机应运而生,堡垒机作为一种能满足角色管理、授权审批、信息资源访问控制、操作记录与审计、系统变更和维护控制等要求的产品被广泛地部署应用,基于堡垒机可以有效地降低运维操作的风险,使运维操作管理变得更简单、更安全。
通常地,运维人员在借助第三方工具对目标设备进行运维时,在运维过程中,第三方工具先连接到堡垒机,再向堡垒机提交操作请求,堡垒机会对登陆账号的权限进行检查,堡垒机的应用代理模块将代替用户连接到目标设备完成该操作,之后,目标设备将操作结果返回给堡垒机,最后堡垒机再将操作结果返回给第三方工具。
其中,在运维过程中,在第三方工具上的自动填写操作是堡垒机通过模拟键盘和鼠标来实现的,然而,通过调用键盘和鼠标来模拟操作时,会受到电脑性能、用户操作习惯以及运维操作对象等因素的限制,导致运维操作的稳定性低。
而且,在借助第三方工具对目标设备进行运维时,一方面,如果使用人工填写,运维人员会知道连接目标设备所需的账号和密码,无法保证权限最小的原则,另一方面,如果通过调用键盘和鼠标来模拟操作,第三方工具在连接不同的运维对象时,会执行大量且重复地常规操作,导致运维操作的效率低。
有鉴于此,本申请提供了一种运维操作方法,该方法可以应用于如图1所示的应用环境中。其中,第三方工具102通过堡垒机104可以自动连接第一目标设备106,具体地,堡垒机104可以获取连接第一目标设备的运行脚本,通过顺序读取运行脚本中的各UI元素的路径,可以确定在第三方工具中需要被操作的各UI元素,根据运行脚本中的各UI元素的操作类型,可以确定对应的UI元素接口,进而,堡垒机104调用对应的UI元素接口,通过操作系统内核分别对各UI元素进行操作,从而可以控制第三方工具自动连接第一目标设备;第一目标设备106可以但不限于是ssh的xshell、mysql的navicat、DBeaver。
在本申请提供的运维操作方法中,通过生成用来描述所要执行的操作的整个流程的运行脚本,再通过读取运行脚本来重复执行操作,可以让堡垒机自动帮助运维人员执行大量、重复的常规操作,提高运维效率,而且,通过操作系统内核直接对各UI元素进行操作,可以稳定可靠地完成信息自动填写操作,能够解决通过调用键盘和鼠标来模拟操作时,会受到电脑性能、用户操作习惯等因素的限制而导致的运维操作稳定性低的问题。
在一个实施例中,如图2所示,提供了一种运维操作方法的流程示意图,以该方法应用于图1中的堡垒机104为例进行说明,包括以下步骤:
S202,获取连接第一目标设备的运行脚本。
其中,运行脚本是堡垒机在第三方工具上执行的脚本,用于第三方工具连接目标设备,具体地,运行脚本是通过捕获第三方工具中的多个UI元素得到的,该多个UI元素是与连接第一目标设备相关的UI元素,这样,基于第三方工具中的多个UI元素确定的运行脚本,可以执行第三方工具连接第一目标设备的过程。
S204,顺序读取运行脚本中的各UI元素的路径,确定在第三方工具中需要被操作的各UI元素。
其中,运行脚本中包括第三方工具连接第一目标设备所需的各UI元素的路径,基于各UI元素的路径可以确定第三方工具连接第一目标设备时所需的各UI元素,这样,基于顺序读取所确定的各UI元素的路径,堡垒机可以确定对各UI元素进行操作的顺序。
S206,根据运行脚本中的各UI元素的操作类型,确定对应的UI元素接口。
其中,UI元素接口为Windows用户界面自动化接口(User Interface Automation,UIA),例如,UI元素的操作类型为输入(INPUT)类型时,对应的Windows UIA接口为set_edit_text(),UI元素的操作类型为点击(CLICK)类型时,对应的Windows UIA接口为click()。
可以理解的是,UI元素的操作类型与对应的Windows UIA接口的具体内容,可以根据实际应用场景设定,本实施例不作限定。
S208,调用对应的UI元素接口,通过操作系统内核分别对各UI元素进行操作,以控制第三方工具自动连接第一目标设备。
其中,通过操作系统内核分别对各UI元素进行操作,可以完成第三方工具自动连接第一设备时的整个代填流程,这样,在完成整个代填流程后,运维人员可以通过第三方工具对第一目标设备进行运维。
综上,在图2所示的实施例中,通过获取连接第一目标设备的运行脚本,再顺序读取运行脚本中的各UI元素的路径,可以确定在第三方工具中需要被操作的各UI元素,根据运行脚本中的各UI元素的操作类型,确定对应的UI元素接口,进而,调用对应的UI元素接口,通过操作系统内核分别对各UI元素进行操作,从而可以控制第三方工具自动连接第一目标设备,这样,通过操作系统内核直接对第三方工具连接第一目标设备所需的各UI元素进行操作,可以稳定可靠地完成信息自动填写操作,能够解决通过调用键盘和鼠标来模拟操作时,会受到电脑性能、用户操作习惯等因素的限制而导致的运维操作稳定性低的问题,从而可以提高运维操作的稳定性。
在一个实施例中,如图3所示,提供了获取连接第一目标设备的运行脚本的流程示意图,以该方法应用于图1中的堡垒机104为例进行说明,可以包括以下步骤:
S302,构建以桌面为根节点的UI树。
其中,根据窗口及其元素的层次结构,可以构建以桌面为根节点的UI树,具体地,UI树的子树为每个被打开的应用窗口,UI树的节点为每个应用窗口中的格窗、输入框、按钮以及下拉框等UI元素,而且,UI树中还存储了每个UI元素的坐标、长度、宽度以及类型等信息,基于UI元素的长度和宽度,可以确定UI元素对应的区域。
S304,将鼠标所在区域的面积最小的UI元素,确定为第三方工具中需要被操作的元素。
其中,将鼠标所在区域的面积最小的UI元素进行高亮显示,该高亮显示的UI元素即为第三方工具中需要被操作的元素。
S306,模拟鼠标左键对鼠标所在区域的面积最小的多个UI元素的点击操作,以进行捕获各UI元素相对于桌面的路径。
其中,将鼠标所在区域的面积最小的UI元素进行高亮显示时,通过模拟鼠标左键可以对鼠标所在区域的面积最小的UI元素的点击操作,从而可以捕获鼠标所在区域的面积最小的UI元素相对于桌面所在的路径,重复执行通过模拟鼠标左键对鼠标所在区域的面积最小的UI元素的点击操作,可以对鼠标所在区域的面积最小的多个UI元素进行捕获,这样,在对鼠标所在区域的面积最小的多个UI元素捕获完成后,通过模拟对鼠标右键的点击操作,可以退出捕获过程,从而可以获得捕获的各UI元素相对于桌面的路径。
S308,获取各UI元素的操作类型。
其中,各UI元素的操作类型用于指示对各UI元素进行操作时的执行类型,具体地,各UI元素的操作类型可以包括输入类型、点击类型、下拉类型以及选择(SELECT)类型等,可以理解的是,各UI元素的操作类型的具体内容,可以根据实际应用场景设定,本实施例不作限定。
S310,根据各UI元素的捕获顺序,以及各UI元素的操作类型和各UI元素的路径,得到运行脚本。
其中,根据各UI元素的路径可以确定第三方工具自动连接第一目标设备时所需的各UI元素,根据各UI元素的捕获顺序可以确定第三方工具自动连接第一目标设备时的各UI元素的执行顺序,根据各UI元素的操作类型可以确定第三方工具自动连接第一目标设备时对各UI元素进行操作的执行类型,这样,根据各UI元素的捕获顺序,以及各UI元素的操作类型和各UI元素的路径,所生成的运行脚本,可以完成第三方工具自动连接第一目标设备时的整个代填过程。
综上,在图3所示的实施例中,通过构建以桌面为根节点的UI树,UI树中存储多个UI元素对应的区域,将鼠标所在区域的面积最小的UI元素,确定为第三方工具中需要被操作的元素,通过模拟鼠标左键对鼠标所在区域的面积最小的多个UI元素的点击操作,以进行捕获各UI元素相对于桌面的路径,通过获取各UI元素的操作类型,根据各UI元素的捕获顺序,以及各UI元素的操作类型和各UI元素的路径,可以得到运行脚本,这样,通过确定第三方工具自动连接第一目标设备时的运行脚本,再通过读取运行脚本来重复执行连接过程,从而可以让堡垒机自动帮助运维人员执行大量、重复的常规操作,提高运维效率,解决存在重复性的常规操作,导致运维效率低的问题。
在一个实施例中,如图4所示,提供了根据各UI元素的捕获顺序,以及各UI元素的操作类型和各UI元素的路径,得到运行脚本的流程示意图,以该方法应用于图1中的堡垒机104为例进行说明,可以包括以下步骤:
S402,在各UI元素的操作类型为预设类型时,获取第一目标设备对应的填充内容。
其中,预设类型为输入类型或选择类型,在各UI元素的操作类型为输入类型或选择类型时,需要获取第一目标设备对应的填充内容,例如,填充内容为账户或密码等。
S404,根据各UI元素的捕获顺序,将各UI元素的路径分别添加到初始运行脚本,并在初始运行脚本中的各UI元素的操作类型对应的位置分别添加对应的填充内容,得到运行脚本。
其中,初始运行脚本为json文件,按照各UI元素的捕获顺序可以将根据各UI元素的路径所确定的各UI元素顺序填入到json文件中,并在各UI元素的操作类型对应的位置分别添加对应的填充内容到json文件中,从而可以得到运行脚本,运行脚本也为json文件。
其中,运行脚本中还可以包括执行完UI元素后距离执行下一个UI元素的等待时间,示例性的,运行脚本的内容可以描述如下:
其中,TOOL_NAME用来描述被代填的工具名称,ACTION_LIST用来描述第三方工具自动连接第一目标设备所需的多个操作,各操作按顺序依次执行,具体地,各操作包含对应的各UI元素路径PATH、对应的各UI元素的操作类型ACTION、执行完对应的各UI元素后再执行下一个UI元素的等待时间WAIT_TIME;在对应的各UI元素的类型为输入类型或选择类型时,需要在json文件中补充文本内容CONTENT,“xxx”表示对应的值。
综上,在图4所示的实施例中,根据各UI元素的操作类型,可以将要填充的文本内容写入json文件得到运行脚本中,再通过读取运行执行连接过程,不需要运维人员手动填入,能够解决运维人员知道运维资产的账号和密码而无法保证权限最小原则的问题,从而提高运维操作的安全性。
在图2至图4所示的实施例中,是以第三方工具连接第一目标设备为例进行的示例性说明,在其中一个实施例中,如图5所示,提供了一种运维操作方法的流程示意图,以该方法应用于图1中的堡垒机104为例,对第三方工具连接第二目标设备的过程进行说明,可以包括以下步骤:
S502,若第三方工具连接第二目标设备,获取第二目标设备对应的填充内容。
S504,在运行脚本中的各UI元素的操作类型对应的位置,将第一目标设备对应的填充内容更新为第二目标设备对应的填充内容,得到更新后的运行脚本。
其中,若第三方工具需要连接第二目标设备,在第三方工具中需要被操作的元素和调用的UI元素接口是相同的,但需要填充的文本内容是不同的,因此,通过获取第二目标设备对应的填充内容,并在运行脚本中的各UI元素的操作类型对应的位置,将第一目标设备对应的填充内容更新为第二目标设备对应的填充内容,可以得到更新后的运行脚本,这样,基于更新后的运行脚本,调用对应的Windows UIA接口,通过操作系统内核分别对各UI元素进行操作,可以控制第三方工具自动连接第二目标设备。
可以理解的是,在基于第三方工具连接不同的目标设备时,不同的目标设备可以对应相同的运行脚本,但基于不同的目标设备,需要对相同的运行脚本中的填充内容进行修改;或者,不同的目标设备可以分别对应一个运行脚本,在基于第三方工具连接不同的目标设备时,可以分别调用与目标设备对应的运行脚本,通过读取运行脚本的方式,可以提高运维操作的效率。
在其中一个实施例中,提供了一种运行脚本的生成方法,以该方法应用于图1中的堡垒机104为例进行说明,可以包括以下步骤:
S1,构建以桌面为根节点的UI树;UI树中存储多个UI元素对应的区域。
S2,将鼠标所在区域的面积最小的UI元素,确定为第三方工具中需要被操作的元素。
S3,模拟鼠标左键对鼠标所在区域的面积最小的多个UI元素的点击操作,以进行捕获各UI元素相对于桌面的路径。
S4,获取各UI元素的操作类型。
S5,根据各UI元素的捕获顺序,以及各UI元素的操作类型和各UI元素的路径,得到运行脚本。
其中,S1-S5的具体内容,可以参考图3和图4的内容适应描述,再次不再赘述。
结合上述内容,在其中一个实施例中,如图6所示,提供了一种运维操作方法的流程示意图,以该方法应用于图1中的堡垒机104为例进行说明,可以包括以下步骤:
S602,构建以桌面为根节点的UI树;UI树中存储多个UI元素对应的区域。
S604,将鼠标所在区域的面积最小的UI元素,确定为第三方工具中需要被操作的元素。
S606,模拟鼠标左键对鼠标所在区域的面积最小的多个UI元素的点击操作,以进行捕获各UI元素相对于桌面的路径。
S608,获取各UI元素的操作类型。
S610,在各UI元素的操作类型为预设类型时,获取第一目标设备对应的填充内容。
S612,根据各UI元素的捕获顺序,将各UI元素的路径分别添加到初始运行脚本,并在初始运行脚本中的各UI元素的操作类型对应的位置分别添加对应的填充内容,得到运行脚本。
S614,顺序读取运行脚本中的各UI元素的路径,确定在第三方工具中需要被操作的各UI元素。
S616,根据运行脚本中的各UI元素的操作类型,确定对应的UI元素接口。
S618,调用对应的UI元素接口,通过操作系统内核分别对各UI元素进行操作,以控制第三方工具自动连接第一目标设备。
其中,S602-S618的内容可以参考图2至图4的内容适应描述,再次不再赘述。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的运维操作方法的运维操作装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个运维操作装置实施例中的具体限定可以参见上文中对于运维操作方法的限定,在此不再赘述。
在一个实施例中,如图7所示,提供了一种运维操作装置,包括:获取模块702、元素确定模块704、接口确定模块706以及连接模块708,其中:
获取模块702,用于获取连接目标设备的运行脚本;运行脚本是通过捕获第三方工具中的多个UI元素得到的。
元素确定模块704,用于顺序读取运行脚本中的各UI元素的路径,确定在第三方工具中需要被操作的各UI元素。
接口确定模块706,用于根据运行脚本中的各UI元素的操作类型,确定对应的UI元素接口。
连接模块708,用于调用对应的UI元素接口,通过操作系统内核分别对各UI元素进行操作,以控制第三方工具自动连接第一目标设备。
在其中一个实施例中,获取模块,还用于构建以桌面为根节点的UI树;UI树中存储多个UI元素对应的区域;将鼠标所在区域的面积最小的UI元素,确定为第三方工具中需要被操作的元素;模拟鼠标左键对鼠标所在区域的面积最小的多个UI元素的点击操作,以进行捕获各UI元素相对于桌面的路径;获取各UI元素的操作类型;根据各UI元素的捕获顺序,以及各UI元素的操作类型和各UI元素的路径,得到运行脚本。
在其中一个实施例中,获取模块,还用于在各UI元素的操作类型为预设类型时,获取第一目标设备对应的填充内容;根据各UI元素的捕获顺序,将各UI元素的路径分别添加到初始运行脚本,并在初始运行脚本中的各UI元素的操作类型对应的位置分别添加对应的填充内容,得到运行脚本。
在其中一个实施例中,获取模块,还用于若第三方工具连接第二目标设备,获取第二目标设备对应的填充内容;在运行脚本中的各UI元素的操作类型对应的位置,将第一目标设备对应的填充内容更新为第二目标设备对应的填充内容,得到更新后的运行脚本。
在其中一个实施例中,UI元素接口为Windows用户界面自动化接口。
上述运维操作装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储运行脚本。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种运维操作方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取连接第一目标设备的运行脚本;运行脚本是通过捕获第三方工具中的多个UI元素得到的;
顺序读取运行脚本中的各UI元素的路径,确定在第三方工具中需要被操作的各UI元素;
根据运行脚本中的各UI元素的操作类型,确定对应的UI元素接口;
调用对应的UI元素接口,通过操作系统内核分别对各UI元素进行操作,以控制第三方工具自动连接第一目标设备。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
构建以桌面为根节点的UI树;UI树中存储多个UI元素对应的区域;
将鼠标所在区域的面积最小的UI元素,确定为第三方工具中需要被操作的元素;
模拟鼠标左键对鼠标所在区域的面积最小的多个UI元素的点击操作,以进行捕获各UI元素相对于桌面的路径;
获取各UI元素的操作类型;
根据各UI元素的捕获顺序,以及各UI元素的操作类型和各UI元素的路径,得到运行脚本。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
在各UI元素的操作类型为预设类型时,获取第一目标设备对应的填充内容;
根据各UI元素的捕获顺序,将各UI元素的路径分别添加到初始运行脚本,并在初始运行脚本中的各UI元素的操作类型对应的位置分别添加对应的填充内容,得到运行脚本。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
若第三方工具连接第二目标设备,获取第二目标设备对应的填充内容;
在运行脚本中的各UI元素的操作类型对应的位置,将第一目标设备对应的填充内容更新为第二目标设备对应的填充内容,得到更新后的运行脚本。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
将UI元素接口设置为Windows用户界面自动化接口。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取连接第一目标设备的运行脚本;运行脚本是通过捕获第三方工具中的多个UI元素得到的;
顺序读取运行脚本中的各UI元素的路径,确定在第三方工具中需要被操作的各UI元素;
根据运行脚本中的各UI元素的操作类型,确定对应的UI元素接口;
调用对应的UI元素接口,通过操作系统内核分别对各UI元素进行操作,以控制第三方工具自动连接第一目标设备。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
构建以桌面为根节点的UI树;UI树中存储多个UI元素对应的区域;
将鼠标所在区域的面积最小的UI元素,确定为第三方工具中需要被操作的元素;
模拟鼠标左键对鼠标所在区域的面积最小的多个UI元素的点击操作,以进行捕获各UI元素相对于桌面的路径;
获取各UI元素的操作类型;
根据各UI元素的捕获顺序,以及各UI元素的操作类型和各UI元素的路径,得到运行脚本。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
在各UI元素的操作类型为预设类型时,获取第一目标设备对应的填充内容;
根据各UI元素的捕获顺序,将各UI元素的路径分别添加到初始运行脚本,并在初始运行脚本中的各UI元素的操作类型对应的位置分别添加对应的填充内容,得到运行脚本。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
若第三方工具连接第二目标设备,获取第二目标设备对应的填充内容;
在运行脚本中的各UI元素的操作类型对应的位置,将第一目标设备对应的填充内容更新为第二目标设备对应的填充内容,得到更新后的运行脚本。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
将UI元素接口设置为Windows用户界面自动化接口。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取连接第一目标设备的运行脚本;运行脚本是通过捕获第三方工具中的多个UI元素得到的;
顺序读取运行脚本中的各UI元素的路径,确定在第三方工具中需要被操作的各UI元素;
根据运行脚本中的各UI元素的操作类型,确定对应的UI元素接口;
调用对应的UI元素接口,通过操作系统内核分别对各UI元素进行操作,以控制第三方工具自动连接第一目标设备。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
构建以桌面为根节点的UI树;UI树中存储多个UI元素对应的区域;
将鼠标所在区域的面积最小的UI元素,确定为第三方工具中需要被操作的元素;
模拟鼠标左键对鼠标所在区域的面积最小的多个UI元素的点击操作,以进行捕获各UI元素相对于桌面的路径;
获取各UI元素的操作类型;
根据各UI元素的捕获顺序,以及各UI元素的操作类型和各UI元素的路径,得到运行脚本。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
在各UI元素的操作类型为预设类型时,获取第一目标设备对应的填充内容;
根据各UI元素的捕获顺序,将各UI元素的路径分别添加到初始运行脚本,并在初始运行脚本中的各UI元素的操作类型对应的位置分别添加对应的填充内容,得到运行脚本。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
若第三方工具连接第二目标设备,获取第二目标设备对应的填充内容;
在运行脚本中的各UI元素的操作类型对应的位置,将第一目标设备对应的填充内容更新为第二目标设备对应的填充内容,得到更新后的运行脚本。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
将UI元素接口设置为Windows用户界面自动化接口。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种运维操作方法,其特征在于,包括:
获取连接第一目标设备的运行脚本;所述运行脚本是通过捕获第三方工具中的多个UI元素得到的;
顺序读取所述运行脚本中的各所述UI元素的路径,确定在所述第三方工具中需要被操作的各UI元素;
根据所述运行脚本中的各所述UI元素的操作类型,确定对应的UI元素接口;
调用对应的所述UI元素接口,通过操作系统内核分别对各所述UI元素进行操作,以控制所述第三方工具自动连接所述第一目标设备。
2.根据权利要求1所述的方法,其特征在于,所述获取连接第一目标设备的运行脚本,包括:
构建以桌面为根节点的UI树;所述UI树中存储多个UI元素对应的区域;
将鼠标所在区域的面积最小的UI元素,确定为所述第三方工具中需要被操作的元素;
模拟鼠标左键对所述鼠标所在区域的面积最小的多个UI元素的点击操作,以进行捕获各所述UI元素相对于所述桌面的路径;
获取各所述UI元素的操作类型;
根据各所述UI元素的捕获顺序,以及各所述UI元素的操作类型和各所述UI元素的路径,得到运行脚本。
3.根据权利要求2所述的方法,其特征在于,所述根据各所述UI元素的捕获顺序,以及各所述UI元素的操作类型和各所述UI元素的路径,得到运行脚本,包括:
在各所述UI元素的操作类型为预设类型时,获取所述第一目标设备对应的填充内容;
根据各所述UI元素的捕获顺序,将各所述UI元素的路径分别添加到初始运行脚本,并在所述初始运行脚本中的各所述UI元素的操作类型对应的位置分别添加对应的所述填充内容,得到所述运行脚本。
4.根据权利要求3所述的方法,其特征在于,还包括:
若所述第三方工具连接第二目标设备,获取所述第二目标设备对应的填充内容;
在所述运行脚本中的各所述UI元素的操作类型对应的位置,将所述第一目标设备对应的填充内容更新为所述第二目标设备对应的填充内容,得到更新后的所述运行脚本。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述UI元素接口为Windows用户界面自动化接口。
6.一种运行脚本生成方法,其特征在于,包括:
构建以桌面为根节点的UI树;所述UI树中存储多个UI元素对应的区域;
将鼠标所在区域的面积最小的UI元素,确定为第三方工具中需要被操作的元素;
模拟鼠标左键对所述鼠标所在区域的面积最小的多个UI元素的点击操作,以进行捕获各所述UI元素相对于所述桌面的路径;
获取各所述UI元素的操作类型;
根据各所述UI元素的捕获顺序,以及各所述UI元素的操作类型和各所述UI元素的路径,得到运行脚本。
7.一种运维操作装置,其特征在于,包括:
获取模块,用于获取连接第一目标设备的运行脚本;所述运行脚本是通过捕获第三方工具中的多个UI元素得到的;
元素确定模块,用于顺序读取所述运行脚本中的各所述UI元素的路径,确定在所述第三方工具中需要被操作的各UI元素;
接口确定模块,用于根据所述运行脚本中的各所述UI元素的操作类型,确定对应的UI元素接口;
连接模块,用于调用对应的所述UI元素接口,通过操作系统内核分别对各所述UI元素进行操作,以控制所述第三方工具自动连接所述第一目标设备。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210819653.7A CN115185640A (zh) | 2022-07-13 | 2022-07-13 | 运维操作方法和装置、运行脚本生成方法、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210819653.7A CN115185640A (zh) | 2022-07-13 | 2022-07-13 | 运维操作方法和装置、运行脚本生成方法、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115185640A true CN115185640A (zh) | 2022-10-14 |
Family
ID=83518822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210819653.7A Pending CN115185640A (zh) | 2022-07-13 | 2022-07-13 | 运维操作方法和装置、运行脚本生成方法、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115185640A (zh) |
-
2022
- 2022-07-13 CN CN202210819653.7A patent/CN115185640A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020253059A1 (zh) | 多级联动下拉框的实现方法、装置和计算机设备 | |
CN108509485B (zh) | 数据的预处理方法、装置、计算机设备和存储介质 | |
US9973522B2 (en) | Identifying network security risks | |
US11468368B2 (en) | Parametric modeling and simulation of complex systems using large datasets and heterogeneous data structures | |
US20180247234A1 (en) | Platform for management and tracking of collaborative projects | |
CN110888797A (zh) | 测试数据生成方法、装置、计算机设备及存储介质 | |
CN108170772A (zh) | 一种数据处理方法及装置 | |
CN110633959A (zh) | 基于图结构的审批任务创建方法、装置、设备及介质 | |
Hall et al. | Using H2O driverless ai | |
CN117290236A (zh) | 软件测试方法、装置、计算机设备及计算机可读存储介质 | |
CN116644250B (zh) | 页面检测方法、装置、计算机设备和存储介质 | |
CN117078181A (zh) | 一种电力交易业务数据处理流程自动化方法与系统 | |
CN115185640A (zh) | 运维操作方法和装置、运行脚本生成方法、存储介质 | |
CN113112270B (zh) | 基于区块链的数据组织方法 | |
CN115221852A (zh) | 基于vxe-table的动态计算表格实现方法、装置和计算机设备 | |
CN113407163B (zh) | 模块关联赋值方法、装置、计算机设备及可读存储介质 | |
CN114490415A (zh) | 业务测试方法、计算机设备、存储介质和计算机程序产品 | |
US20210109894A1 (en) | Automated customized modeling of datasets with intuitive user interfaces | |
CN111191057A (zh) | 一种自定义检索方法、装置、电子设备及其存储介质 | |
CN117056028B (zh) | 机器人仿真平台搭建方法、装置、计算机设备和存储介质 | |
Gunawan et al. | Implementation of the Incremental Model in Building a Web-Based Information System for Wealth Reporting of State Civil Apparatus | |
CN114780561A (zh) | 实体属性的编辑方法、装置、计算机设备、存储介质 | |
CN116628079A (zh) | 业务系统的数据同步方法、装置、存储介质及计算机设备 | |
CN117649303A (zh) | 保全业务受理方法、装置、计算机设备和存储介质 | |
Pashazadeh et al. | Modeling Chandy–Lamport Distributed Snapshot Algorithm Using Colored Petri Net |
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 |