CN112965895B - 桌面应用程序自动化测试方法、装置、设备及存储介质 - Google Patents

桌面应用程序自动化测试方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN112965895B
CN112965895B CN202110182767.0A CN202110182767A CN112965895B CN 112965895 B CN112965895 B CN 112965895B CN 202110182767 A CN202110182767 A CN 202110182767A CN 112965895 B CN112965895 B CN 112965895B
Authority
CN
China
Prior art keywords
tested
scripts
window
script
container
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
Application number
CN202110182767.0A
Other languages
English (en)
Other versions
CN112965895A (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.)
Winning Health Technology Group Co Ltd
Original Assignee
Winning Health Technology Group 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 Winning Health Technology Group Co Ltd filed Critical Winning Health Technology Group Co Ltd
Priority to CN202110182767.0A priority Critical patent/CN112965895B/zh
Publication of CN112965895A publication Critical patent/CN112965895A/zh
Application granted granted Critical
Publication of CN112965895B publication Critical patent/CN112965895B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

本申请提供一种桌面应用程序自动化测试方法、装置、设备及存储介质,涉及自动化测试技术领域。该方法包括:获取桌面应用程序的多个待测试脚本,多个待测试脚本包括:不同桌面应用程序的多个测试脚本,或者,同一桌面应用程序的多个测试脚本;将多个待测试脚本分别分发至多个窗口容器中,在各窗口容器中分别执行待测试脚本;根据窗口容器的容器目录与主机目录的映射关系,将目标窗口容器的测试结果存储至目标主机目录;根据目标主机目录存储的测试结果,得到桌面应用程序的测试结果。在本方案中,能够在单台计算机上实现对GUI桌面应用程序的多个测试任务的并发测试,提高了对GUI桌面应用程序软件进行并发测试效率。

Description

桌面应用程序自动化测试方法、装置、设备及存储介质
技术领域
本申请涉及自动化测试技术领域,具体而言,涉及一种桌面应用程序自动化测试方法、装置、设备及存储介质。
背景技术
GUI(Graphical User Interface,图形用户界面)已经成为交互式软件的一个最为重要的组成部分,广泛存在于各种桌面应用程序软件和软件工具中。GUI为用户操作带来了极大的方便,也使得GUI桌面应用程序软件的自动化测试效率受限,1台计算机在同一时间只能对一个桌面应用程序执行一个自动化测试任务。
目前,为了达到提升测试效率的目的,采取增加计算机数量,或者在每台计算机上开启多个虚拟机,以实现可以同时执行多个自动化测试任务的效果。
但是,第一种测试方案存在资源浪费大、成本高的问题;第二种开启多个虚拟机的方案,由于虚拟机资源占用高,导致对计算机的配置要求也高,且单台计算机能开的虚拟机个数非常局限。因此,采用上述两种测试方案,均存在对GUI桌面应用程序软件进行并发测试效率偏低的问题。
发明内容
本发明的目的在于,针对上述现有技术中的不足,提供一种桌面应用程序自动化测试方法、装置、设备及存储介质,以便提高对GUI桌面应用程序软件进行并发测试的效率。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供了一种桌面应用程序自动化测试方法,包括:
获取桌面应用程序的多个待测试脚本,所述多个待测试脚本包括:不同桌面应用程序的多个测试脚本,或者,同一桌面应用程序的多个测试脚本;
将所述多个待测试脚本分别分发至多个窗口容器中,在各所述窗口容器中分别执行待测试脚本;
根据窗口容器的容器目录与主机目录的映射关系,将目标窗口容器的测试结果存储至目标主机目录;
根据所述目标主机目录存储的测试结果,得到所述桌面应用程序的测试结果。
可选地,所述将所述多个待测试脚本分别分发至多个窗口容器中,在各所述窗口容器中分别执行待测试脚本,包括:
对所述多个待测试脚本进行分类,得到目标数量的脚本组,每个脚本组中包括至少一个待测试脚本;
启动所述目标数量的窗口容器;
将每个脚本组分别分发至一个窗口容器中,由所述窗口容器执行所述脚本组中的待测试脚本。
可选地,所述对所述多个待测试脚本进行分类,得到目标数量的脚本组,包括:
按照所述待测试脚本的数量对所述多个待测试脚本进行分类,得到目标数量的脚本组。
可选地,所述对所述多个待测试脚本进行分类,得到目标数量的脚本组,包括:
按照所述待测试脚本的功能信息对所述多个待测试脚本进行分类,得到目标数量的脚本组,每个脚本组中分别包括至少一个待测试脚本,各待测试脚本之间的功能存在关联。
可选地,所述对所述多个待测试脚本进行分类,得到目标数量的脚本组:
根据所述待测试脚本以及允许启动的窗口容器数量,对所述多个待测试脚本进行分类,得到目标数量的脚本组,所述允许启动的窗口容器数量基于主机的资源信息以及单个窗口容器的资源占用信息确定。
可选地,所述根据所述目标主机目录存储的测试结果,得到所述桌面应用程序的测试结果,包括:
对所述目标主机目录中的测试结果进行合并处理,得到所述桌面应用程序的测试结果。
可选地,所述获取桌面应用程序的多个待测试脚本之前,还包括:
搭建应用容器引擎环境,获取窗口容器镜像文件;
将所述桌面应用程序和所述待测试脚本映射到窗口容器中,得到主机目录和容器目录的映射关系。
第二方面,本申请实施例还提供了一种桌面应用程序自动化测试装置,所述装置包括:获取模块、分发模块、存储模块以及处理模块;
所述获取模块,用于获取桌面应用程序的多个待测试脚本,所述多个待测试脚本包括:不同桌面应用程序的多个测试脚本,或者,同一桌面应用程序的多个测试脚本;
所述分发模块,用于将所述多个待测试脚本分别分发至多个窗口容器中,在各所述窗口容器中分别执行待测试脚本;
所述存储模块,用于根据窗口容器的容器目录与主机目录的映射关系,将目标窗口容器的测试结果存储至目标主机目录;
所述处理模块,用于根据所述目标主机目录存储的测试结果,得到所述桌面应用程序的测试结果。
可选地,所述分发模块,还用于:
对所述多个待测试脚本进行分类,得到目标数量的脚本组,每个脚本组中包括至少一个待测试脚本;
启动所述目标数量的窗口容器;
将每个脚本组分别分发至一个窗口容器中,由所述窗口容器执行所述脚本组中的待测试脚本。
可选地,所述分发模块,还用于:
按照所述待测试脚本的数量对所述多个待测试脚本进行分类,得到目标数量的脚本组。
可选地,所述分发模块,还用于:
按照所述待测试脚本的功能信息对所述多个待测试脚本进行分类,得到目标数量的脚本组,每个脚本组中分别包括至少一个待测试脚本,各待测试脚本之间的功能存在关联。
可选地,所述分发模块,还用于:
根据所述待测试脚本以及允许启动的窗口容器数量,对所述多个待测试脚本进行分类,得到目标数量的脚本组,所述允许启动的窗口容器数量基于主机的资源信息以及单个窗口容器的资源占用信息确定。
可选地,所述处理模块,还用于:
对所述目标主机目录中的测试结果进行合并处理,得到所述桌面应用程序的测试结果。
可选地,所述装置还包括:搭建模块、映射模块;
所述搭建模块,用于搭建应用容器引擎环境,获取窗口容器镜像文件;
所述映射模块,用于将所述桌面应用程序和所述待测试脚本映射到窗口容器中,得到主机目录和容器目录的映射关系。
第三方面,本申请实施例还提供了一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如第一方面提供的所述方法的步骤。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如以执行如第一方面提供的所述方法的步骤。
本申请的有益效果是:
综上所述,本申请实施例提供一种桌面应用程序自动化测试方法、装置、设备及存储介质,该方法包括:获取桌面应用程序的多个待测试脚本,多个待测试脚本包括:不同桌面应用程序的多个测试脚本,或者,同一桌面应用程序的多个测试脚本;将多个待测试脚本分别分发至多个窗口容器中,在各窗口容器中分别执行待测试脚本;根据窗口容器的容器目录与主机目录的映射关系,将目标窗口容器的测试结果存储至目标主机目录;根据目标主机目录存储的测试结果,得到桌面应用程序的测试结果。在本方案中,通过将桌面应用程序的多个待测试脚本分别分发至多个窗口容器中,并在各窗口容器中同时并发执行测试脚本,使得能够在单台计算机上实现对Windows GUI桌面应用程序的多个测试任务的并发测试,提高了对Windows GUI桌面应用程序软件进行并发测试效率,还有效避免了传统方案中的资源浪费问题。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种电子设备的结构示意图;
图2为本申请实施例提供的一种桌面应用程序自动化测试方法的流程示意图;
图3为本申请实施例提供的另一种桌面应用程序自动化测试方法的流程示意图;
图4为本申请实施例提供的又一种桌面应用程序自动化测试方法的流程示意图;
图5为本申请实施例提供的一种桌面应用程序自动化测试装置的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
在对本申请所提供的技术方案展开具体说明之前,先对本申请所涉及的部分名词术语进行简单说明:
1、窗口容器(Windows Container):是微软在Windows上的虚拟化实践,它可以提供操作系统级别的虚拟化的容器技术,Windows Container是完全使用沙箱机制,相互之间隔离,不会有任何接口。
2、应用容器引擎(Docker):是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何Windows机器上,也可以实现虚拟化。
图1为本申请实施例提供的一种电子设备的结构示意图;该电子设备如可以是计算机等处理设备,比如该电子设备可以安装有多个具有Windows操作系统的桌面应用程序,如桌面应用程序可以是钉钉、微信等Windows GUI的交互式软件,使得该电子设备可以用于实现本申请提供的桌面应用程序自动化测试方法。如图1所示,电子设备包括:处理器101、存储器102。
处理器101、存储器102之间直接或间接地电性连接,以实现数据的传输或交互。例如,可通过一条或多条通信总线或信号线实现电性连接。
其中,处理器101可以是一种集成电路芯片,具有信号的处理能力。上述的处理器101可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器102可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
存储器102用于存储程序,处理器101调用存储器102存储的程序,以执行下面实施例提供的桌面应用程序自动化测试方法。
可以理解,图1所述的结构仅为示意,电子设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
如下,将通过多个具体实施例对本申请提供的桌面应用程序自动化测试方法的实现原理和对应产生的有益效果进行说明。
图2为本申请实施例提供的一种桌面应用程序自动化测试方法的流程示意图;该方法的执行主体可以上述图1中的电子设备,如图2所示,该方法包括:
S201、获取桌面应用程序的多个待测试脚本。
其中,桌面应用程序可以是:Windows GUI的应用程序。多个待测试脚本包括:不同Windows GUI桌面应用程序的多个测试脚本,或者,同一Windows GUI桌面应用程序的多个测试脚本,且一个测试脚本对应执行一个功能模块的测试任务。
在本实施例中,为了便于说明,以获取“同一Windows GUI桌面应用程序的多个测试脚本”为例。比如,Windows GUI桌面应用程序A包括功能1、功能2、功能3等三大功能模块,当需要对Windows GUI桌面应用程序A的上述三种功能模块进行测试时,相应的,则需要获取Windows GUI桌面应用程序A的每个待测功能模块的测试脚本,一个测试脚本对应执行一个功能模块的测试任务,因此,需要获取Windows GUI桌面应用程序A的3个待测试脚本,即测试脚本1、测试脚本2、测试脚本3。
S202、将多个待测试脚本分别分发至多个窗口容器中,在各窗口容器中分别执行待测试脚本。
首先,对本申请提出的基于窗口容器Windows Container的Windows GUI桌面程序的测试脚本进行自动化并发测试的思路进行介绍。
最初,官方发布的Windows Container技术的目的是用于进行服务部署,并不是为了在Windows Container中执行测试脚本。但在本申请中,发明人通过研究发现,WindowsContainer上的GUI元素虽然不能呈现于用户交互桌面,但允许以脚本或编程方式对Windows GUI中图标的进行搜索、点击等操作,这样确保了在Windows Container中执行待测试脚本方案的可行性。因此,在单台计算机上创建Windows Container(PersonalComputer,简称PC),并同时在多个Windows Container中Windows GUI不同任务的测试脚本进行并发测试,不再依赖虚拟机。
所以,在本实施例中,为了提升对Windows GUI桌面应用程序的测试效率,可以将上述测试脚本1、测试脚本2、测试脚本3分别分发至3个窗口容器(Windows Container)中,即窗口容器1、窗口容器2和窗口容器3,在这3个窗口容器中同时并发执行测试脚本1、测试脚本2、测试脚本3。
S203、根据窗口容器的容器目录与主机目录的映射关系,将目标窗口容器的测试结果存储至目标主机目录。
其中,目标主机目录可能是一个,也可能是多个。如可能是一个容器目录对应一个主机目录,也可能是多个容器目录对应一个主机目录。
例如,以“多个容器目录对应一个主机目录”为例,窗口容器1的容器目录是:/home/share/Container1、窗口容器2的容器目录是:/home/share/Container2、窗口容器3的容器目录是:/home/share/Container3,以及窗口容器1、窗口容器2和窗口容器3的容器目录均映射到的主机目录是:“G:\platform-tools\container”,即可以将窗口容器1、窗口容器2和窗口容器3中执行的测试脚本的测试结果统一存储至目标主机目录“G:\platform-tools\container”下。
S204、根据目标主机目录存储的测试结果,得到桌面应用程序的测试结果。
在上述实施例的基础上,可以从目标主机目录“G:\platform-tools\container”下读取到Windows GUI桌面应用程序A的测试脚本1、测试脚本2、测试脚本3执行测试后的测试结果,以得到Windows GUI桌面应用程序A的功能1、功能2、功能3这三个功能模块的测试结果,使得能够在单台计算机(Personal Computer,简称PC)上实现对Windows GUI桌面应用程序的多个测试任务的并发测试,提高了对Windows GUI桌面应用程序软件进行并发测试效率,以及有效避免了传统方案中的资源浪费问题。
综上所述,本申请实施例提供一种桌面应用程序自动化测试方法,该方法包括:获取桌面应用程序的多个待测试脚本,多个待测试脚本包括:不同桌面应用程序的多个测试脚本,或者,同一桌面应用程序的多个测试脚本;将多个待测试脚本分别分发至多个窗口容器中,在各窗口容器中分别执行待测试脚本;根据窗口容器的容器目录与主机目录的映射关系,将目标窗口容器的测试结果存储至目标主机目录;根据目标主机目录存储的测试结果,得到桌面应用程序的测试结果。在本方案中,通过将桌面应用程序的多个待测试脚本分别分发至多个窗口容器中,并在各窗口容器中同时并发执行测试脚本,使得能够在单台计算机上实现对Windows GUI桌面应用程序的不同测试任务的并发测试,提高了对WindowsGUI桌面应用程序进行并发测试的效率,还有效避免了传统方案中的资源浪费问题。
将通过如下实施例具体讲解如何将多个待测试脚本分别分发至多个窗口容器中,在各窗口容器中分别执行待测试脚本。
图3为本申请实施例提供的另一种桌面应用程序自动化测试方法的流程示意图;可选地,如图3所示,上述步骤S202:将多个待测试脚本分别分发至多个窗口容器中,在各窗口容器中分别执行待测试脚本,包括:
S301、对多个待测试脚本进行分类,得到目标数量的脚本组,每个脚本组中包括至少一个待测试脚本。
在一种可实现的方式中,例如,可按照待测试脚本的数量对多个待测试脚本进行分类,得到目标数量的脚本组。
示例性的,待测试脚本的数量是100个,即测试脚本1、测试脚本2、......、测试脚本100,可以将这100个测试脚本分成10组,得到脚本组的数量是10,且每个脚本组中包括10个测试脚本,如第一个脚本组中包括:测试脚本1、测试脚本2、......、测试脚本10,以此类推其余9个脚本组具体包括的测试脚本,不在此一一进行说明。
在另一种可实现的方式中,例如,还可按照待测试脚本的功能信息对多个待测试脚本进行分类,得到目标数量的脚本组,每个脚本组中分别包括至少一个待测试脚本,各待测试脚本之间的功能存在关联。
示例性的,待测试脚本的数量是10个,其中,针对功能1的是测试脚本1,针对功能2的是测试脚本2,功能3的是测试脚本3,针对功能4的是测试脚本4,功能5的是测试脚本5,且功能1和功能2之间存在的某种关联,如只有在对功能1进行测试后,才可以对功能2进行测试,即测试脚本1和测试脚本2所要测试的存在一定的关联性,因此,可以将测试脚本1和测试脚本2划分为一组,还可以根据功能3和功能5之间存在的某种关联性,可以将测试脚本3和测试脚本5划分为一组,测试脚本4单独为一组,所以,得到3组目标数量的脚本组。
可选地,对多个待测试脚本进行分类,得到目标数量的脚本组:
根据待测试脚本以及允许启动的窗口容器数量,对多个待测试脚本进行分类,得到目标数量的脚本组,允许启动的窗口容器数量基于主机的资源信息以及单个窗口容器的资源占用信息确定。
其中,允许启动的窗口容器数量,也就是在单台PC上可以同时执行窗口容器的最大数量,且窗口容器中每次只能执行一个测试脚本,如果需要同时对100个测试脚本进行测试,则需要同时启动100个窗口容器。
在本实施例中,由于考虑到窗口容器是高度优化的且具有独立操作系统内核的,本身占用资源数非常小。但是Docker本身没有对窗口容器进行硬件资源的限制,当一台PC机上运行几百个窗口容器,这些窗口容器虽然互相隔离,但是底层却使用着相同的中央处理器(Central Processing Unit,简称CPU)、内存和磁盘资源。如果不对窗口容器使用的资源进行限制,那么窗口容器之间会互相影响,甚至会导致PC机的资源耗尽。
因此,可以通过对单个窗口容器进行测试,验证单个窗口容器所需要的CPU、内存、硬盘数据,然后结合PC机本身的CPU、内存、硬盘情况,评估出在该台PC机上可执行的最大窗口容器数量,最大窗口容器数量也就是允许在PC机上同时启动窗口容器的并发数。
在本实施例中,在确定了允许同时启动的窗口容器数量之后,对多个待测试脚本进行分类,以得到目标数量的脚本组。将通过如下实施例进行详细说明。
示例性的,待测试脚本是100个,允许同时启动的窗口容器数量50,若上述100个待测试脚本之间的功能不存在关联,则可以将上述100个多个待测试脚本均分成50个目标数量的脚本组,每一个脚本组中均包括2个待测试脚本。
又比如,若上述100个待测试脚本所要测试的功能之间存在某种关联,并可以将上述100个多个待测试脚本划分成50个目标数量的脚本组,每一个脚本组中包括的待测试脚本的数量可能是一个,也可能是多个。
S302、启动目标数量的窗口容器。
其中,所要启动的目标数量的窗口容器,也就是对多个待测试脚本进行分类后得到的目标数量的脚本组。
例如,为了提高对上述100个待测试脚本进行并发测试的效率,可以将同时启动50个窗口容器。
S303、将每个脚本组分别分发至一个窗口容器中,由窗口容器执行脚本组中的待测试脚本。
在上述实施例的基础上,例如,可以将上述50个脚本组中包括的多个待测试脚本打包成一个测试集包,并将打包得到的50个测试集包分别分发至待启动的器50个窗口容器中,并由这50个窗口容器执行脚本组中的待测试脚本。
Windows Container是自带powershell(是运行在windows机器上实现系统和应用程序管理自动化的命令行脚本环境)终端,可以启动powershell终端,并在powershell终端输入窗口容器执行脚本组中的待测试脚本的命令如下:
docker run-it-v主机目录:容器目录--rm microsoft/windowsservercore:ltsc2016 powershell。
其中,docker run是启动窗口容器的运行命令,-v是将主机目录:容器目录进行映射的命令,--rm是窗口容器执行完测试的释放命令。
在本实施例中,实现了对Windows GUI桌面应用程序的并行测试,提高了测试效率,同时还有效避免了传统方案中的资源浪费问题。
可选地,根据目标主机目录存储的测试结果,得到桌面应用程序的测试结果,包括:
对目标主机目录中的测试结果进行合并处理,得到桌面应用程序的测试结果。
在本实施例中,例如,还可以根据上述得到的待测试脚本的主机目录和容器目录的映射关系,在对待测试脚本执行完测试后,将某一个窗口容器中执行的多个待测试脚本的测试报告进行合并,以得到得到桌面应用程序的测试结果。
在本实施提中,若要使用Windows Container,则需要先安装Docker,为WindowsContainer提供标准的运行环境。比如,可以用Docker工具的一些命令进行搭建WindowsContainer的运行环境,比如,用Dockerfile来构建一个Windows Container镜像文件,并通过Docker pull从Windows官方获取Windows Container镜像文件,最后,可以使用Dockerrun运行创建的Windows Container。
将通过如下实施例具体讲解如何搭建Windows Container的运行环境。
图4为本申请实施例提供的又一种桌面应用程序自动化测试方法的流程示意图;可选地,如图4所示,在上述步骤S201:获取桌面应用程序的多个待测试脚本之前,还包括:
S401、搭建应用容器引擎环境,获取窗口容器镜像文件。
在本实施例中,应用容器引擎可以是指docker,docker是一个开源的应用容器引擎,具有可移植性和轻量级的特性。
例如,以ltsc2016这个版本的窗口容器镜像文件为例,可通过如下命令获取窗口容器(Windows Container)镜像文件:docker pull microsoft/windowsservercore:ltsc2016。
S402、将桌面应用程序和待测试脚本映射到窗口容器中,得到主机目录和容器目录的映射关系。
在搭建Windows Container的运行环境后,即可以确定主机目录和容器目录的映射关系。
具体的,在本实施例中,可以使用docker run启动窗口容器时,可以使用-v参数,将桌面应用程序和待测试脚本映射到窗口容器中,得到主机目录和容器目录的映射关系,这样可以方便在计算机上对桌面应用程序和桌面应用程序的多个待测试脚本进行更新。
为了便于说明,比如,以桌面应用程序映射到窗口容器中过程为例,桌面应用程序在计算机中的存储目录是:“G:\platform-tools\program”,将桌面应用程序映射到窗口容器中的“/home/share/Program”目录下,得到桌面应用程序“在主机中的存储目录”和“在窗口容器中的存储目录”之间的映射关系,即桌面应用程序的主机目录和容器目录的映射关系,这样可以方便在计算机上对桌面应用程序进行更新。
可选地,例如,基于上述获取到的Windows Container镜像文件中定义的Dockerfile,可以编译新的个性化的Windows Container镜像文件。
比如,获取到的Windows Container镜像文件中没有D盘,如果实际测试需求需要创建D盘这个盘符,则可以在Dockerfile中增加D盘,这样就可以将桌面应用程序和待测试脚本打包到镜像文件中。
示例性的,在Dockerfile中增加D盘的命令如下:
FROM microsoft/windowsservercore:ltsc2016
VOLUME["D:"]。
通常,不建议将桌面应用程序和待测试脚本打包到镜像文件中,因为一旦涉及到桌面应用程序和待测试脚本的更新,又需要重新桌面应用程序和待测试脚本打包到镜像文件中。
下述对用以执行本申请所提供的桌面应用程序自动化测试方法对应的装置及存储介质等进行说明,其具体的实现过程以及技术效果参见上述,下述不再赘述。
图5为本申请实施例提供的一种桌面应用程序自动化测试装置的结构示意图;如图5所示,该装置包括:获取模块501、分发模块502、存储模块503以及处理模块504。
获取模块501,用于获取桌面应用程序的多个待测试脚本,多个待测试脚本包括:不同桌面应用程序的多个测试脚本,或者,同一桌面应用程序的多个测试脚本;
分发模块502,用于将多个待测试脚本分别分发至多个窗口容器中,在各窗口容器中分别执行待测试脚本;
存储模块503,用于根据窗口容器的容器目录与主机目录的映射关系,将目标窗口容器的测试结果存储至目标主机目录;
处理模块504,用于根据目标主机目录存储的测试结果,得到桌面应用程序的测试结果。
可选地,分发模块502,还用于:
对多个待测试脚本进行分类,得到目标数量的脚本组,每个脚本组中包括至少一个待测试脚本;
启动目标数量的窗口容器;
将每个脚本组分别分发至一个窗口容器中,由窗口容器执行脚本组中的待测试脚本。
可选地,分发模块502,还用于:
按照待测试脚本的数量对多个待测试脚本进行分类,得到目标数量的脚本组。
可选地,分发模块502,还用于:
按照待测试脚本的功能信息对多个待测试脚本进行分类,得到目标数量的脚本组,每个脚本组中分别包括至少一个待测试脚本,各待测试脚本之间的功能存在关联。
可选地,分发模块502,还用于:
根据待测试脚本以及允许启动的窗口容器数量,对多个待测试脚本进行分类,得到目标数量的脚本组,允许启动的窗口容器数量基于主机的资源信息以及单个窗口容器的资源占用信息确定。
可选地,处理模块504,还用于:
对目标主机目录中的测试结果进行合并处理,得到桌面应用程序的测试结果。
可选地,该装置还包括:搭建模块、映射模块;
搭建模块,用于搭建应用容器引擎环境,获取窗口容器镜像文件;
映射模块,用于将桌面应用程序和待测试脚本映射到窗口容器中,得到主机目录和容器目录的映射关系。
上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
可选地,本发明还提供一种程序产品,例如计算机可读存储介质,包括程序,该程序在被处理器执行时用于执行上述方法实施例。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (6)

1.一种桌面应用程序自动化测试方法,其特征在于,包括:
获取桌面应用程序的多个待测试脚本,所述多个待测试脚本包括:不同桌面应用程序的多个测试脚本,或者,同一桌面应用程序的多个测试脚本;
将所述多个待测试脚本分别分发至多个窗口容器中,在各所述窗口容器中分别执行待测试脚本;
根据窗口容器的容器目录与主机目录的映射关系,将目标窗口容器的测试结果存储至目标主机目录;
根据所述目标主机目录存储的测试结果,得到所述桌面应用程序的测试结果;
其中,所述将所述多个待测试脚本分别分发至多个窗口容器中,在各所述窗口容器中分别执行待测试脚本,包括:
通过对单个窗口容器进行测试,验证单个窗口容器所需要的CPU、内存、硬盘数据,并结合PC机的CPU、内存、硬盘,评估出在所述PC机上可执行的最大窗口容器数量,所述最大窗口容器数量是允许在所述PC机上同时启动窗口容器的并发数;
对所述多个待测试脚本进行分类,得到目标数量的脚本组,每个脚本组中包括至少一个待测试脚本;
启动所述目标数量的窗口容器;
将每个脚本组分别分发至一个窗口容器中,由所述窗口容器执行所述脚本组中的待测试脚本;
其中,所述对所述多个待测试脚本进行分类,得到目标数量的脚本组,包括:
按照所述待测试脚本的数量对所述多个待测试脚本进行分类,得到目标数量的脚本组;
其中,所述对所述多个待测试脚本进行分类,得到目标数量的脚本组,包括:
按照所述待测试脚本的功能信息对所述多个待测试脚本进行分类,得到目标数量的脚本组,每个脚本组中分别包括至少一个待测试脚本,各待测试脚本之间的功能存在关联;
其中,所述对所述多个待测试脚本进行分类,得到目标数量的脚本组,包括:
根据所述待测试脚本以及允许启动的窗口容器数量,对所述多个待测试脚本进行分类,得到目标数量的脚本组,所述允许启动的窗口容器数量基于主机的资源信息以及单个窗口容器的资源占用信息确定。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标主机目录存储的测试结果,得到所述桌面应用程序的测试结果,包括:
对所述目标主机目录中的测试结果进行合并处理,得到所述桌面应用程序的测试结果。
3.根据权利要求1所述的方法,其特征在于,所述获取桌面应用程序的多个待测试脚本之前,还包括:
搭建应用容器引擎环境,获取窗口容器镜像文件;
将所述桌面应用程序和所述待测试脚本映射到窗口容器中,得到主机目录和容器目录的映射关系。
4.一种桌面应用程序自动化测试装置,其特征在于,所述装置包括:获取模块、分发模块、存储模块以及处理模块、评估模块、;
所述获取模块,用于获取桌面应用程序的多个待测试脚本,所述多个待测试脚本包括:不同桌面应用程序的多个测试脚本,或者,同一桌面应用程序的多个测试脚本;
所述分发模块,用于将所述多个待测试脚本分别分发至多个窗口容器中,在各所述窗口容器中分别执行待测试脚本;
所述存储模块,用于根据窗口容器的容器目录与主机目录的映射关系,将目标窗口容器的测试结果存储至目标主机目录;
所述处理模块,用于根据所述目标主机目录存储的测试结果,得到所述桌面应用程序的测试结果;
所述评估模块,用于通过对单个窗口容器进行测试,验证单个窗口容器所需要的CPU、内存、硬盘数据,并结合PC机的CPU、内存、硬盘,评估出在所述PC机上可执行的最大窗口容器数量,所述最大窗口容器数量是允许在所述PC机上同时启动窗口容器的并发数;
所述分发模块,还用于:对所述多个待测试脚本进行分类,得到目标数量的脚本组,每个脚本组中包括至少一个待测试脚本;启动所述目标数量的窗口容器;将每个脚本组分别分发至一个窗口容器中,由所述窗口容器执行所述脚本组中的待测试脚本;
所述分发模块,还用于:按照所述待测试脚本的数量对所述多个待测试脚本进行分类,得到目标数量的脚本组;
所述分发模块,还用于按照所述待测试脚本的功能信息对所述多个待测试脚本进行分类,得到目标数量的脚本组,每个脚本组中分别包括至少一个待测试脚本,各待测试脚本之间的功能存在关联;
所述分发模块,还用于:根据所述待测试脚本以及允许启动的窗口容器数量,对所述多个待测试脚本进行分类,得到目标数量的脚本组,所述允许启动的窗口容器数量基于主机的资源信息以及单个窗口容器的资源占用信息确定。
5.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1-3任一所述方法的步骤。
6.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1-3任一所述方法的步骤。
CN202110182767.0A 2021-02-07 2021-02-07 桌面应用程序自动化测试方法、装置、设备及存储介质 Active CN112965895B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110182767.0A CN112965895B (zh) 2021-02-07 2021-02-07 桌面应用程序自动化测试方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110182767.0A CN112965895B (zh) 2021-02-07 2021-02-07 桌面应用程序自动化测试方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN112965895A CN112965895A (zh) 2021-06-15
CN112965895B true CN112965895B (zh) 2023-12-08

Family

ID=76284754

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110182767.0A Active CN112965895B (zh) 2021-02-07 2021-02-07 桌面应用程序自动化测试方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN112965895B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113434426A (zh) * 2021-07-06 2021-09-24 中国银行股份有限公司 多浏览器测试方法及装置
CN114706773A (zh) * 2022-03-29 2022-07-05 网宿科技股份有限公司 自动化测试方法、设备及可读存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101553769A (zh) * 2005-10-11 2009-10-07 努雅公司 用于跟踪并监控计算机应用的系统和方法
CN102567201A (zh) * 2011-12-15 2012-07-11 南京大学 跨模型的图形用户界面测试脚本自动修复方法
CN104755899A (zh) * 2012-09-07 2015-07-01 博世汽车服务解决方案公司 诊断中心
CN110072383A (zh) * 2017-06-14 2019-07-30 成长方案技术有限责任公司 用于编程生长容器的系统及方法
CN110188296A (zh) * 2019-05-13 2019-08-30 北京百度网讯科技有限公司 应用程序内嵌页面处理方法、浏览器、设备和存储介质
CN111061741A (zh) * 2019-12-20 2020-04-24 国网山东省电力公司泰安供电公司 一种电力测试数据管理方法、系统、终端及存储介质
CN111444111A (zh) * 2020-04-15 2020-07-24 深圳市万睿智能科技有限公司 基于python的性能测试方法、装置、计算机设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11341030B2 (en) * 2018-09-27 2022-05-24 Sap Se Scriptless software test automation

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101553769A (zh) * 2005-10-11 2009-10-07 努雅公司 用于跟踪并监控计算机应用的系统和方法
CN102567201A (zh) * 2011-12-15 2012-07-11 南京大学 跨模型的图形用户界面测试脚本自动修复方法
CN104755899A (zh) * 2012-09-07 2015-07-01 博世汽车服务解决方案公司 诊断中心
CN110072383A (zh) * 2017-06-14 2019-07-30 成长方案技术有限责任公司 用于编程生长容器的系统及方法
CN110188296A (zh) * 2019-05-13 2019-08-30 北京百度网讯科技有限公司 应用程序内嵌页面处理方法、浏览器、设备和存储介质
CN111061741A (zh) * 2019-12-20 2020-04-24 国网山东省电力公司泰安供电公司 一种电力测试数据管理方法、系统、终端及存储介质
CN111444111A (zh) * 2020-04-15 2020-07-24 深圳市万睿智能科技有限公司 基于python的性能测试方法、装置、计算机设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Mobile GUI Testing Fragility: A Study on Open-Source Android Applications;R. Coppola 等;《IEEE Transactions on Reliability》;第68卷(第01期);67-90 *
基于窗口导航有向图的GUI测试覆盖准则;叶茂 等;《西南交通大学学报》;第41卷(第04期);476-480 *

Also Published As

Publication number Publication date
CN112965895A (zh) 2021-06-15

Similar Documents

Publication Publication Date Title
US9519472B2 (en) Automation of virtual machine installation by splitting an installation into a minimal installation and customization
US20100205604A1 (en) Systems and methods for efficiently running multiple instances of multiple applications
CN112965895B (zh) 桌面应用程序自动化测试方法、装置、设备及存储介质
WO2018119079A1 (en) Storage layer based orchestration of virtual machine migration
US10019598B2 (en) Dynamic service discovery
JP2006018814A (ja) 仮想マシン環境におけるエミュレートされたデバイスの開発のためのシステムおよび方法
CN111669284B (zh) OpenStack自动化部署方法、电子设备、存储介质及系统
US9164879B2 (en) Role-oriented testbed environments for use in test automation
CN113986395B (zh) 一种linux系统下应用依赖自包含技术的打包方法
US11886302B1 (en) System and method for execution of applications in a container
WO2012080262A1 (en) Software error code injection
US7698547B1 (en) Execution of a program module within both a PEI phase and a DXE phase of an EFI firmware
CN110673887A (zh) 应用程序启动方法、装置、终端设备及可读存储介质
CN111427782B (zh) 安卓动态链接库的运行方法、装置、设备及存储介质
US11656977B2 (en) Automated code checking
CN107918543B (zh) 安装包生成的方法、装置、计算机设备和存储介质
JP2018077697A (ja) 検証システムおよび検証方法
US20150186163A1 (en) Application virtualization system and method
CN115794384A (zh) 代码编译任务分配方法、装置、设备及存储介质
CN115185644A (zh) 基于容器交互式应用的检测方法、系统、设备及存储介质
CN114047933A (zh) 多开Android应用的方法、装置、设备和介质
CN113703913A (zh) 设备测试方法及装置
CN111767082A (zh) 计算芯片启动方法、装置和计算机系统
CN111338926A (zh) 补丁的测试方法、装置及电子设备
KR102360330B1 (ko) 차량의 통합제어유닛 구현 방법 및 그 장치

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