CN113111000A - 持续集成自动化测试系统和方法、电子设备、存储介质 - Google Patents
持续集成自动化测试系统和方法、电子设备、存储介质 Download PDFInfo
- Publication number
- CN113111000A CN113111000A CN202110469930.1A CN202110469930A CN113111000A CN 113111000 A CN113111000 A CN 113111000A CN 202110469930 A CN202110469930 A CN 202110469930A CN 113111000 A CN113111000 A CN 113111000A
- Authority
- CN
- China
- Prior art keywords
- test
- server
- script
- project
- report
- 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
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 474
- 238000000034 method Methods 0.000 title claims abstract description 38
- 230000010354 integration Effects 0.000 title abstract description 17
- 238000013515 script Methods 0.000 claims abstract description 244
- 238000004590 computer program Methods 0.000 claims description 9
- 238000004806 packaging method and process Methods 0.000 claims description 9
- 230000006399 behavior Effects 0.000 claims description 7
- 230000009471 action Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000010998 test method Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011990 functional testing Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
Images
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
-
- 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/3604—Software analysis for verifying properties of programs
-
- 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/3664—Environments for testing or debugging software
-
- 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/3684—Test management for test design, e.g. generating new test cases
-
- 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
- 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/3692—Test management for test results analysis
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
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)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开是关于一种持续集成自动化测试系统和方法、电子设备、存储介质。该系统包括:部署服务器,用于在检测到向被测服务器部署项目代码的至少一个事件后,获取与项目代码所属项目的测试脚本;以及将测试脚本发送至测试服务器后并发送执行测试脚本的控制指令;测试服务器,用于通过其指定端口接收测试脚本且将测试脚本存储到对应的项目文件夹之内,并在接收到控制指令时执行测试脚本以向被测服务器输出测试指令;被测服务器,用于响应于接收到测试指令对项目代码之前的代码进行测试并向测试服务器输出运行数据。本实施例提供的系统可以方便开发人员进行软件持续集成并实现自动化测试,达到高效开发软件的目的。
Description
技术领域
本公开涉及测试技术领域,尤其涉及一种持续集成自动化测试系统和方法、电子设备、存储介质。
背景技术
目前,针对软件持续集成软件验证需求,需要从半自动测试时代进化到自动化时代,为了持续集成中构建后的自动检测,以及影响集成的问题修复后的检验过程,测试过程也逐渐向全自动测试时代发展和演进,也迫切需要一种先进的、全新的、能够在持续集成中应用的实施方式,来满足业务和系统发展的需要。
发明内容
本公开提供一种持续集成自动化测试系统和方法、电子设备、存储介质,以解决相关技术的不足。
根据本公开实施例的第一方面,提供一种持续集成自动化测试系统,所述系统包括:部署服务器、测试服务器和被测服务器;所述部署服务器与所述测试服务器连接,所述测试服务器与所述被测服务器连接;
所述部署服务器,用于在检测到向所述被测服务器部署项目代码的至少一个事件后,获取与所述项目代码所属项目的测试脚本;以及将所述测试脚本发送至所述测试服务器后并发送执行所述测试脚本的控制指令;
所述测试服务器,用于通过其指定端口接收所述测试脚本且将所述测试脚本存储到对应的项目文件夹之内,并在接收到所述控制指令时执行所述测试脚本以向所述被测服务器输出测试指令;
所述被测服务器,用于响应于接收到所述测试指令对所述项目代码之前的代码进行测试并向所述测试服务器输出运行数据。
可选地,所述部署服务器内设置有提交行为脚本和拉取脚本;所述提交行为脚本用于在检测到向所述被测服务器内部署项目代码的事件时触发所述拉取脚本;所述拉取脚本用于从与所述部署服务器连接的测试脚本平台拉取与所述项目代码所属项目的测试脚本,并将所述测试脚本发送给所述测试服务器。
可选地,所述测试服务器,还用于按照生成各个事件对应的测试报告模板,以及根据所述测试报告模板和所述运行数据生成各个事件的测试报告,并按照所述测试报告模型中的预设通知方式输出所述测试报告。
可选地,所述测试服务器内设置有项目配置脚本;所述项目配置脚本用于生成所述项目对应的测试报告模板,所述测试报告模板包括测试报告的第一参数;所述第一参数包括以下至少一种:测试报告的名称、存储位置和预设通知方式。
可选地,所述测试服务器内设置有报告样式脚本;所述报告样式脚本用于构建所述测试报告的第二参数;所述第二参数包括以下至少一种:样式和内容属性。
可选地,所述测试服务器内设置有邮件脚本,所述邮件脚本用于指定邮件接收者信息和封装所述测试报告的浏览路径,并将所述测试报告和所述浏览路径写入邮件后发送给所指定的邮件接收者。
可选地,所述测试服务器内设置有定时测试脚本,所述定时测试脚本用于按照设定周期触发所述测试服务器内的测试脚本;所述测试脚本是与所述被测服务器中项目代码所性项目的脚本。
可选地,所述测试服务器包括数据库;所述数据库用于存储每次测试所产生的运行数据。
根据本公开实施例的第二方面,提供一种持续集成自动化测试方法,所述方法包括:
部署服务器在检测到向被测服务器部署项目代码的至少一个事件后,获取与所述项目代码所属项目的测试脚本;
所述部署服务器将所述测试脚本发送至测试服务器后并向所述测试服务器发送执行所述测试脚本的控制指令;
所述测试服务器通过其指定端口接收所述测试脚本且将所述测试脚本存储到对应的项目文件夹之内,并在接收到所述控制指令时执行所述测试脚本以向所述被测服务器输出测试指令;
所述被测服务器响应于接收到所述测试指令对所述项目代码之前的代码进行测试并向所述测试服务器输出运行数据。
可选地,所述部署服务器内设置有提交行为脚本和拉取脚本,所述获取与所述项目代码所属项目的测试脚本还包括:
所述部署服务器执行所述提交行为脚本,以在检测到向所述被测服务器内部署项目代码的事件时触发所述拉取脚本;
所述部署服务器执行所述拉取脚本,以从与所述部署服务器连接的测试脚本平台拉取与所述项目代码所属项目的测试脚本;
所述部署服务器将所述测试脚本发送给所述测试服务器。
可选地,所述方法还包括:
所述测试服务器生成各个事件对应的测试报告模板,以及根据所述测试报告模板和所述运行数据生成各个事件的测试报告,并按照预设通知方式输出所述测试报告。
可选地,所述测试服务器内设置有项目配置脚本;所述测试服务器生成各个事件对应的测试报告模板包括:
所述项目配置脚本生成所述项目对应的测试报告模板,所述测试报告模板包括测试报告的第一参数;所述第一参数包括以下至少一种:测试报告的名称、存储位置和预设通知方式。
可选地,所述测试服务器内设置有报告样式脚本;所述根据所述测试报告模板和所述运行数据生成各个事件的测试报告包括:
所述报告样式脚本确定所述运行数据在所述测试报告模板中的第二参数;所述第二参数包括以下至少一种:样式和内容属性;
更新所述运行数据的参数为所述第二参数后填充到所述测试报告模型中,生成各个事件的测试报告。
可选地,所述测试服务器内设置有邮件脚本,所述按照预设通知方式输出所述测试报告包括:
所述邮件脚本指定邮件接收者信息和封装所述测试报告的浏览路径,并将所述测试报告和所述浏览路径写入邮件后发送给所指定的邮件接收者。
可选地,所述测试服务器内设置有定时测试脚本;所述方法还包括:
所述定时测试脚本按照设定周期触发所述测试服务器内的测试脚本;所述测试脚本是与所述被测服务器中项目代码所性项目的脚本。
根据本公开实施例的第三方面,提供一种服务器,包括:
处理器;
用于存储所述处理器可执行的计算机程序的存储器;
其中,所述处理器被配置为执行所述存储器中的计算机程序,以实现如上述任一项所述的方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的可执行的计算机程序由电子设备的处理器执行时,能够实现如上述任一项所述的方法。
本公开的实施例提供的技术方案可以包括以下有益效果:
由上述实施例可知,本公开实施例提供的方案中,部署服务器用于在检测到向被测服务器部署项目代码的至少一个事件后,获取与项目代码所属项目的测试脚本;以及将测试脚本发送至所述测试服务器后并发送执行所述测试脚本的控制指令,这样开发人员可以通过互联网连接至部署服务器即可部署项目代码,达到不受地理位置限制的效果;测试服务器用于通过其指定端口接收所述测试脚本且将所述测试脚本存储到对应的项目文件夹之内,并在接收到所述控制指令时执行所述测试脚本以向所述被测服务器输出测试指令;被测服务器用于响应于接收到所述测试指令对所述项目代码之前的代码进行测试并向所述测试服务器输出运行数据。可见,本实施例提供的系统可以方便开发人员进行软件持续集成,通过每次对新部署的项目代码之前的代码即旧代码进行自动化测试(即回测),可以保证软件开发的效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种持续集成自动化测试系统的框图。
图2是根据一示例性实施例示出的另一种持续集成自动化测试系统的框图。
图3是根据一示例性实施例示出的一种持续集成自动化测试方法的流程图。
图4是根据一示例性实施例示出的一种服务器的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性所描述的实施例并不代表与本公开相一致的所有实施例。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置例子。
为解决上述技术问题,本公开实施例提供了一种持续集成自动化测试系统,图1是根据一示例性实施例示出的一种数据处理系统的框图。参见图1,一种持续集成自动化测试系统,包括:部署服务器40、测试服务器50和被测服务器60。部署服务器40与测试服务器50连接,测试服务器50与被测服务器60连接。
部署服务器40,用于在检测到向被测服务器60部署项目代码的至少一个事件后,获取与上述项目代码所属项目的测试脚本;以及将测试脚本发送至测试服务器50后并发送执行测试脚本的控制指令;
测试服务器50,用于通过其指定端口接收测试脚本且将测试脚本存储到对应的项目文件夹之内,并在接收到控制指令时执行测试脚本以向被测服务器60输出测试指令;
被测服务器60,用于响应于接收到测试指令对项目代码之前的代码进行测试并向所述测试服务器输出运行数据。
需要说明的是,开发人员通过部署服务器40可以将新的项目代码部署到被测服务器60,即将新的项目代码集成到所属项目的已有代码之中,此时项目的标签(或者版本)会发生更新。本实施例中,测试服务器通过执行测试脚本可以对更新标签(或者版本)项目中的已有代码(即部署的新的项目代码之前的旧代码)进行测试,也可以称之为回测,从而可以确定新的项目代码不影响旧的代码的性能。这样,开发人员可以不断的部署新的项目代码,由测试服务器不断回测,可以达到持续集成与自动化测试较好的结合,有利于提升项目开发的效率。
至此,本公开实施例提供的方案中,由该测试脚本平台获取和存储每个项目的测试脚本,达到对测试脚本进行统一管理的效果;由部署服务器在检测部署项目代码的事件后获取项目代码对应有测试脚本,在将测试脚本发送至测试服务器后并发送执行该测试脚本的控制指令,这样开发人员可以通过互联网连接至部署服务器即可部署项目代码,达到不受地理位置限制的效果;由测试服务器根据控制指令的控制来执行测试脚本达到测试开发人员所部署的项目代码的效果。可见,本实施例提供的系统可以方便开发人员进行软件持续集成并实现自动化测试,达到高效开发软件的目的。
在一实施例中,第一终端10可以包括平板电脑、个人电脑等设备。第一终端10内设置有测试环境,如编码测试脚本所需要的软件环境、操作系统等,可以允许测试人员编写各个项目的测试脚本。并且,在测试脚本编写完成后,第一终端10还可以接收测试人员的推送操作,将各个项目的测试脚本推送至测试脚本平台20。需要说明的,本示例中,测试人员与后续的开发人员是从他们在本方案中所涉及的方案相关,实际应用中可以是同一个人或者同一个团队。
在一实施例中,测试脚本平台20可以是一个存储管理系统、一个平台、一台服务器或者一个服务器集群等,其可以与至少一台第一终端10连接,连接方式可以包括有线连接或者无线连接,无线连接可以包括蓝牙连接或WiFi连接等,可理解的是,在能够实现两者通信和数据传输的情况下本示例并不限定连接方式。测试脚本平台20可以获得各个项目的测试脚本并存储至本地,部署服务器40可以从该测试脚本平台20获取各项目对应的测试脚本。这样,本示例中测试脚本平台20可以接收各个第一终端10推送的测试脚本,并可以统一管理所有项目的测试脚本,适合多个同时进行多个测试项目的场景,有利于提高管理效率。
在一实施例中,部署服务器40可以是一个平台、一台服务器或者一个服务器集群等,其可以与至少一台第二终端30连接,连接方式可以包括有线连接或者无线连接,无线连接可以包括蓝牙连接或WiFi连接等,可理解的是,在能够实现两者通信和数据传输的情况下本示例并不限定连接方式。该第二终端30可以包括平板电脑或者个人电脑等设备。第二终端30内设置有开发环境,如编码项目代码所需要的软件环境、操作系统等,可以允许开发人员编写各个项目的项目代码。并且,在项目代码完成后,第二终端30还可以接收开发人员的推送操作,将各个项目的项目代码推送至部署服务器40。部署服务器40可以获得各个项目的项目代码,并部署到被测服务器60中。或者,第二终端30还可以接收开发人员的推送操作,将各个项目的项目代码推送至被测服务器60。可理解的是,部署过程可以参考相关技术的方案,如编译、打包等,本实施例不作限定。
本示例中,部署服务器40内设置有提交行为脚本(如kenkins脚本)和拉取脚本。该提交行为脚本可以检测向被测服务器内部署项目代码的事件,例如部署服务器40在接收到开发人员在第二终端30上的部署操作时可以确定检测到一个部署项目代码的事件,或者说检测到开发人员的部署操作且部署完成之后可以确定检测到一个部署项目代码的事件,或者说,在检测到部署项目代码完成后被测服务器返回的部署成功消息后可以确定检测到一个部署项目代码的事件。部署服务器40可以在检测到向被测服务器内部署项目代码的事件时触发拉取脚本。拉取脚本用于从测试脚本平台20拉取与项目代码对应的测试脚本,并将测试脚本发送给测试服务器50。
需要说明的是,开发人员在开发各个项目的项目代码时通常会指定项目代码所属的项目,或者指定项目代码的存储路径等,从而在部署项目代码过程时,第二终端30在向部署服务器40发送部署请求时会携带项目代码对应项目的项目名称、项目文件夹或者项目存储路径等属性数据。部署服务器40可以通过属性数据从测试脚本平台20拉取测试脚本。
本示例中,在检测到拉取脚本从测试脚本平台20成功拉取到对应的测试脚本后,或者将测试脚本成功发送给测试服务器50之后,部署服务器40可以生成执行该测试脚本的控制指令,并将该控制指令发送给测试服务器50。
本示例中部署服务器40在检测到部署项目代码的事件时主要完成以下内容:一,从测试脚本平台20拉取所部署项目代码对应的测试脚本;二,将测试脚本推送到测试服务器50以及发送执行该测试脚本的控制指令。这样,本示例中通过部署服务器40可以实现部署代码检测和触发代码测试,可以达到不受地理位置限制的效果;或者说,在能够与部署服务器40实现通信的情况下,如互联网连接,可以方便开发人员进行软件持续集成以达到高效开发软件的目的。
在一实施例中,测试服务器50可以是一个平台、一台服务器或者一个服务器集群等,其可以与部署服务器40连接,连接方式可以包括有线连接或者无线连接,无线连接可以包括蓝牙连接或WiFi连接等,可理解的是,在能够实现两者通信和数据传输的情况下本示例并不限定连接方式。在一示例中,测试服务器可以包括至少一个指定端口,该至少一个指定端口可以用于传输测试脚本和监听控制指令,达到与部署服务器通信和数据传输的效果。这样,测试服务器和部署服务器无需设置在同一地理位置,方便灵活配置。
测试服务器50内可以为每个项目设定一个项目存储区域,在接收部署服务器40推送的测试脚本后可以存储到该项目对应的项目存储区域。通过为每个项目设置项目存储区域,可以方便同时多个测试项目同时读取和存储数据,有利于提升测试效率。
测试服务器50可以在接收到执行测试脚本的控制指令之后,执行相应的测试脚本(即部署服务器40推送的测试脚本)。或者说,测试服务器50可以按照测试脚本中的测试步骤或者测试项目向被测服务器60发送控制指令。被测服务器60可以响应于上述控制指令运行所部署的项目代码。被测服务器60可以包括一台服务器或者一个服务器集群等,其可以与测试服务器50连接,连接方式可以包括有线连接或者无线连接,无线连接可以包括蓝牙连接或WiFi连接等,可理解的是,在能够实现两者通信和数据传输的情况下本示例并不限定连接方式。
测试服务器50可以接收被测服务器60反馈的运行数据。其中,运行数据是指在运行项目代码过程中,被测服务器60可以根据项目代码中的某一步骤或者测试脚本中某一步骤生成的中间数据或者最终数据。另外,测试服务器50内可以设置有数据库,如Mysql数据库,该数据库可以用于存储每次测试所产生的运行数据。
在一示例中,在每次测试项目代码开始时,测试服务器50可以按照预设的报告配置文件生成各个事件对应的测试报告模板,并在每次测试项目代码结束时或者测试预设时间时,根据上述测试报告模板和上述运行数据生成各个事件的测试报告,并按照预设通知方式输出测试报告。
在一示例中,测试服务器50内设置有项目配置文件,该项目配置文件内可以设置项目配置脚本。该项目配置脚本用于执行测试脚本,并指定测试报告的第一参数。其中,第一参数包括以下至少一种:测试报告的名称、存储位置和预设通知方式。需要说明的是,测试报告的名称可以根据项目的名称结合时间戳的方式确定,也可以是在前一次版本的基础上增加1的形式来确定测试报告的名称,可根据具体场景来确定报告名称的方式,在此不作限定。预设通知方式可以包括但不限于邮件、短信、即时通信等,可根据具体场景来设置预设通知方式,在此不作限定。
在一示例中,测试服务器50内设置有ant系统,该ant系统是基于Java的开源系统构建工具,可以帮助开发人员完成编译、打包、上传等功能。测试服务器50内可以设置有报告样式脚本,并且该报告样式脚本可以设置在ant系统之内。该报告样式脚本可以用于构建测试报告的第二参数;该第二参数包括以下至少一种:样式和内容属性。例如,一份测试报告可以包括2块内容,即统计块和列表块。统计块可以包括以下内容对测试过程中多个实例(case)的数量统计、成功率、失败率等,列表块可以包括成功实例、失败实例等。其中,上述2个块即是测试报告的样式,每个块中包括的内容即是内容属性。可理解的是,上述示例仅用于解释第二参数,可以根据具体场景进行配置,相应方案落入本公开的保护范围。这样,本示例中可以根据不同项目设置报告样式脚本,或者说,可以根据项目定投个性化的测试报告,如性能测试报告或者功能测试报告,从而满足不同使用场景下对测试报告的要求。
在一示例中,测试服务器50内设置有邮件服务,该邮件服务内可以设置有邮件脚本。该邮件脚本可以用于指定邮件接收者信息和封装测试报告的浏览路径,并将测试报告和浏览路径写入邮件后发送给所指定的邮件接收者,如开发人员本人、主管或者项目组组员等。这样,本示例中测试报告可以下载至本地以方便在本地阅读,还可以根据浏览路径进行在线浏览,满足不同开发人员的使用需求。
需要说明的是,报告样式脚本在生成测试报告的过程中,其并不知道属于哪个项目和存储位置,使得报告样式脚本仅用于生成测试报告而并不局限于某一个项目。此时,项目配置脚本可以为报告样式脚本所生成的测试报告指定存储位置和生成测试报告的名称,即将测试报告划分到某一个项目。这样,报告样式脚本和项目配置脚本可以共同协作为各个项目生成测试报告。邮件脚本可以在发送测试报告时封装上述指定位置获得浏览路径,在将测试报告写入邮件后即可发送给接收者,完成测试报告的发送。
在一实施例中,测试服务器50内安装有操作系统,如linux系统。本示例中,可以在linux系统中设置定时测试脚本,该定时测试脚本可以用于按照设定周期触发测试服务器50内的测试脚本,其中测试脚本是与被测服务器60中项目代码相匹配的脚本。或者说,该定时测试脚本可以用于定时巡检项目测试,用于执行待巡检项目对应的测试脚本,并接收被测服务器60反馈的运行数据;以及基于上述运行数据生成测试报告、封装测试报告的浏览地址以及将测试报告和浏览地址发送给指定的邮件接收者等步骤。这样,在执行定时测试脚本过程中,可以无需测试脚本平台和部署服务器参与,由测试服务器独立完成,具有自动化测试或者定时巡检测试的功能。
需要说明的是,为了描述本公开实施例中的一种持续集成自动化测试系统,设置有部署服务器、测试服务器和被测服务器。上述各服务器各自具有相应的功能,共同协作实现持续集成与自动化测试。可理解的是,系统中划分的上述服务器仅是逻辑上的划分,在物理上可以集成到其中的一个服务器实体中,例如将部署服务器和测试服务器集成到被测服务器中。技术人员可以根据具体场景选择合适的布置方式,相应方案落入本公开的保护范围。
结合图1和图2所述的系统,下面描述持续集成自动化测试系统的工作流程:
S1:测试人员在第一终端10上编写各个项目的测试脚本。在测试脚本编写完成后,测试人员可以通过第一终端10将测试脚本推送到测试脚本平台20。此时测试脚本平台20可以获得测试脚本。测试人员可以通过测试脚本平台20统一管理所有项目的测试脚本。
需要说明的是,该步骤S1并不是每次测试过程均需要执行的步骤,因测试脚本可以重复使用,测试人员仅在项目需要时才能测试脚本重新处理。或者说,步骤S1仅是对项目一次完整测试的可选组成部分,但不是对方案的限定。
S2:开发人员在第二终端30上编写各个项目的项目代码。在项目代码完成后,开发人员可以通过第二终端30将项目代码推送到部署服务器40,并通过部署服务器40将项目代码部署到被测服务器60之内。
S3:部署服务器40中的提交行为脚本在检测到部署项目代码的事件后触发拉取脚本。拉取脚本从测试脚本平台20拉取与项目代码对应的测试脚本。
S4:拉取脚本将测试脚本推送给测试服务器50。并且,部署服务器40将控制命令发送给测试服务器50。
S5:测试服务器50在接收到部署服务器40的控制命令后执行对应的测试脚本,在执行测试脚本的过程中不断向被测服务器60发送控制命令。
S6:被测服务器60根据控制命令运行部署的项目代码,并将产生的运行数据反馈给测试服务器50。
S7:测试服务器50中ant系统构建Jmeter工具,其中Jmeter工具是基于Java的压力测试工具,用于对软件做压力测试,可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java对象,数据库和查询,FTP服务器等等)的性能进行测试。测试服务器50可以利用Jmeter工具收集运行数据并存储至数据库Mysql中。并且,测试服务器50中ant系统可以构建测试报告浏览地址,并封装至邮件脚本之内。另外,ant系统可以激活邮件服务,在邮件内存入测试报告和测试报告浏览地址,并将邮件发送给指定的邮件接收者。
S8:测试服务器50中的定时测试脚本检测到定时到设定时长后,触发巡检项目的测试脚本,再执行步骤S5~S7。
图3是根据一示例性实施例示出的一种持续集成自动化测试方法的流程图。参见图3,一种持续集成自动化测试方法,包括:
步骤31,部署服务器在检测到向被测服务器部署项目代码的至少一个事件后,获取与所述项目代码所属项目的测试脚本。
步骤32,所述部署服务器将所述测试脚本发送至测试服务器后并向所述测试服务器发送执行所述测试脚本的控制指令。
步骤33,所述测试服务器通过其指定端口接收所述测试脚本且将所述测试脚本存储到对应的项目文件夹之内,并在接收到所述控制指令时执行所述测试脚本以向所述被测服务器输出测试指令。
步骤34,所述被测服务器响应于接收到所述测试指令对所部署述项目代码之前外的其他代码进行测试回测所述测试服务器的控制运行所述项目代码并向所述测试服务器输出运行数据。
在一实施例中,所述部署服务器内设置有提交行为脚本和拉取脚本,所述获取与所述项目代码所属项目的测试脚本还包括:
所述部署服务器执行所述提交行为脚本,以在检测到向所述被测服务器内部署项目代码的事件时触发所述拉取脚本;
所述部署服务器执行所述拉取脚本,以从与所述部署服务器连接的测试脚本平台拉取与所述项目代码所属项目的测试脚本;
所述部署服务器将所述测试脚本发送给所述测试服务器。
在一实施例中,所述方法还包括:
所述测试服务器生成各个事件对应的测试报告模板,以及根据所述测试报告模板和所述运行数据生成各个事件的测试报告,并按照预设通知方式输出所述测试报告。
在一实施例中,所述测试服务器内设置有项目配置脚本;所述测试服务器生成各个事件对应的测试报告模板包括:
所述项目配置脚本生成所述项目对应的测试报告模板,所述测试报告模板包括测试报告的第一参数;所述第一参数包括以下至少一种:测试报告的名称、存储位置和预设通知方式。
在一实施例中,所述测试服务器内设置有报告样式脚本;所述根据所述测试报告模板和所述运行数据生成各个事件的测试报告包括:
所述报告样式脚本确定所述运行数据在所述测试报告模板中的第二参数;所述第二参数包括以下至少一种:样式和内容属性;
更新所述运行数据的参数为所述第二参数后填充到所述测试报告模型中,生成各个事件的测试报告。
在一实施例中,所述测试服务器内设置有邮件脚本,所述按照预设通知方式输出所述测试报告包括:
所述邮件脚本指定邮件接收者信息和封装所述测试报告的浏览路径,并将所述测试报告和所述浏览路径写入邮件后发送给所指定的邮件接收者。
在一实施例中,所述测试服务器内设置有定时测试脚本;所述方法还包括:
所述定时测试脚本按照设定周期触发所述测试服务器内的测试脚本;所述测试脚本是与所述被测服务器中项目代码所性项目的脚本。
可理解的是,本公开实施例提供的方法与上述系统相对应,具体内容可以参考系统各实施例的内容,在此不再赘述。
在示例性实施例中,参见图4,还提供了一种服务器,包括:
处理器41;
用于存储所述处理器可执行的计算机程序的存储器42;
其中,所述处理器41用于执行所述存储器中的计算机程序,以实现如上述方法的步骤。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述可执行的计算机程序可由处理器执行,以实现如上述方法的步骤。其中,可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本公开旨在涵盖任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (17)
1.一种持续集成自动化测试系统,其特征在于,所述系统包括:部署服务器、测试服务器和被测服务器;所述部署服务器与所述测试服务器连接,所述测试服务器与所述被测服务器连接;
所述部署服务器,用于在检测到向所述被测服务器部署项目代码的至少一个事件后,获取与所述项目代码所属项目的测试脚本;以及将所述测试脚本发送至所述测试服务器后并发送执行所述测试脚本的控制指令;
所述测试服务器,用于通过其指定端口接收所述测试脚本且将所述测试脚本存储到对应的项目文件夹之内,并在接收到所述控制指令时执行所述测试脚本以向所述被测服务器输出测试指令;
所述被测服务器,用于响应于接收到所述测试指令对所述项目代码之前的代码进行测试并向所述测试服务器输出运行数据。
2.根据权利要求1所述的系统,其特征在于,所述部署服务器内设置有提交行为脚本和拉取脚本;所述提交行为脚本用于在检测到向所述被测服务器内部署项目代码的事件时触发所述拉取脚本;所述拉取脚本用于从与所述部署服务器连接的测试脚本平台拉取与所述项目代码所属项目的测试脚本,并将所述测试脚本发送给所述测试服务器。
3.根据权利要求1所述的系统,其特征在于,所述测试服务器,还用于按照生成各个事件对应的测试报告模板,以及根据所述测试报告模板和所述运行数据生成各个事件的测试报告,并按照所述测试报告模型中的预设通知方式输出所述测试报告。
4.根据权利要求3所述的系统,其特征在于,所述测试服务器内设置有项目配置脚本;所述项目配置脚本用于生成所述项目对应的测试报告模板,所述测试报告模板包括测试报告的第一参数;所述第一参数包括以下至少一种:测试报告的名称、存储位置和预设通知方式。
5.根据权利要求3所述的系统,其特征在于,所述测试服务器内设置有报告样式脚本;所述报告样式脚本用于构建所述测试报告的第二参数;所述第二参数包括以下至少一种:样式和内容属性。
6.根据权利要求3所述的系统,其特征在于,所述测试服务器内设置有邮件脚本,所述邮件脚本用于指定邮件接收者信息和封装所述测试报告的浏览路径,并将所述测试报告和所述浏览路径写入邮件后发送给所指定的邮件接收者。
7.根据权利要求1所述的系统,其特征在于,所述测试服务器内设置有定时测试脚本,所述定时测试脚本用于按照设定周期触发所述测试服务器内的测试脚本;所述测试脚本是与所述被测服务器中项目代码所性项目的脚本。
8.根据权利要求1所述的系统,其特征在于,所述测试服务器包括数据库;所述数据库用于存储每次测试所产生的运行数据。
9.一种持续集成自动化测试方法,其特征在于,所述方法包括:
部署服务器在检测到向被测服务器部署项目代码的至少一个事件后,获取与所述项目代码所属项目的测试脚本;
所述部署服务器将所述测试脚本发送至测试服务器后并向所述测试服务器发送执行所述测试脚本的控制指令;
所述测试服务器通过其指定端口接收所述测试脚本且将所述测试脚本存储到对应的项目文件夹之内,并在接收到所述控制指令时执行所述测试脚本以向所述被测服务器输出测试指令;
所述被测服务器响应于接收到所述测试指令对所述项目代码之前的代码进行测试并向所述测试服务器输出运行数据。
10.根据权利要求9所述的方法,其特征在于,所述部署服务器内设置有提交行为脚本和拉取脚本,所述获取与所述项目代码所属项目的测试脚本还包括:
所述部署服务器执行所述提交行为脚本,以在检测到向所述被测服务器内部署项目代码的事件时触发所述拉取脚本;
所述部署服务器执行所述拉取脚本,以从与所述部署服务器连接的测试脚本平台拉取与所述项目代码所属项目的测试脚本;
所述部署服务器将所述测试脚本发送给所述测试服务器。
11.根据权利要求9所述的方法,其特征在于,所述方法还包括:
所述测试服务器生成各个事件对应的测试报告模板,以及根据所述测试报告模板和所述运行数据生成各个事件的测试报告,并按照预设通知方式输出所述测试报告。
12.根据权利要求11所述的方法,其特征在于,所述测试服务器内设置有项目配置脚本;所述测试服务器生成各个事件对应的测试报告模板包括:
所述项目配置脚本生成所述项目对应的测试报告模板,所述测试报告模板包括测试报告的第一参数;所述第一参数包括以下至少一种:测试报告的名称、存储位置和预设通知方式。
13.根据权利要求11所述的方法,其特征在于,所述测试服务器内设置有报告样式脚本;所述根据所述测试报告模板和所述运行数据生成各个事件的测试报告包括:
所述报告样式脚本确定所述运行数据在所述测试报告模板中的第二参数;所述第二参数包括以下至少一种:样式和内容属性;
更新所述运行数据的参数为所述第二参数后填充到所述测试报告模型中,生成各个事件的测试报告。
14.根据权利要求11所述的方法,其特征在于,所述测试服务器内设置有邮件脚本,所述按照预设通知方式输出所述测试报告包括:
所述邮件脚本指定邮件接收者信息和封装所述测试报告的浏览路径,并将所述测试报告和所述浏览路径写入邮件后发送给所指定的邮件接收者。
15.根据权利要求9所述的方法,其特征在于,所述测试服务器内设置有定时测试脚本;所述方法还包括:
所述定时测试脚本按照设定周期触发所述测试服务器内的测试脚本;所述测试脚本是与所述被测服务器中项目代码所性项目的脚本。
16.一种服务器,其特征在于,包括:
处理器;
用于存储所述处理器可执行的计算机程序的存储器;
其中,所述处理器被配置为执行所述存储器中的计算机程序,以实现如权利要求9~15任一项所述的方法。
17.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的可执行的计算机程序由电子设备的处理器执行时,能够实现如权利要求9~15任一项所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110469930.1A CN113111000B (zh) | 2021-04-28 | 2021-04-28 | 持续集成自动化测试系统和方法、电子设备、存储介质 |
US17/914,211 US20240220401A1 (en) | 2021-04-28 | 2021-10-27 | Continuous integration automated test systems and methods, electronic devices, and storage media |
PCT/CN2021/126766 WO2022227454A1 (zh) | 2021-04-28 | 2021-10-27 | 持续集成自动化测试系统和方法、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110469930.1A CN113111000B (zh) | 2021-04-28 | 2021-04-28 | 持续集成自动化测试系统和方法、电子设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113111000A true CN113111000A (zh) | 2021-07-13 |
CN113111000B CN113111000B (zh) | 2023-05-12 |
Family
ID=76721081
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110469930.1A Active CN113111000B (zh) | 2021-04-28 | 2021-04-28 | 持续集成自动化测试系统和方法、电子设备、存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240220401A1 (zh) |
CN (1) | CN113111000B (zh) |
WO (1) | WO2022227454A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114691530A (zh) * | 2022-06-01 | 2022-07-01 | 广州世炬网络科技有限公司 | 一种通信端到端自动测试方法及平台 |
WO2022227454A1 (zh) * | 2021-04-28 | 2022-11-03 | 京东方科技集团股份有限公司 | 持续集成自动化测试系统和方法、电子设备、存储介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116028377B (zh) * | 2023-03-28 | 2023-08-11 | 之江实验室 | 基于jenkins的自动化测试方法、装置和介质 |
CN117596084B (zh) * | 2024-01-19 | 2024-04-16 | 天津航天机电设备研究所 | 一种面向网信安全的软件持续集成系统及方法 |
CN118331886B (zh) * | 2024-06-12 | 2024-10-29 | 济南浪潮数据技术有限公司 | 项目测试方法、计算机装置、存储介质和程序 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106547688A (zh) * | 2016-10-19 | 2017-03-29 | 厦门市美亚柏科信息股份有限公司 | 基于Windows的产品自动化测试方法及其系统 |
CN108073400A (zh) * | 2017-12-07 | 2018-05-25 | 湖北三新文化传媒有限公司 | 软件自动化构建方法、服务器及存储介质 |
CN110245088A (zh) * | 2019-06-21 | 2019-09-17 | 四川长虹电器股份有限公司 | 一种基于Jenkins的缺陷自动验证系统及验证方法 |
CN110532189A (zh) * | 2019-07-18 | 2019-12-03 | 中国人民财产保险股份有限公司 | 一种持续集成系统、方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10515005B1 (en) * | 2018-12-20 | 2019-12-24 | Atlassian Pty Ltd | Systems and methods for testing source code |
US11061790B2 (en) * | 2019-01-07 | 2021-07-13 | International Business Machines Corporation | Providing insight of continuous delivery pipeline using machine learning |
CN111767208B (zh) * | 2020-06-02 | 2023-09-19 | 北京金堤科技有限公司 | 一种自动测试方法及装置 |
CN113111000B (zh) * | 2021-04-28 | 2023-05-12 | 北京中祥英科技有限公司 | 持续集成自动化测试系统和方法、电子设备、存储介质 |
-
2021
- 2021-04-28 CN CN202110469930.1A patent/CN113111000B/zh active Active
- 2021-10-27 WO PCT/CN2021/126766 patent/WO2022227454A1/zh active Application Filing
- 2021-10-27 US US17/914,211 patent/US20240220401A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106547688A (zh) * | 2016-10-19 | 2017-03-29 | 厦门市美亚柏科信息股份有限公司 | 基于Windows的产品自动化测试方法及其系统 |
CN108073400A (zh) * | 2017-12-07 | 2018-05-25 | 湖北三新文化传媒有限公司 | 软件自动化构建方法、服务器及存储介质 |
CN110245088A (zh) * | 2019-06-21 | 2019-09-17 | 四川长虹电器股份有限公司 | 一种基于Jenkins的缺陷自动验证系统及验证方法 |
CN110532189A (zh) * | 2019-07-18 | 2019-12-03 | 中国人民财产保险股份有限公司 | 一种持续集成系统、方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022227454A1 (zh) * | 2021-04-28 | 2022-11-03 | 京东方科技集团股份有限公司 | 持续集成自动化测试系统和方法、电子设备、存储介质 |
CN114691530A (zh) * | 2022-06-01 | 2022-07-01 | 广州世炬网络科技有限公司 | 一种通信端到端自动测试方法及平台 |
Also Published As
Publication number | Publication date |
---|---|
WO2022227454A1 (zh) | 2022-11-03 |
US20240220401A1 (en) | 2024-07-04 |
CN113111000B (zh) | 2023-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113111000B (zh) | 持续集成自动化测试系统和方法、电子设备、存储介质 | |
US9329983B2 (en) | Computer program testing | |
CN112241360B (zh) | 一种测试用例生成方法、装置、设备及存储介质 | |
US20080320071A1 (en) | Method, apparatus and program product for creating a test framework for testing operating system components in a cluster system | |
CN109302522A (zh) | 测试方法、装置以及计算机系统和介质 | |
CN110765018B (zh) | 接口自动化测试方法及设备 | |
US10331439B2 (en) | Source code transfer control method, computer program therefor, and recording medium therefor | |
CN110347590A (zh) | 业务系统的接口测试控制方法及装置 | |
CN110928777B (zh) | 测试用例的处理方法、装置、设备及存储介质 | |
CN112650688A (zh) | 自动化回归测试方法、关联设备以及计算机程序产品 | |
CN104468655A (zh) | 对反向代理软件进行测试的方法及系统 | |
CN112069073A (zh) | 测试用例的管理方法、终端和存储介质 | |
CN114880220A (zh) | 车辆自动驾驶软件的开发系统和方法 | |
US20210048999A1 (en) | Automated generation of status chains for software updates | |
CN111984527A (zh) | 软件的性能测试方法、装置、设备和介质 | |
KR20150030297A (ko) | 애플리케이션 자동 검증을 위한 검증장치, 단말장치, 시스템, 방법 및 컴퓨터로 판독 가능한 기록 매체 | |
CN110471767B (zh) | 一种设备的调度方法 | |
CN111767218B (zh) | 一种用于持续集成的自动化测试方法、设备及存储介质 | |
CN109101408B (zh) | 联调环境中业务可用性的检测方法和装置 | |
WO2014164079A1 (en) | Method and system for analyzing a trace timeline of computer system activity | |
CN105339974B (zh) | 模拟传感器 | |
CN111209197B (zh) | 应用程序持续集成测试方法、系统、设备和存储介质 | |
CN114328275A (zh) | 系统测试方法、装置、计算机设备和存储介质 | |
CN113515452A (zh) | 应用的自动测试方法、系统、电子设备及存储介质 | |
CN112765038A (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 |