CN110162481A - 一种软件测试方法、装置、设备以及存储介质 - Google Patents
一种软件测试方法、装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN110162481A CN110162481A CN201910470070.6A CN201910470070A CN110162481A CN 110162481 A CN110162481 A CN 110162481A CN 201910470070 A CN201910470070 A CN 201910470070A CN 110162481 A CN110162481 A CN 110162481A
- Authority
- CN
- China
- Prior art keywords
- test
- execution machine
- test execution
- assignment
- service device
- 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
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000003860 storage Methods 0.000 title claims abstract description 24
- 238000012360 testing method Methods 0.000 claims abstract description 1042
- 238000013522 software testing Methods 0.000 claims abstract description 40
- 208000033748 Device issues Diseases 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 claims description 4
- 230000006399 behavior Effects 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 abstract description 3
- 230000001737 promoting effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 35
- 230000008569 process Effects 0.000 description 18
- 230000006870 function Effects 0.000 description 15
- 238000009826 distribution Methods 0.000 description 12
- 238000004590 computer program Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 238000010998 test method Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000012163 sequencing technique Methods 0.000 description 4
- 241000208340 Araliaceae Species 0.000 description 3
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 3
- 235000003140 Panax quinquefolius Nutrition 0.000 description 3
- 235000008434 ginseng Nutrition 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000027455 binding Effects 0.000 description 2
- 238000009739 binding Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000005253 cladding Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000011990 functional testing Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000000528 statistical test Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
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/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种软件测试方法、装置、设备以及存储介质,属于计算机技术领域,用于提升软件测试效率。该方法应用于软件测试系统中,软件测试系统包括测试服务器与M个测试执行机,该方法包括:测试服务器分别接收M个测试执行机上报的第一状态信息,第一状态信息用于指示测试执行机为空闲状态或者非空闲状态;测试服务器根据接收的各测试执行机的第一状态信息更新自身存储的测试执行机列表中相应测试执行机的状态;在任务队列中有测试任务待下发时,测试服务器将任务队列的测试任务依次下发给处于空闲状态的测试执行机,其中,一个测试任务下发给一个测试执行机,以使得各测试执行机执行相应测试任务对自身安装的被测软件进行测试。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种软件测试方法、装置、设备以及存储介质。
背景技术
软件测试是指在预置条件下运行系统或应用程序,从而对运行结果进行评估,以确定软件的功能性等的测试,其中,预置条件应包括正常条件和异常条件。自动化测试通常是在手动测试的基础上,通过将设计出的测试用例进行机器自动化运行,以实现自动化测试的效果。
目前在软件自动化测试时,在设置好测试任务之后,通常就将测试任务统一分配给了执行机,执行机各自执行分配给自己的测试任务。但是,这种任务分配方式实质上是单向的,执行机只能被动的接受测试任务,并且由于各种因素的制约,例如各执行机的性能可能不同或者测试任务所需时间不好预估,这样,就可能出现有的执行机已经完成了测试任务,而有的执行机还有较多测试任务未完成,因此,预先完成测试的执行机等待未完成测试的执行机的这段时间,预先完成测试的执行机的资源相当于就浪费了,使得测试所需时间较长,从而使得测试的效率较低。
发明内容
本申请实施例提供一种软件测试方法、装置、设备以及存储介质,用于提升软件测试效率。
第一方面,本申请提供了一种软件测试方法,应用于软件测试系统中,所述软件测试系统包括测试服务器与M个测试执行机,每个测试执行机上安装有被测软件,所述方法包括:
所述测试服务器分别接收所述M个测试执行机上报的第一状态信息,所述状态信息用于指示测试执行机为空闲状态或者非空闲状态;
所述测试服务器根据接收的各测试执行机的第一状态信息更新自身存储的测试执行机列表中相应测试执行机的状态;
在任务队列中有测试任务待下发时,所述测试服务器将所述任务队列的测试任务依次下发给处于空闲状态的测试执行机,其中,一个测试任务下发给一个测试执行机,以使得各测试执行机执行相应测试任务对自身安装的被测软件进行测试。
本申请实施例中,各个测试执行机会主动上报自身的状态,从而测试服务器能够知晓测试执行机当前的状态,即测试执行机是否空闲,进而在分配测试任务时,将测试任务依次分配给空闲的测试执行机,且测试服务器每一次仅会为一个测试执行机下发一个测试任务,当这个测试任务执行完成时,该测试执行机显然就恢复到了空闲状态,那么测试服务器则可以为其分配下一个测试任务,这样,即使出现完成测试的测试执行机等待未完成测试的测试执行机,那么也至多等待一个测试任务的时间,因此本申请实施例的测试方法的任务分配方式更为灵活,能够更为充分利用测试执行机的资源,缩短测试等待时间,降低资源浪费,进而测试效率更高。
可选的,所述M个测试执行机上安装有N种类型的被测软件,所述N种类型的被测软件组成被测软件系统,其中,每个测试执行机上安装一个被测软件,N为大于或者等于2的正整数;则所述测试服务器将任务队列的测试任务依次下发给处于空闲状态的测试执行机,包括:
针对每一个测试任务,所述测试服务器根据所述测试任务指示的被测软件的类型,从处于空闲状态的测试执行机中选择第一测试执行机,并将所述测试任务下发给所述第一测试执行机,其中,所述第一测试执行机安装有所述测试任务的指示的类型的被测软件。
本申请实施例中,在被测对象为多种类型组成的软件系统时,考虑到不同测试执行机上安装的被测软件有可能不同,而不同测试任务可能是针对特定类型的被测软件的,因此,测试服务器在进行任务分配时,还会考虑被测软件的类型,即选择的测试执行机需要安装有测试任务针对的特定类型的被测软件,这样,才能使得测试任务能够被正确的执行,达到测试效果。
可选的,所述方法还包括:
所述测试服务器接收新启动的第二测试执行机上报的第二状态信息,所述第二状态信息用于指示所述第二测试执行机已启动且处于空闲状态;
所述测试服务器将所述第二测试执行机添加至测试执行机列表中,并在所述测试执行机列表中标记所述第二测试执行机的状态为空闲状态。
本申请实施例中,在有新启动的测试执行机时,测试服务器会将其添加到列表中,并标记为空闲状态,这样,在测试任务分配时,则可以将新启动的测试执行机作为可选的测试执行机,为其分配测试任务,加快测试的整体进度,进一步提升测试效率。
可选的,所述方法还包括:
所述测试服务器响应测试任务创建指令,显示任务创建界面;所述任务创建界面包括至少一项测试参数的可操作项;
所述测试服务器根据用户在所述任务创建界面中对所述可操作项进行的至少一个操作,创建新的测试任务,所述至少一个操作用于为所述至少一项测试参数设置对应参数值。
可选的,所述至少一项测试参数包括如下参数中的任意一种或者任意组合:
所述测试任务需执行的测试用例包;
所述测试任务包括的测试用例执行所需的运行环境;
所述测试任务对应的测试管理用户;
所述测试任务对应的测试对象;
所述测试任务对应的被测软件类型。
本申请实施例中,将多种信息或者资源在测试服务器中统一进行管理,在创建新的任务时,将各种信息或者资源作为可操作项进行选择。例如针对测试用例包,由于测试用例包统一在服务器上进行管理,在下发测试任务时一并下发给测试执行机,相较于现有技术中测试用例由执行机管理的方案,能够提升测试执行机对测试用例的兼容范围。
可选的,在所述测试服务器将任务队列的测试任务依次下发给处于空闲状态的测试执行机之后,所述方法还包括:
所述测试服务器将下发了测试任务的测试执行机的状态标记为非空闲状态。
本申请实施例中,在为一个测试执行机分配测试任务之后,则会将其的状态标记为非空闲状态,这样,下一次分配测试任务时,则可以将该测试执行机排除在外,不会为其继续分配测试任务,从而避免单个测试执行机上待执行的测试任务较多,出现其他测试执行机空闲等待较长的问题,进而提升测试效率。
可选的,在所述测试服务器将任务队列的测试任务依次下发给处于空闲状态的测试执行机之后,所述方法还包括:
所述测试服务器接收测试执行机返回的测试结果,所述测试结果为所述测试执行机执行所述测试服务器下发的测试任务的执行结果;
所述测试服务器将所述测试结果推送给所述测试任务对应的测试管理用户。
本申请实施例中,在一个测试任务完成后,测试服务器会将测试结果推送给该测试任务的相关用户,这样,一旦测试完成,用户可以及时掌握测试结果,且用户无需值守等待测试完成,从而节省用户的时间。
第二方面,本申请提供一种软件测试方法,应用于软件测试系统中,所述软件测试系统包括测试服务器与M个测试执行机,每个测试执行机上安装有被测软件,所述方法包括:
第一测试执行机接收所述测试服务器下发的测试任务,其中,所述第一测试执行机为所述M个测试执行机中的任一处于空闲状态的测试执行机;
第一测试执行机执行所述测试任务,并在所述测试任务执行完成后,向所述测试服务器反馈测试结果;
第一测试执行机向所述测试服务器上报第一状态信息,以使得测试服务器根据所述第一状态信息更新自身存储的测试执行机列表中所述第一测试执行机的状态;其中所述第一状态信息用于指示所述第一测试执行机处于空闲状态或者非空闲状态。
本申请实施例中,测试执行机在一个测试任务执行完成后,就会主动上报自身的状态,从而测试服务器能够知晓测试执行机当前的状态为空闲,那么测试服务器则可以为其分配下一个测试任务,这样,能够更为充分利用测试执行机的资源,缩短测试等待时间,降低资源浪费,进而测试效率更高。
第三方面,本申请提供一种软件测试装置,应用于软件测试系统中,所述软件测试系统包括测试服务器与M个测试执行机,每个测试执行机上安装有被测软件,所述装置包括:
第一接收单元,用于分别接收所述M个测试执行机上报的第一状态信息,所述第一状态信息用于指示测试执行机为空闲状态或者非空闲状态;
状态更新单元,用于据接收的各测试执行机的第一状态信息更新自身存储的测试执行机列表中相应测试执行机的状态;
任务下发单元,用于在任务队列中有测试任务待下发时,将所述任务队列的测试任务依次下发给处于空闲状态的测试执行机,其中,一个测试任务下发给一个测试执行机,以使得各测试执行机执行相应测试任务对自身安装的被测软件进行测试。
可选的,所述M个测试执行机上安装有N种类型的被测软件,所述N种类型的被测软件组成被测软件系统,其中,每个测试执行机上安装一个被测软件,N为大于或者等于2的正整数;则所述任务下发单元,具体用于:
针对每一个测试任务,根据所述测试任务指示的被测软件的类型,从处于空闲状态的测试执行机中选择第一测试执行机,并将所述测试任务下发给所述第一测试执行机,其中,所述第一测试执行机安装有所述测试任务的指示的类型的被测软件。
可选的,所述第一接收单元,还用于接收新启动的第二测试执行机上报的第二状态信息,所述第二状态信息用于指示所述第二测试执行机已启动且处于空闲状态;
所述状态更新单元,还用于将所述第二测试执行机添加至测试执行机列表中,并在所述测试执行机列表中标记所述第二测试执行机的状态为空闲状态。
可选的,所述装置还包括任务创建单元,用于:
响应测试任务创建指令,显示任务创建界面;所述任务创建界面包括至少一项测试参数的可操作项;
根据用户在所述任务创建界面中对所述可操作项进行的至少一个操作,创建新的测试任务,所述至少一个操作用于为所述至少一项测试参数设置对应参数值。
可选的,所述至少一项测试参数包括如下参数中的任意一种或者任意组合:
所述测试任务需执行的测试用例包;
所述测试任务包括的测试用例执行所需的运行环境;
所述测试任务对应的测试管理用户;
所述测试任务对应的测试对象;
所述测试任务对应的被测软件类型。
可选的,所述状态更新单元,还用于:将下发了测试任务的测试执行机的状态标记为非空闲状态。
可选的,所述装置包括推送单元;
所述第一接收单元,还用于接收测试执行机返回的测试结果,所述测试结果为所述测试执行机执行所述测试服务器下发的测试任务的执行结果;
所述推送单元,用于将所述测试结果推送给所述测试任务对应的测试管理用户。
第四方面,本申请提供一种软件测试装置,应用于软件测试系统中,所述软件测试系统包括测试服务器与M个测试执行机,每个测试执行机上安装有被测软件,所述装置包括:
第二接收单元,用于接收所述测试服务器下发的测试任务;
执行单元,用于执行所述测试任务;
发送单元,用于在所述测试任务执行完成后,向所述测试服务器反馈测试结果;以及,向所述测试服务器上报第一状态信息,以使得测试服务器根据所述第一状态信息更新自身存储的测试执行机列表中所述软件测试装置所在的测试执行机的状态;其中所述第一状态信息用于指示所述软件测试装置所在的测试执行机处于空闲状态或者非空闲状态。
第五方面,本申请提供一种软件测试系统,所述软件测试系统包括测试服务器与M个测试执行机,每个测试执行机上安装有被测软件;
其中,所述测试服务器用于执行如第一方面所述的方法,以及所述M个测试执行机中任一测试执行机用于执行如第二方面所述的方法,以进行被测软件的测试。
第六方面,本申请提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面或者第二方面所述的方法。
第七方面,提供一种计算机可读存储介质,存储有处理器可执行指令,所述处理器可执行指令用于执行如第一方面或者第二方面所述的方法。
本申请实施例中,各个测试执行机会主动上报自身的状态,从而测试服务器能够知晓测试执行机当前的状态,即测试执行机是否空闲,进而在分配测试任务时,将测试任务依次分配给空闲的测试执行机,且测试服务器每一次仅会为一个测试执行机下发一个测试任务,当这个测试任务执行完成时,该测试执行机显然就恢复到了空闲状态,那么测试服务器则可以为其分配下一个测试任务,这样,即使出现完成测试的测试执行机等待未完成测试的测试执行机,那么也至多等待一个测试任务的时间,因此本申请实施例的测试方法的任务分配方式更为灵活,能够更为充分利用测试执行机的资源,缩短测试等待时间,降低资源浪费,进而测试效率更高。
附图说明
图1为本申请实施例提供的应用场景示意图;
图2为本申请实施例提供的测试架构示意图;
图3为本申请实施例提供的软件测试方法的流程示意图;
图4为本申请实施例提供的推送测试结果的显示界面示意图;
图5为本申请实施例提供的测试服务端的首页的显示示意图;
图6为本申请实施例提供的用例管理功能的显示页面示意图;
图7为本申请实施例提供的用例包的详情页面的显示示意图;
图8为本申请实施例提供的测试用例的详情页面的显示示意图;
图9为本申请实施例提供的用例拓扑的详情页面的显示示意图;
图10为本申请实施例提供的创建任务的页面的显示示意图;
图11为本申请实施例提供的测试任务的管理页面的显示示意图;
图12为本申请实施例提供的查看测试报告页面的显示示意图;
图13为本申请实施例提供的服务器管理的页面示意图;
图14为本申请实施例提供的执行机管理的页面示意图;
图15为本申请实施例提供的一种软件测试装置的一种结构示意图;
图16为本申请实施例提供的另一种软件测试装置的一种结构示意图;
图17为本申请实施例提供的计算机设备的一种结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。且在本申请实施例的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
下面介绍本申请实施例的技术背景。
自动化测试通常是在手动测试的基础上,通过将设计出的测试用例进行“机器自动化”实现。测试用例一般是将软件的某个事件拆分成预置条件、执行动作以及预期结果,然后将实际的测试结果和预期结果进行对比,从而分析出此事件是否存在错误,或是否与设计初衷吻合。
目前,在软件自动化测试时,在设置好测试任务之后,通常就将测试任务统一分配给了执行机,执行机各自执行分配给自己的测试任务。但是,这种任务分配方式实质上是单向的,执行机只能被动的接受测试任务,这样,给某台执行机分配一系列测试任务时,必须由该执行机顺序或并发的完成这些指派的任务,也就是测试任务和执行机存在着绑定关系。如果是多台执行机的情况下,在没有把控好任务分配或是无法预估任务执行时长的情况下,则会出现部分执行机空闲,而部分执行机仍有很多的任务需要完成,这将严重拉长整个测试周期,导致测试效率较低。
此外,上述的分配方式由于测试任务分配完成后,就无法对测试任务的分配进行调整了,使得若是动态增加了执行机后,由于任务已经分配完了,也无法为新增的执行机分配测试任务,使得新增的执行机的资源就被浪费了,降低了测试效率。
鉴于此,本申请实施例提供一种软件测试方法,在该方法中,各个测试执行机会主动上报自身的状态,从而测试服务器能够知晓测试执行机当前的状态,即测试执行机是否空闲,进而在分配测试任务时,将测试任务依次分配给空闲的测试执行机,且测试服务器每一次仅会为一个测试执行机下发一个测试任务,当这个测试任务执行完成时,该测试执行机显然就恢复到了空闲状态,那么测试服务器则可以为其分配下一个测试任务,这样,即使出现完成测试的测试执行机等待未完成测试的测试执行机,那么也至多等待一个测试任务的时间,因此本申请实施例的测试方法的任务分配方式更为灵活,能够更为充分利用测试执行机的资源,缩短测试等待时间,降低资源浪费,进而测试效率更高。
下面对本申请实施例的技术方案能够适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本申请实施例而非限定。在具体实施过程中,可以根据实际需要灵活地应用本申请实施例提供的技术方案。
请参见图1,为本申请实施例的适用的一种应用场景。在该场景中,可以包括测试服务器101和M个测试执行机102,即图1所示的测试执行机102~1至102~M,M为正整数,对于M的值可以根据实际需求进行设置,本申请实施例并不进行限制。
测试服务器101上可以安装测试服务端,测试服务端可以用于对测试进行全面的管理,例如测试任务的创建、测试任务的分发、测试结果的整理、测试报告的展示以及测试所需资源的管理等均可以通过测试服务端来实现。
测试服务器101可以包括一个或多个处理器1011、存储器1012以及与测试执行机102交互的I/O接口1013等。此外,测试服务器101还可以配置数据库1014和显示面板1015,数据库1014可以用于存储测试所需的资源信息以及测试记录等信息,显示面板1015则可以用于必要信息的显示,例如测试服务端的显示页面以及测试报告的显示等。其中,测试服务器101的存储器1012中可以存储本申请实施例提供的测试服务器101侧执行的软件测试方法的程序指令,这些程序指令被处理器1011执行时能够用以实现本申请实施例提供的软件测试方法的步骤。
测试执行机102可以包括多个,如图1中的测试执行机102~1至102~M,这里以一个测试执行机102为例进行介绍,在测试执行机102上可以安装测试客户端与被测软件,各测试执行机102上的测试客户端与测试服务端即可以构成客户端/服务端(Client/Server,C/S)架构,并遵循C/S架构通信的机制,实现测试客户端与测试服务端之间的交互。其中,测试客户端主要用于获取测试服务端下发的测试任务,并执行测试任务,以对被测软件进行测试。
测试执行机102可以包括一个或多个处理器1021、存储器1022、与测试服务器101交互的I/O接口1023等。其中,终端102的存储器1022中可以存储实现测试执行机102侧执行的软件测试方法的程序指令,这些程序指令被处理器1021执行时能够用以实现软件测试方法的步骤。其中,处理器1021~1表示为测试执行机102~1的处理器,处理器1021~M表示为测试执行机102~M的处理器,其余器件的表示方法以此类推。
本申请实施例中,测试服务器101为具有足够计算能力的服务器。在具体实施过程中,可以根据测试需求的计算资源选择适当大小的服务器。测试执行机102可以通过物理机来实现,也可以通过虚拟机(Virtual Machine)来实现。其中,若测试执行机102通过虚拟机实现时,测试执行机102可以与测试服务器101为同一设备,即测试服务器101的计算资源足够充足,除了完成测试服务器101本身的功能之外,还可以预留出充足资源用于虚拟出M台虚拟机作为测试执行机102;或者,测试执行机102为虚拟机时,还可以为布置在与测试服务器101不同的另一服务器上,该服务器例如可以为被测软件需要布置的产品服务器,或者也可以为不同于产品服务器的服务器。
测试服务器101与测试执行机102之间可以通过一个或者多个网络103进行通信连接。该网络103可以是有线网络,也可以是无线网络,例如无线网络可以是移动蜂窝网络,或者可以是无线保真(WIreless-Fidelity,WIFI)网络,当然还可以是其他可能的网络,本申请实施例对此不做限制。
请参见图2所示,为本申请实施例的适用的一种测试架构示意图。下面结合该测试架构对本申请实施例的测试方法进行简单的描述。
测试服务器上安装有测试服务端2011,或称为测试管理平台,测试执行机上安装有测试客户端2021,在测试执行机启动之后,测试客户端2021则会运行,并向测试服务器上报自身的状态,即自身处于在线且当前处于空闲状态,测试服务器上的测试服务端2011则会将该测试执行机标记为空闲状态。用户可以通过测试服务端2011创建测试任务,测试服务端2011则可以遍历所有状态为空闲的执行机,逐一分配测试任务。测试客户端2021获取到测试任务之后,则会基于测试任务中携带的测试用例对被测软件2022进行测试,并获取测试结果,再将测试结果返回给测试服务端2011,测试服务端2011可以对测试结果进行一定处理,并存储到数据存储模块2013中,同时,测试服务端2011还能通过图形界面2012对测试结果进行展示。此外,测试服务端2011还可以将测试完成的测试执行机重新标记为空闲状态,使得下一个测试任务到来时能够为调度该测试执行机进行处理。
其中,图2中所示的测试服务器例如可以为图1中所示的测试服务器101,图2中所示的测试执行机例如可以为图1中所示的任一测试执行机102。
下面结合附图介绍本申请实施例提供的技术方案,在下面的介绍过程中,以将本申请提供的技术方案应用在图1所示的应用场景中为例。
请参见图3,本申请一实施例提供一种软件测试方法,该方法的流程描述如下:
步骤301:测试执行机向测试服务器上报第二状态信息,测试服务器接收第二状态信息。
本申请实施例中,在开始测试之前,需要做好测试准备。具体而言,需要启动测试执行机,并启动测试执行机上的测试客户端,进而测试客户端则会向测试服务器上报第二状态信息,第二状态信息用于指示测试执行机已启动且处于空闲状态,即向测试服务器通知该测试执行机已经启动,处于在线状态,且由于还未曾分配测试任务,因此该测试执行机当前为空闲状态。
此外,在开始对被测软件进行测试之前,还需要在测试执行机上安装好被测软件。
具体的,各个测试执行机上安装的被测软件可以是完全相同的,即该测试是针对于一个类型的被测软件进行的。
具体的,各个测试执行机上安装的被测软件还可以是多种类型的,例如,M个测试执行机上安装有N种类型的被测软件,这N种类型的被测软件组成被测软件系统。
例如,被测软件系统可以为教学软件,例如云课堂软件,则被测软件系统可以包括由老师使用的教学端和由学生使用的学生端两种类型的被测软件,一般而言,教学端的数量一般为一个,学生端的数量一般为多个,因此为了模拟实际的使用场景,则可以在一个测试执行机上安装教学端,剩余的测试执行机上安装学生端。
步骤302:测试服务器将测试执行机添加至测试执行机列表中,并标记为空闲状态。
本申请实施例中,当测试服务器接收到有测试执行机上报的第二状态信息时,即表明该测试执行机已启动完成,并做好开始测试的准备,因此测试服务器可以将该测试执行机添加至测试执行机列表中,并将该测试执行机的状态标记为空闲状态。其中,测试执行机列表中包括的测试执行机为可以参与测试的测试执行机,即已在线的测试执行机。
这样,将测试执行机添加至测试执行机列表中之后,后续有测试任务需要分配时,则可以将测试任务分配给测试执行机列表中空闲状态的测试执行机。
本申请实施例中,测试执行机除了上报第二状态信息之外,还可以上报其他的信息,例如该测试执行机上安装的被测软件的类型、软件版本以及测试执行机的配置信息等信息,当然,除了上述信息之外,测试执行机还可以上报其他可能的信息,本申请实施例对此不做限制。
步骤303:响应于用户的操作,测试服务器创建测试任务。
本申请实施例中,创建的测试任务都会进入任务队列中,等待下发。由于后续会结合测试服务端的显示界面会对创建测试过程的操作进行描述,因此先不进行赘述。
具体的,任务队列的排序方式可以是按照测试任务创建的先后顺序进行排序,也可以按照测试任务的优先级进行排序。
需要声明的是,步骤301~步骤302与步骤303的过程并没有实质上的先后顺序,也就是说,在实际应用中,步骤301~步骤302的过程可以与步骤303的过程同时执行,也可以是先后顺序执行,例如步骤301~步骤302的过程先执行,或者步骤303的过程先执行,本申请实施例对此不做限制。
步骤304:测试服务器将任务队列的测试任务依次下发给处于空闲状态的测试执行机,测试执行机接收测试任务。
本申请实施例中,在任务队列中有测试任务等待下发时,测试服务器可以确定是否有处于空闲状态的测试执行机,若是有,则依次将测试任务下发给处于空闲状态的测试执行机。其中,一个测试任务下发给一个测试执行机。当然,在第一次下发测试任务时,所有的测试执行机均是处于空闲状态的,即可以选择其中一个测试执行机下发即可。针对一个测试任务而言,测试服务器确定有多个测试执行机处于空闲状态时,测试服务器则可以随机选择一个测试执行机用于执行该测试任务,或者,测试服务器还可以按照测试执行机的排序选择第一个测试执行机用于执行该测试任务。
具体的,测试服务器可以遍历测试执行机列表中的测试执行机,以确认是否有处于空闲状态的测试执行机。
示例性的,任务队列中有10个测试任务待下发,且当前有5个测试执行机处于空闲状态时,则测试服务器则可以依次将前5个测试任务分别下发给这5个测试执行机,例如,将任务队列中的第1个测试任务下发给第1个处于空闲状态的测试执行机,第2个测试任务下发给第2个处于空闲状态的测试执行机,依次类推。而剩余的5个测试任务则继续等待,直至有空闲的测试执行机出现。
本申请实施例中,当被测对象为被测软件系统时,即测试执行机上的被测软件可能为不同类型的被测软件时,测试服务器在下发测试任务时,就需要考虑测试任务指示的被测软件的类型,与测试执行机上安装的被测软件的类型是否匹配,只有在匹配时,测试执行机才能够正确的执行测试任务。因此,当被测对象为被测软件系统时,针对任务队列中的每一个测试任务,测试服务器需要根据测试任务指示的被测软件的类型,从处于空闲状态的测试执行机中选择第一测试执行机,第一测试执行机安装有所述测试任务的指示的类型的被测软件,再将所述测试任务下发给第一测试执行机,这样,才能够使得测试任务指示的被测软件的类型,与测试执行机上安装的被测软件的类型相匹配,从而使得测试过程能够正确的进行。
本申请实施例中,在测试服务器为一个测试执行机下发了测试任务后,则可以将该测试执行机的状态标记为非空闲状态,这样,下一次分配测试任务时,则可以将该测试执行机排除在外,不会为其继续分配测试任务,从而避免单个测试执行机上待执行的测试任务较多,出现其他测试执行机空闲等待较长的问题,进而提升测试效率。
步骤305:测试执行机执行测试任务。
本申请实施例中,测试任务中可以携带该测试任务所需的测试用例包,测试用例包中包括对被测软件进行测试所需的操作指令,测试执行机执行测试用例包中的操作指令则可以对被测软件进行测试。
步骤306:测试执行机向测试服务器上报第一状态信息,测试服务器接收第一状态信息。
本申请实施例中,测试执行机执行测试任务完成后,则该测试执行机重新恢复为空闲状态,则测试执行机可以向测试服务器上报第一状态信息,以通知测试服务器自身当前的状态。当然,除了在执行完成测试任务之后,测试执行机在其他时机也可以向测试服务器上报第一状态信息,例如在执行测试任务的过程中。第一状态信息用于指示测试执行机的状态为空闲状态或者非空闲状态。
步骤307:测试服务器基于第一状态信息更新自身存储的测试执行机列表中相应测试执行机的状态。
测试服务器接收到第一状态信息之后,根据第一状态信息指示的测试执行机的状态更新测试服务器中存储的该测试执行机侧状态。例如测试服务器中存储的该测试执行机的状态为非空闲状态,第一状态信息指示该测试执行机为空闲状态,则测试服务器修改自身存储的该测试执行机的状态为空闲状态。这样,在任务队列有测试任务待下发时,该测试执行机即可以作为可选的执行机,测试服务器可以为其继续分配测试任务,充分利用了各个测试执行机的资源,减少测试执行机的空闲等待时间,提升资源利用率,进而提升测试效率。
在实际应用中,测试服务器更新该测试执行机的状态,且更新后的状态为空闲状态之后,则测试服务器又可以重新为其分配新的测试任务,即又重复执行步骤305~307的过程,直至任务队列被清空,或者整个测试完成。
本申请实施例中,图3对应部分的实施例是一个测试执行机为例进行描述的,但在实际应用中,测试执行机的数量是较多的,但是每一个测试执行机与测试服务器的交互过程是类似的,即每一个测试执行机与测试服务器的交互过程均如图3所示。
本申请实施例中,为了加快测试进度,在测试过程中,还可以增加测试执行机。在增加的第二测试执行机启动,并在第二测试执行机上的测试服务端运行之后,则可以向测试服务器发送第二状态信息,以通知测试服务器第二测试执行机已启动且处于空闲状态,那么测试服务器则可以将第二测试执行机添加至测试执行机列表中,并在测试执行机列表中标记第二测试执行机的状态为空闲状态,这样,测试服务器就可以将任务队列中的测试任务分配给第二测试执行机,加速测试任务的完成,提升测试效率。
本申请实施例中,测试执行机执行测试任务完成后,还可以将测试结果返回给测试服务器。其中,测试执行机可以将第一状态信息和测试结果同时发送给测试服务器,例如,测试执行机可以将第一状态信息与测试结果携带在同一消息中发送给测试服务器;或者,测试执行机可以将第一状态信息和测试结果分别发送给测试服务器,例如可以将第一状态信息与测试结果携带在不同消息中发送给测试服务器,且这条消息的发送时机可以相同,也可以不同。
测试服务器接收到测试结果之后,可以对测试结果进行一定的整理,以形成测试报告。此外,为了使得测试相关人员及时的获取测试结果,测试服务器还可以在获取测试结果之后,将测试结果推送给与测试任务对应的测试管理用户,这样,测试相关人员无需值守等待测试完成,也可以很及时的获取到测试结果,节省测试相关人员的时间。其中,测试管理用户可以是该测试任务的测试人员,这样,负责人可以及时了解测试结果;或者,测试管理用户还可以是负责整体测试的测试主管,这样,测试主管可以把握测试进度,从而为测试人员分配任务。
具体的,测试服务器还可以接入企业常用的既时通讯软件,从而直接将测试结果推送给既时通讯软件中相应的测试管理用户。例如既时通讯软件可以为企业微信,如图4所示,为通过公众号的方式推送测试结果的显示界面示意图,测试服务器可以将包括测试结果的文件通过微信公众号的方式进行推送,以便相关人员无需人工值守,也能实时掌握自动化测试结果。
下面将结合附图对本申请实施例提供的测试服务器的测试服务端进行介绍。
本申请实施例中,测试服务端,或称测试管理平台,以一种平台化的方式,对整个测试过程进行管理,如图5所示,为测试服务端的首页的显示示意图,其中示出了测试服务端的几种管理功能,例如用例管理、任务管理、资源管理以及测试报告分析等功能,下面针对具体的管理功能进行介绍。
用例管理
本申请实施例中,将软件测试所需的测试工具和/或测试脚本以用例包的形式在平台上存放,测试人员只需要根据用例包名称即可查看该用例包覆盖的测试范围以及测试目的,需要使用时,只需在创建自动化任务的时候调用相应的用例包,即可完成对应的自动化测试。如图5所示,用例管理可以包括用例包管理和用例拓扑管理。
具体的,用例管理功能主要用于对测试用例包进行管理。通过用例管理功能的显示页面,测试人员可以自由的将测试用例进行组合,将分散的测试用例及相应的测试脚本组合成单独的用例包,以供后续创建测试任务时直接调用,增加了测试任务安排的灵活性。如图6所示,为用例管理功能的显示页面,其中,能够查看到当前已创建的用例包,以及各用例包的相关信息,例如所包括的测试用例总数,以及各种用例的数量等。以用例包名称为“WEB自动上下课”的用例包为例,该用例包所针对的产品类型为云课堂,即被测软件为云课堂中的教学端或者学生端,该用例包所包括的测试用例的数量为16个,各级别的测试用例分别为“0”、“7”、“8”和“1”个,其中,类型为功能测试的测试用例数量为“8”个,类型为异常测试的测试用例数量为“5”个,该用例包的操作可以包括“查看”操作。此外,当选中该显示页面中的一个或者多个用例包时,还能对其进行一些操作,例如对每一行用例包描述前的选中按钮进行操作,即图6中所示的位于每一行前面的小圆圈,即可选中想要操作的用例包,再通过该显示页面上的操作按钮,例如“修改”或者“删除”操作按钮,即可对选中的用例包进行相应的操作。
本申请实施例中,在用例管理功能的显示页面上,可以查看各用例包的部分相关信息,若是想要查看各用例包的详细信息,还可以对各用例包对应的“查看”按钮进行操作,从而进入用例包的详细信息页面。如图7所示,为用例包的详情页面的显示示意图,在该显示页面上,可以查看到一个用例包中包括的各个测试用例的相关信息,例如图7所示的“用例编号”、测试用例对应的“测试模块”、“用例标题”、测试用例的“前置条件”、测试用例的“步骤”以及测试用例的“预期结果”等信息。
本申请实施例中,若是想要查看各测试用例的详细信息,还可以对各测试用例对应的“查看”按钮进行操作,从而进入测试用例的详细信息页面。如图8所示,为测试用例的详情页面的显示示意图,在图7所示的显示页面中,由于各栏宽度限制,部分信息被隐藏,因此在该图8所示的详情页面上,则可以查看到被隐藏的所有信息。如在图7中“前置条件”仅能查看到“服务器上每…”,无法知晓全部信息,而在图8所示的详情页面中,则可以查看到“服务器上每个模式都存在启动的镜像”完整的信息,需要声明的是,这里的服务器具体是指产品服务器,例如云课堂对应的产品服务器,而并非本申请实施例的测试服务器。其中,测试脚本是已实现并封装好的完整脚本或者工具,测试服务端可通过统一的调用方式进行调用,更为方便。
具体的,针对不同的自动化测试任务,往往测试环境也要随着测试任务而变化,因此本申请实施例还对测试任务所需的用例拓扑,即测试环境进行管理,通过用例拓扑管理,可以将不同测试场景进行分类,后续创建任务时可直接进行调用,更加方便快捷。如图9所示,为用例拓扑的详情页面的显示示意图,在该显示页面上,可以查看到各用例拓扑的相关信息,例如图9所示的“用例拓扑名称”、用例拓扑对应的“产品类型”、用例拓扑对应的“主控服务器”以及“部署类型”等信息。例如,用例拓扑名称为“云课堂测试拓扑作业空间”的测试拓扑,其针对的产品类型为云课堂,也就是说,当测试任务在这种测试拓扑下运行时,被测软件为云课堂对应的软件,且该测试拓扑的主控服务器的互联网协议地址(InternetProtocol,IP)为“172.21.175.226”,该测试拓扑未有对应的被控服务器,需要声明的是,这里的服务器具体是指产品服务器,例如云课堂对应的产品服务器,而并非本申请实施例的测试服务器,以及,该测试拓扑的部署类型为“云课堂-集群模式”。
任务管理
本申请实施例中,任务管理是指将自动化测试任务以可视化对象的方式在测试服务端上创建并存档,用户通过测试服务端页面可以进行创建、查看、修改或者删除等对测试任务的操作,并且对每一项任务可以单独启动、停止以及查看报告。任务管理可以包括测试任务管理以及创建测试任务两部分。
具体的,在创建测试任务时,用户可以对“创建”按钮进行操作,测试服务端即可获取到用户的测试任务创建指令,并进行响应,以在测试服务端上显示任务创建界面,在任务创建界面中,可以包括至少一项测试参数的可操作项。
其中,至少一项测试参数包括如下参数中的任意一种或者任意组合:
测试任务需执行的测试用例包,用户可以从已有的测试用例包中进行选择该测试任务所需的测试用例包;
测试任务包括的测试用例执行所需的运行环境,即测试拓扑,同样的,用户可以从已有的测试拓扑中进行选择该测试任务所需的测试拓扑;
测试任务对应的测试管理用户,为及时通知测试相关人员,在创建测试任务时就可以选择测试任务对应的测试管理用户,这样,在测试任务完成之后,则会自动将测试结果推送给该测试管理用户;
测试任务对应的测试对象,由于被测对象可以有多个,例如上述图示中测试对象包括“云课堂”和“云办公”这两个测试对象,因此需要指定该测试任务的测试对象;
测试任务对应的被测软件类型,由于不同测试对象可能有多种类型的被测软件,例如云课堂包括的教学端和学生端,因此,需要指定该测试任务的被测软件类型。
在用户在任务创建界面中对至少一项测试参数的可操作项进行操作之后,测试服务端可以获取到用户的至少一个操作,至少一个操作用于为所述至少一项测试参数设置对应参数值,并基于操作的指示,创建新的测试任务。也就是说,用户可以在任务创建界面中,针对每一项测试参数选择好相对应的参数值,例如选择测试任务所需的测试用例包,以及测试任务所需的测试拓扑等,确认后即可生成新的测试任务,由于测试服务端对各项测试参数都进行了统一的管理,因此使得创建任务更为方便快捷。
在进行测试任务的创建时,可以从上述用例管理部分介绍的测试用例包和用例拓扑中进行选择,且多个用例包可灵活进行组合,以满足各种自动化测试任务需求,当一个测试任务中需要执行的测试用例包确定了,则该测试任务的测试范围就确定了。
如图10所示,为创建任务的页面的显示示意图。可以看到,用户可以选择测试任务针对的产品类型,即测试对象,以及设置测试任务的任务名称。其中,“执行用例包”列为测试任务所需执行的测试用例包,“拓扑名称”列为测试任务所需的测试拓扑,“执行版本”列为被测软件的版本号,“执行服务器”列为被测软件对应的产品服务器。
具体的,对于已经构建好的测试任务,通过测试服务端可以对其进行管理和查看。如图11所示,为测试任务的管理页面的显示示意图。在该显示页面中,可以总览所有测试任务的当前状态、用例总数以及创建时间等全局信息。以任务名称为“云办公认证管理”的测试任务,该测试任务的测试对象为云办公,该测试任务的用例拓扑未“办公RCD”,测试服务端为其分配的测试执行机的IP地址为“172.21.120.44”,该测试任务需要执行的用例包名称为“云办公-web认证管理”,包括的测试用例数量为74个,当前该测试任务的任务状态为“任务停止”,任务类型为“重跑任务”,该测试任务的主控服务器的IP地址为“172.21.195.79”,创建时间为“2019-4-14 02:26:03”,可执行的操作包括“重测”和“查看”操作。
其中,任务类型、任务状态以及操作是相关的,例如,测试任务被中止后,该测试任务的任务类型则会变为“重跑任务”;测试任务被中止后,可进行的操作则为“重测”操作,测试人员选择重测操作之后,该测试任务则可进行重跑;或者,测试任务在等待或者正在测试中时,可进行的操作则为“停止”操作,测试人员选择停止操作之后,该测试任务则会被中止。
对于测试成功的测试任务,可以查看该测试任务的测试报告,即该任务对应的操作可以包括“查看报告”操作,而未成功的测试任务,例如任务中止或者正在测试中的测试任务,因为还未生成测试报告,因此该任务对应的操作未包括“查看报告”操作。如图12所示,为查看测试报告页面的显示示意图。在该显示页面中,可以查看测试任务完成后生成的测试报告,从而更直观的了解该功能的测试结果,例如可以查看测试耗时、测试结果汇总以及测试结果明细”等信息。
资源管理
本申请实施例中,自动化测试,用来代替人工的机器是必不可少的,对于机器的管理一向是复杂不易的,因为设备一旦缺乏专用管理,则会由于流动性使用而很难定位其网络信息。因此,本申请实施例中,将替代人工进行测试的机器作为一种资源在测试服务端中进行统一管理。当然,本申请实施例中的资源并不限于及其资源,可以作为测试任务的可选测试参数的信息均可作为一种资源。下面对部分资源的管理进行介绍。
如图13所示,为服务器管理的页面示意图。其中,该服务器为被测软件对应的产品服务器。本申请中,对需要投入自动化测试的产品服务器统一进行管理,服务器可作为被测对象的承载,由平台统一管理,随取随用,在上面构建测试任务时,作为测试任务的一个参数被纳入使用,测试任务启动后自动根据IP地址找到对应的服务器,发起自动化测试。如图13所示,在管理页面中,可以查看到各服务器的相关信息,例如承载的产品的产品类型、服务器IP以及服务器型号等信息。
如图14所示,为执行机管理的页面示意图。在该显示页面中,可以很直观的查看到各测试执行机的相关信息,例如IP地址、设备窗口(Windows)环境、设备分辨率、归属人以及状态等信息,当然,除了上述信息之外,也可以在显示页面中显示其他可能的信息,本申请实施例对此不做限制。
具体的,在创建测试任务后,测试服务端可以将测试任务逐一分配给状态为空闲的执行机,在执行机未完成当前任务时,测试任务将继续在平台上处于等待状态,直到测试执行机轮流将所有的任务完成,新增的执行机同样可以马上投入测试使用,不存在任务与执行机之间的绑定关系,分配方式更为灵活,降低测试执行机的空闲等待时间,提升测试效率。
测试报告分析
本申请实施例中,可以针对每个测试任务的测试结果生成测试报告,并基于用户的选择,在测试服务端上进行展示。此外,测试服务端还可以对全局的测试结果进行记录展示,即对一定周期内的测试结果进行统计,例如可以按天统计测试用例的执行数量、成功数量以及失败数量,便于测试人员能够了解管理平台的运作状况、使用情况以及发展趋势,并且通过用例和失败用例进行点击,还可以从全局的角度查看到详细的清单和细节。如图5所示,通过曲线图的方式展示了通过用例和失败用例的变化趋势,并且对一段时间内的通过用例次数和失败用例次数进行统计,有助于测试人员对管理平台的运作状况、使用情况以及发展趋势的掌控。
请参见图15,基于同一发明构思,本申请实施例提供一种软件测试装置150,应用于软件测试系统中,软件测试系统包括测试服务器与M个测试执行机,每个测试执行机上安装有被测软件,该装置包括:
第一接收单元1501,用于分别接收M个测试执行机上报的第一状态信息,第一状态信息用于指示测试执行机为空闲状态或者非空闲状态;
状态更新单元1502,用于据接收的各测试执行机的第一状态信息更新自身存储的测试执行机列表中相应测试执行机的状态;
任务下发单元1503,用于在任务队列中有测试任务待下发时,将任务队列的测试任务依次下发给处于空闲状态的测试执行机,其中,一个测试任务下发给一个测试执行机,以使得各测试执行机执行相应测试任务对自身安装的被测软件进行测试。
可选的,M个测试执行机上安装有N种类型的被测软件,N种类型的被测软件组成被测软件系统,其中,每个测试执行机上安装一个被测软件,N为大于或者等于2的正整数;则任务下发单元1503,具体用于:
针对每一个测试任务,根据测试任务指示的被测软件的类型,从处于空闲状态的测试执行机中选择第一测试执行机,并将测试任务下发给第一测试执行机,其中,第一测试执行机安装有测试任务的指示的类型的被测软件。
可选的,第一接收单元1501,还用于接收新启动的第二测试执行机上报的第二状态信息,第二状态信息用于指示第二测试执行机已启动且处于空闲状态;
状态更新单元1502,还用于将第二测试执行机添加至测试执行机列表中,并在测试执行机列表中标记第二测试执行机的状态为空闲状态。
可选的,装置还包括任务创建单元1504,用于:
响应测试任务创建指令,显示任务创建界面;任务创建界面包括至少一项测试参数的可操作项;
根据用户在任务创建界面中对可操作项进行的至少一个操作,创建新的测试任务,至少一个操作用于为至少一项测试参数设置对应参数值。
可选的,至少一项测试参数包括如下参数中的任意一种或者任意组合:
测试任务需执行的测试用例包;
测试任务包括的测试用例执行所需的运行环境;
测试任务对应的测试管理用户;
测试任务对应的测试对象;
测试任务对应的被测软件类型。
可选的,状态更新单元1502,还用于:将下发了测试任务的测试执行机的状态标记为非空闲状态。
可选的,装置还包括推送单元1505;
第一接收单元1501,还用于接收测试执行机返回的测试结果,测试结果为测试执行机执行测试服务器下发的测试任务的执行结果;
推送单元1505,用于将测试结果推送给测试任务对应的测试管理用户。
该设备可以用于执行图3所示的实施例所提供的方法,因此,对于该设备的各功能模块所能够实现的功能等可参考图3所示的实施例的描述,不多赘述。该软件测试装置例如为图1所示的测试服务器或者图2所示的测试服务端。
请参见图16,基于同一发明构思,本申请实施例提供一种软件测试装置160,应用于软件测试系统中,软件测试系统包括测试服务器与M个测试执行机,每个测试执行机上安装有被测软件,装置包括:
第二接收单元1601,用于接收测试服务器下发的测试任务;
执行单元1602,用于执行测试任务;
发送单元1603,用于在测试任务执行完成后,向测试服务器反馈测试结果;以及,向测试服务器上报第一状态信息,以使得测试服务器根据所述第一状态信息更新自身存储的测试执行机列表中所述软件测试装置所在的测试执行机的状态;其中所述第一状态信息用于指示所述软件测试装置所在的测试执行机处于空闲状态或者非空闲状态。
本申请实施例还提供一种软件测试系统,该软件测试系统包括上述图1所示的测试服务器和测试执行机;或者,该软件测试系统包括图2所示的测试服务端和测试客户端。
请参见图17,基于同一发明构思,本申请实施例提供一种计算机设备,包括至少一个处理器1701,至少一个处理器1701用于执行存储器中存储的计算机程序时实现图3所示的实施例提供的软件测试方法的步骤。
可选的,至少一个处理器1701具体可以包括中央处理器(CPU)、特定应用集成电路(application specific integrated circuit,ASIC),可以是一个或多个用于控制程序执行的集成电路,可以是使用现场可编程门阵列(field programmable gate array,FPGA)开发的硬件电路,可以是基带处理器。
可选的,至少一个处理器1701可以包括至少一个处理核心。
可选的,该设备还包括存储器1702,存储器1702可以包括只读存储器(read onlymemory,ROM)、随机存取存储器(random access memory,RAM)和磁盘存储器。存储器1702用于存储至少一个处理器1701运行时所需的数据。存储器1702的数量为一个或多个。其中,存储器1702在图17中一并示出,但需要知道的是存储器1702不是必选的功能模块,因此在图17中以虚线示出。
基于同一发明构思,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如图3所示的方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (13)
1.一种软件测试方法,其特征在于,应用于软件测试系统中,所述软件测试系统包括测试服务器与M个测试执行机,每个测试执行机上安装有被测软件,所述方法包括:
所述测试服务器分别接收所述M个测试执行机上报的第一状态信息,所述第一状态信息用于指示测试执行机为空闲状态或者非空闲状态;
所述测试服务器根据接收的各测试执行机的第一状态信息更新自身存储的测试执行机列表中相应测试执行机的状态;
在任务队列中有测试任务待下发时,所述测试服务器将所述任务队列的测试任务依次下发给处于空闲状态的测试执行机,其中,一个测试任务下发给一个测试执行机,以使得各测试执行机执行相应测试任务对自身安装的被测软件进行测试。
2.根据权利要求1所述的方法,其特征在于,所述M个测试执行机上安装有N种类型的被测软件,所述N种类型的被测软件组成被测软件系统,其中,每个测试执行机上安装一个被测软件,N为大于或者等于2的正整数;则所述测试服务器将任务队列的测试任务依次下发给处于空闲状态的测试执行机,包括:
针对每一个测试任务,所述测试服务器根据所述测试任务指示的被测软件的类型,从处于空闲状态的测试执行机中选择第一测试执行机,并将所述测试任务下发给所述第一测试执行机,其中,所述第一测试执行机安装有所述测试任务指示的类型的被测软件。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述测试服务器接收新启动的第二测试执行机上报的第二状态信息,所述第二状态信息用于指示所述第二测试执行机已启动且处于空闲状态;
所述测试服务器将所述第二测试执行机添加至测试执行机列表中,并在所述测试执行机列表中标记所述第二测试执行机的状态为空闲状态。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述测试服务器响应测试任务创建指令,显示任务创建界面;所述任务创建界面包括至少一项测试参数的可操作项;
所述测试服务器根据用户在所述任务创建界面中对所述可操作项进行的至少一个操作,创建新的测试任务,所述至少一个操作用于为所述至少一项测试参数设置对应参数值。
5.根据权利要求4所述的方法,其特征在于,所述至少一项测试参数包括如下参数中的任意一种或者任意组合:
所述测试任务需执行的测试用例包;
所述测试任务包括的测试用例执行所需的运行环境;
所述测试任务对应的测试管理用户;
所述测试任务对应的测试对象;
所述测试任务对应的被测软件类型。
6.根据权利要求1所述的方法,其特征在于,在所述测试服务器将任务队列的测试任务依次下发给处于空闲状态的测试执行机之后,所述方法还包括:
所述测试服务器将下发了测试任务的测试执行机的状态标记为非空闲状态。
7.根据权利要求1所述的方法,其特征在于,在所述测试服务器将任务队列的测试任务依次下发给处于空闲状态的测试执行机之后,所述方法还包括:
所述测试服务器接收测试执行机返回的测试结果,所述测试结果为所述测试执行机执行所述测试服务器下发的测试任务的执行结果;
所述测试服务器将所述测试结果推送给所述测试任务对应的测试管理用户。
8.一种软件测试方法,其特征在于,应用于软件测试系统中,所述软件测试系统包括测试服务器与M个测试执行机,每个测试执行机上安装有被测软件,所述方法包括:
第一测试执行机接收所述测试服务器下发的测试任务,其中,所述第一测试执行机为所述M个测试执行机中的任一处于空闲状态的测试执行机;
第一测试执行机执行所述测试任务,并在所述测试任务执行完成后,向所述测试服务器反馈测试结果;
第一测试执行机向所述测试服务器上报第一状态信息,以使得测试服务器根据所述第一状态信息更新自身存储的测试执行机列表中所述第一测试执行机的状态;其中所述第一状态信息用于指示所述第一测试执行机处于空闲状态或者非空闲状态。
9.一种软件测试装置,其特征在于,应用于软件测试系统中,所述软件测试系统包括测试服务器与M个测试执行机,每个测试执行机上安装有被测软件,所述装置包括:
第一接收单元,用于分别接收所述M个测试执行机上报的第一状态信息,所述第一状态信息用于指示测试执行机为空闲状态或者非空闲状态;
状态更新单元,用于据接收的各测试执行机的第一状态信息更新自身存储的测试执行机列表中相应测试执行机的状态;
任务下发单元,用于在任务队列中有测试任务待下发时,将所述任务队列的测试任务依次下发给处于空闲状态的测试执行机,其中,一个测试任务下发给一个测试执行机,以使得各测试执行机执行相应测试任务对自身安装的被测软件进行测试。
10.一种软件测试装置,其特征在于,应用于软件测试系统中,所述软件测试系统包括测试服务器与M个测试执行机,每个测试执行机上安装有被测软件,所述装置包括:
第二接收单元,用于接收所述测试服务器下发的测试任务;
执行单元,用于执行所述测试任务;
发送单元,用于在所述测试任务执行完成后,向所述测试服务器反馈测试结果;以及,向所述测试服务器上报第一状态信息,以使得测试服务器根据所述第一状态信息更新自身存储的测试执行机列表中所述软件测试装置所在的测试执行机的状态;其中所述第一状态信息用于指示所述软件测试装置所在的测试执行机处于空闲状态或者非空闲状态。
11.一种软件测试系统,其特征在于,所述软件测试系统包括测试服务器与M个测试执行机,每个测试执行机上安装有被测软件;
其中,所述测试服务器用于执行如权利要求1~7中任一权利要求所述的方法,以及所述M个测试执行机中任一测试执行机用于执行如权利要求8所述的方法,以进行被测软件的测试。
12.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,
所述处理器执行所述程序时实现如权利要求1~7中任一权利要求所述的方法;或者,
所述处理器执行所述程序时实现如权利要求8所述的方法。
13.一种计算机可读存储介质,存储有处理器可执行指令,其特征在于,
所述处理器可执行指令用于执行如权利要求1~7中任一权利要求所述的方法;或者,
所述处理器可执行指令用于执行如权利要求8所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910470070.6A CN110162481A (zh) | 2019-05-31 | 2019-05-31 | 一种软件测试方法、装置、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910470070.6A CN110162481A (zh) | 2019-05-31 | 2019-05-31 | 一种软件测试方法、装置、设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110162481A true CN110162481A (zh) | 2019-08-23 |
Family
ID=67630928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910470070.6A Pending CN110162481A (zh) | 2019-05-31 | 2019-05-31 | 一种软件测试方法、装置、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110162481A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111104330A (zh) * | 2019-12-20 | 2020-05-05 | 广州品唯软件有限公司 | 分布式测试方法、服务器及分布式测试系统 |
CN111432019A (zh) * | 2020-03-31 | 2020-07-17 | 广州微算互联信息技术有限公司 | 一种基于边云协同方式的云游戏设备分配方法及系统 |
CN111651350A (zh) * | 2020-05-29 | 2020-09-11 | 泰康保险集团股份有限公司 | 测试用例处理方法、装置、设备及计算机可读存储介质 |
CN112597030A (zh) * | 2020-12-26 | 2021-04-02 | 中国农业银行股份有限公司 | 一种任务发布方法及装置、执行方法及装置、系统 |
CN113010417A (zh) * | 2021-03-02 | 2021-06-22 | 中国工商银行股份有限公司 | 基于自动化测试的脚本执行方法及装置 |
CN113297055A (zh) * | 2020-02-24 | 2021-08-24 | 国家广播电视总局广播电视科学研究院 | 一种云测试系统和方法 |
CN114331917A (zh) * | 2022-03-08 | 2022-04-12 | 深圳比特微电子科技有限公司 | 一种设备调试的方法和控制器 |
CN116192922A (zh) * | 2023-04-23 | 2023-05-30 | 成都华兴汇明科技有限公司 | 一种测试用例的下发管理方法、装置及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101246439A (zh) * | 2008-03-18 | 2008-08-20 | 中兴通讯股份有限公司 | 一种基于任务调度的自动化测试方法及系统 |
CN102214139A (zh) * | 2011-06-01 | 2011-10-12 | 北京航空航天大学 | 一种面向分布式系统的自动化测试的执行控制与调度方法 |
CN105786667A (zh) * | 2016-02-29 | 2016-07-20 | 惠州Tcl移动通信有限公司 | 一种分布式自动化测试方法及系统 |
CN106844198A (zh) * | 2016-12-27 | 2017-06-13 | 浪潮软件集团有限公司 | 一种分布式调度自动化测试平台及方法 |
WO2018036167A1 (zh) * | 2016-08-22 | 2018-03-01 | 平安科技(深圳)有限公司 | 测试任务执行机分配方法、装置、服务器和存储介质 |
-
2019
- 2019-05-31 CN CN201910470070.6A patent/CN110162481A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101246439A (zh) * | 2008-03-18 | 2008-08-20 | 中兴通讯股份有限公司 | 一种基于任务调度的自动化测试方法及系统 |
CN102214139A (zh) * | 2011-06-01 | 2011-10-12 | 北京航空航天大学 | 一种面向分布式系统的自动化测试的执行控制与调度方法 |
CN105786667A (zh) * | 2016-02-29 | 2016-07-20 | 惠州Tcl移动通信有限公司 | 一种分布式自动化测试方法及系统 |
WO2018036167A1 (zh) * | 2016-08-22 | 2018-03-01 | 平安科技(深圳)有限公司 | 测试任务执行机分配方法、装置、服务器和存储介质 |
CN106844198A (zh) * | 2016-12-27 | 2017-06-13 | 浪潮软件集团有限公司 | 一种分布式调度自动化测试平台及方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111104330A (zh) * | 2019-12-20 | 2020-05-05 | 广州品唯软件有限公司 | 分布式测试方法、服务器及分布式测试系统 |
CN113297055A (zh) * | 2020-02-24 | 2021-08-24 | 国家广播电视总局广播电视科学研究院 | 一种云测试系统和方法 |
CN111432019A (zh) * | 2020-03-31 | 2020-07-17 | 广州微算互联信息技术有限公司 | 一种基于边云协同方式的云游戏设备分配方法及系统 |
CN111651350A (zh) * | 2020-05-29 | 2020-09-11 | 泰康保险集团股份有限公司 | 测试用例处理方法、装置、设备及计算机可读存储介质 |
CN111651350B (zh) * | 2020-05-29 | 2024-03-08 | 泰康保险集团股份有限公司 | 测试用例处理方法、装置、设备及计算机可读存储介质 |
CN112597030A (zh) * | 2020-12-26 | 2021-04-02 | 中国农业银行股份有限公司 | 一种任务发布方法及装置、执行方法及装置、系统 |
CN113010417A (zh) * | 2021-03-02 | 2021-06-22 | 中国工商银行股份有限公司 | 基于自动化测试的脚本执行方法及装置 |
CN114331917A (zh) * | 2022-03-08 | 2022-04-12 | 深圳比特微电子科技有限公司 | 一种设备调试的方法和控制器 |
CN114331917B (zh) * | 2022-03-08 | 2022-06-21 | 深圳比特微电子科技有限公司 | 一种设备调试的方法和控制器 |
CN116192922A (zh) * | 2023-04-23 | 2023-05-30 | 成都华兴汇明科技有限公司 | 一种测试用例的下发管理方法、装置及系统 |
CN116192922B (zh) * | 2023-04-23 | 2023-08-11 | 成都华兴汇明科技有限公司 | 一种测试用例的下发管理方法、装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110162481A (zh) | 一种软件测试方法、装置、设备以及存储介质 | |
Martin et al. | 'Good'organisational reasons for'Bad'software testing: An ethnographic study of testing in a small software company | |
CN106484622B (zh) | 测试方法、装置及系统 | |
CN106548670B (zh) | 在线教学平台及在线教学方法 | |
CN103298016B (zh) | 移动终端的测试系统 | |
CN106844198A (zh) | 一种分布式调度自动化测试平台及方法 | |
CN105450476B (zh) | 一种回归测试系统及测试方法 | |
CN101815013B (zh) | 一种基于Ajax和Web服务技术的卫星应用系统运行监控方法 | |
CN109656699A (zh) | 分布式计算方法、装置、系统、设备及可读存储介质 | |
CN111324538B (zh) | 一种基于动态路由的微服务并行测试环境管理方法 | |
CN108804320A (zh) | 自动化测试方法、装置、计算机设备及存储介质 | |
CN109977022A (zh) | 游戏资源的检查方法、装置、系统及存储介质 | |
US9542161B2 (en) | Method and system for generating a source code for a computer program for execution and simulation of a process | |
CN105553732B (zh) | 一种分布式网络模拟方法及系统 | |
CN110750453B (zh) | 基于html5的智能移动端测试方法、系统、服务器及存储介质 | |
CN114912255A (zh) | 在线仿真实验系统及方法 | |
CN107273112A (zh) | 一种礼物榜单信息显示方法及装置 | |
Bause et al. | A simulation environment for hierarchical process chains based on OMNeT++ | |
Bondi et al. | Experience with training a remotely located performance test team in a quasi-agile global environment | |
US20190066533A1 (en) | Methods for facilitating shortcut and hot key learning via computer application gamification and devices thereof | |
Shaye | Transitioning a team to agile test methods | |
CN113535572A (zh) | 服务虚拟化装置及方法 | |
Langsari et al. | Measuring performance efficiency of application applying design patterns and refactoring method | |
Jadhav et al. | A Comprehensive Framework for Implementing DevOps in Cloud for Education | |
CN111651349B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190823 |