CN113641575A - 一种测试方法、装置、设备及存储介质 - Google Patents

一种测试方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN113641575A
CN113641575A CN202110901261.0A CN202110901261A CN113641575A CN 113641575 A CN113641575 A CN 113641575A CN 202110901261 A CN202110901261 A CN 202110901261A CN 113641575 A CN113641575 A CN 113641575A
Authority
CN
China
Prior art keywords
current project
address
server
test
mode
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110901261.0A
Other languages
English (en)
Other versions
CN113641575B (zh
Inventor
汤亮
雷鹏
马瑞宁
韦虹宇
邵文舒峤
范磊
卢韶强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Pudong Development Bank Co Ltd
Original Assignee
Shanghai Pudong Development Bank Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Pudong Development Bank Co Ltd filed Critical Shanghai Pudong Development Bank Co Ltd
Priority to CN202110901261.0A priority Critical patent/CN113641575B/zh
Publication of CN113641575A publication Critical patent/CN113641575A/zh
Application granted granted Critical
Publication of CN113641575B publication Critical patent/CN113641575B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • 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
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种测试方法、装置、设备及存储介质。该方法包括:搭建流水线;根据所述流水线启动当前工程,并读取所述当前工程对应的配置文件,其中,所述配置文件包括:启动模式、当前工程包含的包路径、当前工程的前端执行机IP地址、当前工程所在服务器的IP地址和当前工程所在服务器的端口号;根据所述配置文件进行测试,通过本发明的技术方案,既解决了只支持单一的测试场景,不支持复杂的测试场景的问题,又解决了在测试中接口出现问题需要调用远程服务器上的接口进行对比,需要调用部署在其他服务器上的接口来辅助测试,或者调用服务器上的其他测试案例难以实现的问题,能够在开发测试,集成测试和回归测试中调用相应的测试案例进行测试。

Description

一种测试方法、装置、设备及存储介质
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种测试方法、装置、设备及存储介质。
背景技术
自动化测试是把以人为驱动的测试行为转换为机器执行的一种过程。通常,在设计测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步一步执行测试,得到实际结果与期望结果的比较。其目的是节省人力、时间或硬件资源,提高测试效率。一般是指软件测试的自动化,软件测试就是在预设条件下运行系统或者应用程序,评估运行结果,预先条件应包括正常条件和异常条件。自动化测试主流有接口自动化测试和UI自动化测试,在此基础上,加上持续集成,流水线部署,就可以实现自动化测试。自动化测试的优势还在于可以更可靠更方便的进行回归测试,可以迅速的监测出新版本中不稳定变更,尽可能的暴露出回归测试中错误,可以运行更多、更繁杂且手工测试执行困难的测试,提升软件的可信度。
接口测试是对系统或者组件之间的接口进行测试,主要是校验数据的交换,传递和控制管理过程,以及相互逻辑依赖关系。其中,接口协议有HTTP、WebService、Dubbo和Socket等类型,测试类型又主要分为功能测试、性能测试、稳定性测试、安全性测试等。相比UI自动化测试来说,接口自动化测试收益更大,且更容易实现,维护成本更低。UI自动化测试的成本比接口测试更高,并不是因为技术实现难度更高,而是因为前端UI界面调整较为频繁,改动较多,维护成本高。但是对于一些大型项目来说,在开发和测试过程中,因为项目周期长,迭代多,因此需要频繁使用自动化测试去进行回归测试,可以提高工作效率,降低工作成本。
现有的UI自动化测试技术方案主要有三种,第一种是录制与回放测试,录制是指使用自动化测试工具对桌面应用程序或者是Web页面的某一项功能进行测试并记录操作过程。录制过程中程序数据和脚本混合,每一个测试过程都会生成单独的测试脚本。界面还是复杂的界面,进行多次测试就需要多次录制。录制过程会生成对应的脚本。回放可以查看录制过程中存在的错误和不足,如图片刷新缓慢、URL地址无法打开等。第二种是脚本测试,测试脚本是测试计算机程序执行的指令集合。脚本可以使用录制过程中生成的脚本,这些脚本一般由JavaScript、Python等语言生成。第三种是数据驱动测试,数据驱动指的是从数据文件中读取输入数据并将数据以参数的形式输入脚本测试,不同的测试用例使用不同类型的数据文件。数据驱动模式实现了数据和脚本分离,相对于录制与回放测试技术,数据驱动测试可以极大的提高了脚本利用率和可维护性,但是对于界面变化较大的情景不适合数据驱动测试。
在现有的测试框架中,多数的测试框架只支持单一的测试场景,例如只能通过模拟前端页面的操作进行测试,或者直接对后端代码进行简单的单元测试,并不能支持在前后端同时进行混合测试。这样对于一个复杂的测试场景,如在对UI进行测试时需要对后端功能和数据进行调整,并不支持;而且在多数的测试框架中,并没有提供数据准备工具、批量触发工具、定时任务工具等。
在现有的测试框架中,多数的测试框架并不能实现远程调用服务器上的服务。特别是在现在微服务框架极其流行的大趋势下,多数的测试框架并不能协调好各个服务器之间的关系,测试案例不能调用不同服务器中的服务。有时在测试中某个接口出现问题需要调用远程服务器上的接口进行对比,或者需要调用部署在其他服务器上的接口来辅助测试,或者调用服务器上的其他测试案例都是难以实现的。
发明内容
本发明实施例提供一种测试方法、装置、设备及存储介质,既解决了只支持单一的测试场景,不支持复杂的测试场景的问题,又解决了在测试中接口出现问题需要调用远程服务器上的接口进行对比,需要调用部署在其他服务器上的接口来辅助测试,或者调用服务器上的其他测试案例难以实现的问题,能够在开发测试,集成测试和回归测试中调用相应的测试案例进行测试。
第一方面,本发明实施例提供了一种测试方法,包括:
搭建流水线;
根据所述流水线启动当前工程,并读取所述当前工程对应的配置文件,其中,所述配置文件包括:启动模式、当前工程包含的包路径、当前工程的前端执行机IP地址、当前工程所在服务器的IP地址和当前工程所在服务器的端口号;
根据所述配置文件进行测试。
进一步的,根据所述配置文件进行测试包括:
根据所述当前工程包含的包路径确定目标服务器的第一IP地址和目标服务器的第一端口号;
若所述启动模式包括:前端执行机模式,且所述第一IP地址、所述当前工程的前端执行机IP地址和所述当前工程所在服务器的IP地址相同,则根据所述当前工程的前端执行机IP地址和端口号对当前服务器的前端测试页面类进行监听;
若所述启动模式包括:前端执行机模式,且所述第一IP地址和所述当前工程的前端执行机IP地址中至少一个与所述当前工程所在服务器的IP地址不同,则根据所述第一IP地址、第一端口号、当前工程所在服务器的IP地址和当前工程所在服务器的端口号建立当前工程所在服务器和目标服务器之间的连接,调用目标服务器的前端测试页面类进行监听。
进一步的,还包括:
若所述启动模式包括:客户端模式,且所述第一IP地址和所述当前工程的前端执行机IP地址中至少一个与所述当前工程所在服务器的IP地址不同,则根据所述第一IP地址、第一端口号、当前工程所在服务器的IP地址和当前工程所在服务器的端口号建立当前工程所在服务器和目标服务器之间的连接,调用目标服务器的前端测试页面类和/或接口进行监听;
若所述启动模式包括:客户端模式,且所述第一IP地址、所述当前工程的前端执行机IP地址和所述当前工程所在服务器的IP地址相同,则对当前服务器的前端测试页面类和/或接口进行监听。
进一步的,还包括:
若所述启动模式还包括:后台服务器模式,则等待被其他服务器上的工程调用接口。
进一步的,还包括:
基于MOCK工具模拟数据对象或者功能的输出对目标接口进行测试。
进一步的,在根据所述配置文件进行测试之后,还包括:
通过流水线调用平台生成集成测试覆盖率报告。
第二方面,本发明实施例还提供了一种测试装置,该装置包括:
搭建模块,用于搭建流水线;
读取模块,用于根据所述流水线启动当前工程,并读取所述当前工程对应的配置文件,其中,所述配置文件包括:启动模式、当前工程包含的包路径、当前工程的前端执行机IP地址、当前工程所在服务器的IP地址和当前工程所在服务器的端口号;
测试模块,用于根据所述配置文件进行测试。
进一步的,所述测试模块具体用于:
根据所述当前工程包含的包路径确定目标服务器的第一IP地址和目标服务器的第一端口号;
若所述启动模式包括:前端执行机模式,且所述第一IP地址、所述当前工程的前端执行机IP地址和所述当前工程所在服务器的IP地址相同,则根据所述当前工程的前端执行机IP地址和端口号对当前服务器的前端测试页面类进行监听;
若所述启动模式包括:前端执行机模式,且所述第一IP地址和所述当前工程的前端执行机IP地址中至少一个与所述当前工程所在服务器的IP地址不同,则根据所述第一IP地址、第一端口号、当前工程所在服务器的IP地址和当前工程所在服务器的端口号建立当前工程所在服务器和目标服务器之间的连接,调用目标服务器的前端测试页面类进行监听。
第三方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本发明实施例中任一所述的测试方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例中任一所述的测试方法。
本发明实施例通过搭建流水线;根据所述流水线启动当前工程,并读取所述当前工程对应的配置文件,其中,所述配置文件包括:启动模式、当前工程包含的包路径、当前工程的前端执行机IP地址、当前工程所在服务器的IP地址和当前工程所在服务器的端口号;根据所述配置文件进行测试,既解决了只支持单一的测试场景,不支持复杂的测试场景的问题,又解决了在测试中接口出现问题需要调用远程服务器上的接口进行对比,需要调用部署在其他服务器上的接口来辅助测试,或者调用服务器上的其他测试案例难以实现的问题,能够在开发测试,集成测试和回归测试中调用相应的测试案例进行测试。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本发明实施例中的一种测试方法的流程图;
图1a是本发明实施例中的自动路由流程图;
图1b是本发明实施例中的系统结构图;
图2是本发明实施例中的一种测试装置的结构示意图;
图3是本发明实施例中的一种电子设备的结构示意图;
图4是本发明实施例中的一种包含计算机程序的计算机可读存储介质的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
本发明使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
图1为本发明实施例提供的一种测试方法的流程图,本实施例可适用于测试的情况,该方法可以由本发明实施例中的测试装置来执行,该装置可采用软件和/或硬件的方式实现,如图1所示,该方法具体包括如下步骤:
S110,搭建流水线。
具体的,搭建Jenkins流水线。通过Jenkins流水线实现持续集成和持续部署,提出了明确的流水线步骤,如拉取代码、替换配置文件、环境准备、前端编译、后端编译、部署、运行测试案例、生成测试报告以及测试覆盖率等。搭建Jenkins流水线是使用的JenkinsPipeline的语法,将每个步骤使用Pipeline语法格式进行编写,使其成为JenkinsPipeline可以识别的代码,去自动执行每个步骤。
S120,根据所述流水线启动当前工程,并读取所述当前工程对应的配置文件,其中,所述配置文件包括:启动模式、当前工程包含的包路径、当前工程的前端执行机IP地址、当前工程所在服务器的IP地址和当前工程所在服务器的端口号。
其中,所述启动模式可以包括:客户端模式、后台服务器模式和前端执行机模式中的至少一种。例如可以是,在开发阶段,所述启动模式可以包括:后台服务器模式和前端执行机模式。
具体的,启动流水线,流水线会自动拉取工程,并根据系统中Pipeline脚本去启动系统。每个服务器上的系统启动方式主要有四种模式:客户端模式是指当前工程只以客户端的模式启动,当前工程中测试类只能去调用其他子系统中的前端页面测试类或接口;后台服务器模式是当前工程只以服务的方式启动,并不启动对前端页面测试类的监听,等待被其他服务器上工程调用接口;前端执行机模式是只对前端测试页面类进行监听,但是并不启动服务,等待被其他服务器调用前端页面测试类。在开发阶段,使用后台服务器模式和前端执行机模式同时启动的方式,客户端在服务器不启动的情况下可以多次执行测试案例。在开发测试,集成测试和回归测试中都可以使用这几种模式的组合进行启动,调用相应的测试案例进行测试。对于每个服务器上的系统的启动模式,本发明实施例中则是通过远程过程调用功能以及自动路由功能来实现各种启动模式的不同功能。
S130,根据所述配置文件进行测试。
具体的,根据配置文件进行测试的方式可以为:根据配置文件中的启动模式进行测试,例如可以是,若启动模式包括客户端模式,则当前工程中测试类只能去调用其他子系统中的前端页面测试类或接口;若启动模式包括:后台服务器模式,则当前工程只以服务的方式启动,并不启动对前端页面测试类的监听,等待被其他服务器上工程调用接口;若启动模式包括:前端执行机模式,则只对前端测试页面类进行监听,但是并不启动服务,等待被其他服务器调用前端页面测试类。根据配置文件进行测试的方式还可以为:根据配置文件中的启动模式确定当前启动模式,根据配置文件中的当前工程包含的包路径、当前工程的前端执行机IP地址、当前工程所在服务器的IP地址和当前工程所在服务器的端口号判断是直接对当前服务器的前端测试页面类进行监听,还是调用包路径对应的目标服务器的前端测试页面类和/或接口进行监听。
可选的,根据所述配置文件进行测试包括:
根据所述当前工程包含的包路径确定目标服务器的第一IP地址和目标服务器的第一端口号;
若所述启动模式包括:前端执行机模式,且所述第一IP地址、所述当前工程的前端执行机IP地址和所述当前工程所在服务器的IP地址相同,则根据所述当前工程的前端执行机IP地址和端口号对当前服务器的前端测试页面类进行监听;
若所述启动模式包括:前端执行机模式,且所述第一IP地址和所述当前工程的前端执行机IP地址中至少一个与所述当前工程所在服务器的IP地址不同,则根据所述第一IP地址、第一端口号、当前工程所在服务器的IP地址和当前工程所在服务器的端口号建立当前工程所在服务器和目标服务器之间的连接,调用目标服务器的前端测试页面类进行监听。
可选的,还包括:
若所述启动模式包括:客户端模式,且所述第一IP地址和所述当前工程的前端执行机IP地址中至少一个与所述当前工程所在服务器的IP地址不同,则根据所述第一IP地址、第一端口号、当前工程所在服务器的IP地址和当前工程所在服务器的端口号建立当前工程所在服务器和目标服务器之间的连接,调用目标服务器的前端测试页面类和/或接口进行监听;
若所述启动模式包括:客户端模式,且所述第一IP地址、所述当前工程的前端执行机IP地址和所述当前工程所在服务器的IP地址相同,则对当前服务器的前端测试页面类和/或接口进行监听。
具体的,远程调用功能,主要是采用了Socket通讯技术的方案,具体是通过读取系统中配置文件的方式,读取到当前服务的启动模式、当前服务所包含的包路径、当前服务所在服务器的IP地址以及端口号、当前服务的前端执行机IP地址进行解析来实现的。然后再通过自动路由功能,测试人员可以在指定的前端执行机中调用测试案例,也可以调用服务器上的任意服务或者其他测试案例来进行辅助测试。通过远程调用功能,主要是解决现有技术中缺少对远程服务器上的服务调用。有时在测试中某个接口出现问题,这时需要调用远程服务器上的接口进行对比测试,或者需要调用部署在其他服务器上的接口来辅助测试,通过本发明中的远程调用功能则可以简易实现。
如图1a所示,自动路由功能,是指根据每个工程中对当前工程配置文件中的启动模式、当前工程所包含的包路径、当前工程所在服务器的IP地址以及端口号、当前工程的前端执行机IP地址进行解析,判断需要执行的接口或前端页面测试类是否是当前工程中的接口或前端页面测试类,如果不是当前工程,就会继续进行转发并路由到适配的服务器去执行对应的接口或前端页面测试类,如果是当前工程,就会调用对应的接口或前端页面测试类。自动路由的使用场景是多个服务器之间进行远程数据对象和功能的调用,配合远程调用功能可以方便的让外部系统调用本发明中的测试工具。
可选的,还包括:
若所述启动模式还包括:后台服务器模式,则等待被其他服务器上的工程调用接口。
可选的,还包括:
基于MOCK工具模拟数据对象或者功能的输出对目标接口进行测试。
具体的,在测试案例的编写以及运行中,对于纯前端测试案例中没有测试到的部分接口或者是一些代码分支难以达到,可以使用本发明实施例中的Mock工具模拟某些数据对象或功能的输出去测试测试案例中没有涉及到的部分接口,从而全面提高测试覆盖率,达到质量要求,提高软件的可信度。
本发明实施例中的Mock工具提供了模拟本系统中的数据对象、模拟其他服务器上的数据对象等功能,从而可以调用在目标系统的测试案例中调用其他的系统的接口;还提供了可以随时替换、恢复数据对象的功能,不用修改其原有功能代码和多次启动。本发明实施例中的Mock工具是通过Spring中的IOC和AOP思想去实现的,通过容器去管理Mock的数据对象,通过切面模拟去数据对象的特定输出,还使用到了自动路由工具进行是否为本地数据对象的判断,对于本地的数据对象则使用动态代理将此数据对象模拟出来;对于远程服务器上的数据对象则会使用Socket进行通信再进行模拟数据对象。通过自定义注解和Socket通信去模拟本地服务和远程服务器上的数据对象和功能的特定输出,从而可以很好的支持在对UI进行测试时需要对不同服务器中后端功能和数据进行调整的测试场景,可以很好的支持前后端测试案例混排进行测试,这是现有的技术方案并不支持的。
具体的,在现有的测试框架中,多数的测试框架在进行接口测试的时候,会使用到Mock工具进行测试。Mock测试是指对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。目前主要使用的两类Mock工具有Mockito和SpringMock,但Mockito目前只能支持模拟单一类,SpringMock不支持实时的Bean替换和恢复,会引起多次重启,无法进行多次并发测试。而在本技术方案中提供的Mock工具不仅可以Mock本系统中的数据对象,还可以Mock其他服务器上的数据对象,从而可以调用在目标系统的测试案例中调用其他的系统的接口,还可以随时替换、恢复Bean,不用修改其原有功能代码。
可选的,在根据所述配置文件进行测试之后,还包括:
通过流水线调用平台生成集成测试覆盖率报告。
具体的,如图1b所示,测试案例运行完之后,统计集成测试覆盖率的方案是通过Jenkins流水线去调用Sonar平台生成集成测试覆盖率报告,在执行完前端页面测试类中的测试案例、接口测试案例或者前后端混排测试案例之后,根据Sonar的根据页面点击内容以及测试案例中所涉及到的接口生成测试报告,从而达到自动统计集成测试覆盖率的目的。
本发明实施例提供了UI自动化测试的接口、数据准备、触发批量、定义定时任务等多个功能,从而形成了一种基于多服务器集群部署,可以支持UI测试、接口测试,还支持数据库刷新,可以以多种模式启动,易被其他案例组织系统调用的自动化测试系统,并且可以同时组合多个服务器进行前后端混合测试。通过本测试系统,在开发测试阶段,测试人员可以通过编写测试案例对UI以及接口进行测试,形成在回归测试中可以使用的测试案例,在之后的回归测试中,可以继续使用此套测试案例进行多次回归测试,进而达到一套测试案例多次使用的目的。本发明的设计思想是将所有的测试案例、后台功能以及前端测试工具等各种工具全部接口化,再通过自动路由的方式,发送到各个服务器上进行调用。
本发明实施例实现了多种技术工具的整合,如前端测试工具、数据准备工具、批量触发工具以提供UI测试和接口测试混合测试、准备测试数据以及触发批量操作等。在现有的测试框架中,多数的测试框架都是使用JavaScript语言或者Python语言进行驱动,对于使用Java语言开发的测试框架较少。如果使用JavaScript语言或者Python语言进行编写测试案例对Java程序进行测试,对于Java开发人员来说有一定的学习成本,对Java开发人员不够友好。而在本发明实施例提供的技术方案中可以使用Java语言编写类似于单元测试的测试案例,并且相应的接口也是使用Java语言编写,简单易懂。
本发明实施例提供的技术方案中使用了Socket通讯技术,通过读取配置文件,同时将所有的测试类通过自定义注解以及Spring的管理模式以Spring Bean的形式管理起来,在测试人员编写测试案例的时候也可以调用服务器上的任意服务或者其他测试案例来进行辅助测试,在部署之后任意时刻也都可以通过RobotFramework来远程调用的形式执行任意已经完成的测试案例,使得案例可以运行多次运行,验证案例得可重复性,更好的进行回归测试,也可以通过定时任务进行重要案例的执行,保证核心功能的运行平稳,一旦出现问题可以尽早的发现,将问题尽早的暴露出来,为系统问题的修复争取到更多的时间。
在现有的测试框架中,多数的单元测试测试框架是和目标系统整合在一起的,多数的功能测试框架与目标系统分离,导致单元测试和功能测试处于分离状态,无法整合使用,这样只能在开发测试阶段对目标系统进行单元测试并在目标系统部署之后修改测试案例再进行测试;而且测试案例与目标系统分开时,在编写测试案例的过程中,不能使用目标系统的某些功能。本发明实施例提供的技术方案是将测试案例和测试框架以Jar包的形式集成到目标测试系统中,既能做单元测试,又能做功能测试,还能在测试的同时监控任意方法的输入参数和输出结果。在测试案例编写过程既可以使用测试框架中的工具,也可以使用目标系统中原有的数据对象和功能。
本实施例的技术方案,通过搭建流水线;根据所述流水线启动当前工程,并读取所述当前工程对应的配置文件,其中,所述配置文件包括:启动模式、当前工程包含的包路径、当前工程的前端执行机IP地址、当前工程所在服务器的IP地址和当前工程所在服务器的端口号;根据所述配置文件进行测试,既解决了只支持单一的测试场景,不支持复杂的测试场景的问题,又解决了在测试中接口出现问题需要调用远程服务器上的接口进行对比,需要调用部署在其他服务器上的接口来辅助测试,或者调用服务器上的其他测试案例难以实现的问题,能够在开发测试,集成测试和回归测试中调用相应的测试案例进行测试。
图2为本发明实施例提供的一种测试装置的结构示意图。本实施例可适用于测试的情况,该装置可采用软件和/或硬件的方式实现,该测试装置可集成在任何提供测试功能的设备中,如图2所示,所述测试装置具体包括:搭建模块210、读取模块220和测试模块230。
其中,搭建模块210,用于搭建流水线;
读取模块220,用于根据所述流水线启动当前工程,并读取所述当前工程对应的配置文件,其中,所述配置文件包括:启动模式、当前工程包含的包路径、当前工程的前端执行机IP地址、当前工程所在服务器的IP地址和当前工程所在服务器的端口号;
测试模块230,用于根据所述配置文件进行测试。
可选的,所述测试模块具体用于:
根据所述当前工程包含的包路径确定目标服务器的第一IP地址和目标服务器的第一端口号;
若所述启动模式包括:前端执行机模式,且所述第一IP地址、所述当前工程的前端执行机IP地址和所述当前工程所在服务器的IP地址相同,则根据所述当前工程的前端执行机IP地址和端口号对当前服务器的前端测试页面类进行监听。
上述产品可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
本实施例的技术方案,通过搭建流水线;根据所述流水线启动当前工程,并读取所述当前工程对应的配置文件,其中,所述配置文件包括:启动模式、当前工程包含的包路径、当前工程的前端执行机IP地址、当前工程所在服务器的IP地址和当前工程所在服务器的端口号;根据所述配置文件进行测试,既解决了只支持单一的测试场景,不支持复杂的测试场景的问题,又解决了在测试中接口出现问题需要调用远程服务器上的接口进行对比,需要调用部署在其他服务器上的接口来辅助测试,或者调用服务器上的其他测试案例难以实现的问题,能够在开发测试,集成测试和回归测试中调用相应的测试案例进行测试。
图3为本发明实施例中的一种电子设备的结构示意图。图3示出了适于用来实现本发明实施方式的示例性电子设备12的框图。图3显示的电子设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图3所示,电子设备12以通用计算设备的形式表现。电子设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture,ISA)总线,微通道体系结构(Micro Channel Architecture,MCA)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standards Association,VESA)局域总线以及外围组件互连(Peripheral Component Interconnect,PCI)总线。
电子设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory,RAM)30和/或高速缓存存储器32。电子设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图3未显示,通常称为“硬盘驱动器”)。尽管图3中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(只读光盘(Compact Disc-Read Only Memory,CD-ROM)、数字视盘(Digital Video Disc-Read Only Memory,DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。系统存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如系统存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
电子设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该电子设备12交互的设备通信,和/或与使得该电子设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。另外,本实施例中的电子设备12,显示器24不是作为独立个体存在,而是嵌入镜面中,在显示器24的显示面不予显示时,显示器24的显示面与镜面从视觉上融为一体。并且,电子设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(Local Area Network,LAN),广域网Wide Area Network,WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与电子设备12的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(Redundant Arrays of Independent Disks,RAID)系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的测试方法:
搭建流水线;
根据所述流水线启动当前工程,并读取所述当前工程对应的配置文件,其中,所述配置文件包括:启动模式、当前工程包含的包路径、当前工程的前端执行机IP地址、当前工程所在服务器的IP地址和当前工程所在服务器的端口号;
根据所述配置文件进行测试。
图4为本发明实施例中的一种包含计算机程序的计算机可读存储介质的结构示意图。本发明实施例提供了一种计算机可读存储介质61,其上存储有计算机程序610,该程序被一个或多个处理器执行时实现如本申请所有发明实施例提供的测试方法:
搭建流水线;
根据所述流水线启动当前工程,并读取所述当前工程对应的配置文件,其中,所述配置文件包括:启动模式、当前工程包含的包路径、当前工程的前端执行机IP地址、当前工程所在服务器的IP地址和当前工程所在服务器的端口号;
根据所述配置文件进行测试。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(Hyper Text TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络包括局域网(LAN)或广域网(WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种测试方法,其特征在于,包括:
搭建流水线;
根据所述流水线启动当前工程,并读取所述当前工程对应的配置文件,其中,所述配置文件包括:启动模式、当前工程包含的包路径、当前工程的前端执行机IP地址、当前工程所在服务器的IP地址和当前工程所在服务器的端口号;
根据所述配置文件进行测试。
2.根据权利要求1所述的方法,其特征在于,根据所述配置文件进行测试包括:
根据所述当前工程包含的包路径确定目标服务器的第一IP地址和目标服务器的第一端口号;
若所述启动模式包括:前端执行机模式,且所述第一IP地址、所述当前工程的前端执行机IP地址和所述当前工程所在服务器的IP地址相同,则根据所述当前工程的前端执行机IP地址和端口号对当前服务器的前端测试页面类进行监听;
若所述启动模式包括:前端执行机模式,且所述第一IP地址和所述当前工程的前端执行机IP地址中至少一个与所述当前工程所在服务器的IP地址不同,则根据所述第一IP地址、第一端口号、当前工程所在服务器的IP地址和当前工程所在服务器的端口号建立当前工程所在服务器和目标服务器之间的连接,调用目标服务器的前端测试页面类进行监听。
3.根据权利要求2所述的方法,其特征在于,还包括:
若所述启动模式包括:客户端模式,且所述第一IP地址和所述当前工程的前端执行机IP地址中至少一个与所述当前工程所在服务器的IP地址不同,则根据所述第一IP地址、第一端口号、当前工程所在服务器的IP地址和当前工程所在服务器的端口号建立当前工程所在服务器和目标服务器之间的连接,调用目标服务器的前端测试页面类和/或接口进行监听;
若所述启动模式包括:客户端模式,且所述第一IP地址、所述当前工程的前端执行机IP地址和所述当前工程所在服务器的IP地址相同,则对当前服务器的前端测试页面类和/或接口进行监听。
4.根据权利要求2所述的方法,其特征在于,还包括:
若所述启动模式还包括:后台服务器模式,则等待被其他服务器上的工程调用接口。
5.根据权利要求1所述的方法,其特征在于,还包括:
基于MOCK工具模拟数据对象或者功能的输出对目标接口进行测试。
6.根据权利要求1所述的方法,其特征在于,在根据所述配置文件进行测试之后,还包括:
通过流水线调用平台生成集成测试覆盖率报告。
7.一种测试装置,其特征在于,包括:
搭建模块,用于搭建流水线;
读取模块,用于根据所述流水线启动当前工程,并读取所述当前工程对应的配置文件,其中,所述配置文件包括:启动模式、当前工程包含的包路径、当前工程的前端执行机IP地址、当前工程所在服务器的IP地址和当前工程所在服务器的端口号;
测试模块,用于根据所述配置文件进行测试。
8.根据权利要求7所述的装置,其特征在于,所述测试模块具体用于:
根据所述当前工程包含的包路径确定目标服务器的第一IP地址和目标服务器的第一端口号;
若所述启动模式包括:前端执行机模式,且所述第一IP地址、所述当前工程的前端执行机IP地址和所述当前工程所在服务器的IP地址相同,则根据所述当前工程的前端执行机IP地址和端口号对当前服务器的前端测试页面类进行监听;
若所述启动模式包括:前端执行机模式,且所述第一IP地址和所述当前工程的前端执行机IP地址中至少一个与所述当前工程所在服务器的IP地址不同,则根据所述第一IP地址、第一端口号、当前工程所在服务器的IP地址和当前工程所在服务器的端口号建立当前工程所在服务器和目标服务器之间的连接,调用目标服务器的前端测试页面类进行监听。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述处理器实现如权利要求1-6中任一所述的方法。
10.一种包含计算机程序的计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被一个或多个处理器执行时实现如权利要求1-6中任一所述的方法。
CN202110901261.0A 2021-08-06 2021-08-06 一种测试方法、装置、设备及存储介质 Active CN113641575B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110901261.0A CN113641575B (zh) 2021-08-06 2021-08-06 一种测试方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110901261.0A CN113641575B (zh) 2021-08-06 2021-08-06 一种测试方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN113641575A true CN113641575A (zh) 2021-11-12
CN113641575B CN113641575B (zh) 2024-04-09

Family

ID=78419901

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110901261.0A Active CN113641575B (zh) 2021-08-06 2021-08-06 一种测试方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN113641575B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114385258A (zh) * 2021-12-08 2022-04-22 北京云测信息技术有限公司 自动化测试方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120016621A1 (en) * 2010-07-13 2012-01-19 Salesforce.Com, Inc. Method and system for multi-mode testing through operation interface and scenario abstraction in a multi-tenant database environment
CN108574604A (zh) * 2017-03-07 2018-09-25 北京京东尚科信息技术有限公司 测试方法和装置
CN110795343A (zh) * 2019-10-12 2020-02-14 车智互联(北京)科技有限公司 测试系统、测试方法和计算设备
CN112559350A (zh) * 2020-12-16 2021-03-26 杭州数梦工场科技有限公司 前端开发页面的调试方法、装置、设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120016621A1 (en) * 2010-07-13 2012-01-19 Salesforce.Com, Inc. Method and system for multi-mode testing through operation interface and scenario abstraction in a multi-tenant database environment
CN108574604A (zh) * 2017-03-07 2018-09-25 北京京东尚科信息技术有限公司 测试方法和装置
CN110795343A (zh) * 2019-10-12 2020-02-14 车智互联(北京)科技有限公司 测试系统、测试方法和计算设备
CN112559350A (zh) * 2020-12-16 2021-03-26 杭州数梦工场科技有限公司 前端开发页面的调试方法、装置、设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114385258A (zh) * 2021-12-08 2022-04-22 北京云测信息技术有限公司 自动化测试方法、装置、电子设备及存储介质
CN114385258B (zh) * 2021-12-08 2023-09-26 北京云测信息技术有限公司 自动化测试方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN113641575B (zh) 2024-04-09

Similar Documents

Publication Publication Date Title
JP7209034B2 (ja) エッジコンピューティングテスト方法、装置、機器及び読み取り可能な記憶媒体
CN109302522B (zh) 测试方法、装置以及计算机系统和介质
US9697104B2 (en) End-to end tracing and logging
US10339039B2 (en) Virtual service interface
US20080209405A1 (en) Distributed debugging for a visual programming language
CN111309343B (zh) 一种开发部署方法及装置
US8904356B2 (en) Collaborative software debugging in a distributed system with multi-member variable expansion
US9009673B2 (en) Collaborative software debugging in a distributed system with collaborative step over operation
CN112187585A (zh) 网络协议测试方法及装置
US9898390B2 (en) Virtual service localization
US20090019315A1 (en) Automated software testing via multi-channel remote computing
US20120272218A1 (en) Collaborative Software Debugging In A Distributed System With Stacked Run-To-Cursor Commands
CN106354629A (zh) 一种基于多级服务器的iOS系统移动应用自动测试系统的架构方法
CN112650676A (zh) 软件测试方法、装置、设备及存储介质
CN111949509A (zh) 应用软件的响应时间测试方法、装置、设备及存储介质
US9208058B2 (en) Providing directional debugging breakpoints
CN111309606B (zh) 页面异常处理方法、装置、计算机设备及存储介质
US20120272219A1 (en) Collaborative Software Debugging In A Distributed System With Symbol Locking
US20120102467A1 (en) Collaborative Software Debugging In A Distributed System With Client-Specific Display Location Upon Event Notification
US20140331205A1 (en) Program Testing Service
CN111899731A (zh) 语音功能的稳定性测试方法、装置、设备和计算机存储介质
CN111190791A (zh) 应用异常上报方法、装置和电子设备
CN113836014A (zh) 一种接口测试方法、装置、电子设备和存储介质
CN113641575B (zh) 一种测试方法、装置、设备及存储介质
WO2005082072A2 (en) Testing web services workflow using web service tester

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