CN111324526B - 接口测试系统、方法和服务器 - Google Patents

接口测试系统、方法和服务器 Download PDF

Info

Publication number
CN111324526B
CN111324526B CN201811540165.2A CN201811540165A CN111324526B CN 111324526 B CN111324526 B CN 111324526B CN 201811540165 A CN201811540165 A CN 201811540165A CN 111324526 B CN111324526 B CN 111324526B
Authority
CN
China
Prior art keywords
test
data
module
test data
functional
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
CN201811540165.2A
Other languages
English (en)
Other versions
CN111324526A (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.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud Technology 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 Beijing Kingsoft Cloud Network Technology Co Ltd, Beijing Kingsoft Cloud Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN201811540165.2A priority Critical patent/CN111324526B/zh
Publication of CN111324526A publication Critical patent/CN111324526A/zh
Application granted granted Critical
Publication of CN111324526B publication Critical patent/CN111324526B/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

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

本发明提供了一种接口测试系统、方法和服务器;其中,该系统包括依次通信连接的测试模块、数据适配模块和业务接口模块;业务接口模块与待测试的业务对象通信连接;测试模块用于根据预先生成的测试用例,输出对应的测试数据;数据适配模块用于对测试数据进行格式转换,得到与业务对象相匹配的测试数据;业务接口模块用于将转换后的测试数据输入至业务对象,并从业务对象中获取测试数据对应的测试结果。本发明中,测试模块与业务接口模块相分离,并通过数据适配模块进行数据匹配,因此该系统可以实现功能、压力、性能等多方面的测试,同时,通过使用自动生成的测试用例进行测试,可以对业务对象的接口进行全面、细粒度的测试,测试结果更加准确。

Description

接口测试系统、方法和服务器
技术领域
本发明涉及软件测试技术领域,尤其是涉及一种接口测试系统、方法和服务器。
背景技术
接口测试通常应用于对软件系统的开发过程中,主要测试软件系统对外部提供的接口或者系统内部的交互接口,以验证接口的正确性和稳定性。接口测试具体可以划分为多种测试类型,例如,功能测试、压力测试、性能测试等。现有的接口测试主要依赖现有的测试工具实现,如压力测试工具Jmeter,系统行为和性能的负载测试工具loadrunner等。
现有方式中,工程师需要在现有的测试工具上进行二次开发,以与待测试的软件系统进行适配,但每种测试工具仅能实现一部分测试,导致测试的全面性和准确性较差;另外,经二次开发的测试工具通常需要人工编写的测试用例才能进行测试;受人工编写效率的影响,测试工具常常只能进行粗粒度的测试,进一步影响了测试结果的全面性和准确性。
发明内容
有鉴于此,本发明的目的在于提供一种接口测试系统、方法和服务器,以对接口进行全面、细粒度的测试,使测试结果更加准确。
第一方面,本发明实施例提供了一种接口测试系统,系统包括依次通信连接的测试模块、数据适配模块和业务接口模块;业务接口模块与待测试的业务对象通信连接;测试模块用于根据预先生成的测试用例,输出对应的测试数据;数据适配模块用于对测试数据进行格式转换,得到与业务对象相匹配的测试数据;业务接口模块用于将转换后的测试数据输入至业务对象,并从业务对象中获取测试数据对应的测试结果。
在本发明较佳的实施例中,上述系统还包括用例生成模块,用于根据业务对象的测试需求,生成多条测试用例。
在本发明较佳的实施例中,上述测试模块包括功能测试单元,用于根据预先生成的功能测试对应的测试用例,输出用于功能测试的测试数据。
在本发明较佳的实施例中,上述功能测试单元包括功能测试数据存储区和功能测试框架;功能测试数据存储区用于保存功能测试对应的测试用例;功能测试框架用于供用户编写业务对象对应的功能测试程序,通过功能测试程序输出用于功能测试的测试数据。
在本发明较佳的实施例中,上述测试模块包括压力测试单元,用于根据预先生成的压力测试对应的测试用例,输出用于压力测试的测试数据。
在本发明较佳的实施例中,上述压力测试单元包括压力测试数据存储区和压力测试框架;压力测试数据存储区用于保存压力测试对应的测试用例;压力测试框架用于供用户编写业务对象对应的压力测试程序,通过压力测试程序输出用于压力测试的测试数据。
在本发明较佳的实施例中,上述数据适配模块接收的测试数据的格式为HashMap格式、Json格式或XML格式。
在本发明较佳的实施例中,上述系统还包括数据引流模块,用于从业务对象中获取线上用户数据,将线上用户数据作为测试数据。
在本发明较佳的实施例中,上述数据引流模块包括日志获取单元、数据分析单元和数据存储单元;日志获取单元用于从业务对象中获取线上日志,从线上日志中提取测试需求对应的线上用户数据;数据分析单元用于对线上用户数据进行数据清洗处理,得到线上用户数据;数据存储单元用于将处理后的线上用户数据保存为测试数据。
第二方面,本发明实施例提供了一种接口测试方法,该方法应用于上述接口测试系统;方法包括:根据预先生成的测试用例,输出对应的测试数据;对测试数据进行格式转换,得到与业务对象相匹配的测试数据;将转换后的测试数据输入至业务对象,并从业务对象中获取测试数据对应的测试结果。
在本发明较佳的实施例中,上述在根据预先生成的测试用例,输出对应的测试数据之前,还包括:根据业务对象的测试需求,生成多条测试用例。
在本发明较佳的实施例中,上述根据预先生成的测试用例,输出对应的测试数据,包括:根据预先生成的功能测试对应的测试用例,输出用于功能测试的测试数据。
在本发明较佳的实施例中,上述根据预先生成的功能测试对应的测试用例,输出用于功能测试的测试数据的步骤,包括:保存功能测试对应的测试用例;接收用户编写的业务对象对应的功能测试程序,通过功能测试程序输出用于功能测试的测试数据。
在本发明较佳的实施例中,上述根据预先生成的测试用例,输出对应的测试数据,包括:根据预先生成的压力测试对应的测试用例,输出用于压力测试的测试数据。
在本发明较佳的实施例中,上述根据预先生成的压力测试对应的测试用例,输出用于压力测试的测试数据的步骤,包括:保存压力测试对应的测试用例;接收用户编写的业务对象对应的压力测试程序,通过压力测试程序输出用于压力测试的测试数据。
在本发明较佳的实施例中,上述测试数据的格式为HashMap格式、Json格式或XML格式。
在本发明较佳的实施例中,上述方法还包括:从业务对象中获取线上用户数据,将线上用户数据作为测试数据。
在本发明较佳的实施例中,上述从业务对象中获取线上用户数据,将线上用户数据作为测试数据的步骤,包括:从业务对象中获取线上日志,从线上日志中提取测试需求对应的线上用户数据;对线上用户数据进行数据清洗处理,得到线上用户数据;将处理后的线上用户数据保存为测试数据。
第三方面,本发明实施例提供了一种服务器,服务器包括存储器以及处理器,存储器用于存储支持处理器运行上述接口测试系统的程序,处理器被配置为用于执行存储器中存储的程序。
第四方面,本发明实施例提供了一种计算机存储介质,用于储存为上述接口测试系统所用的计算机软件指令。
本发明实施例带来了以下有益效果:
本发明实施例提供的一种接口测试系统、方法和服务器,通过测试模块根据预先生成的测试用例,输出对应的测试数据;通过数据适配模块对测试数据进行格式转换,得到与业务对象相匹配的测试数据;通过业务接口模块将转换后的测试数据输入至业务对象,并从业务对象中获取测试数据对应的测试结果。该方式中,测试模块与业务接口模块相分离,并通过数据适配模块进行数据匹配,因此该系统可以实现功能、压力、性能等多方面的测试;同时,通过使用自动生成的测试用例进行测试,可以对业务对象的接口进行全面、细粒度的测试,测试结果更加准确。
本发明的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本发明的上述技术即可得知。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施方式,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种接口测试系统的结构示意图;
图2为本发明实施例提供的另一种接口测试系统的结构示意图;
图3为本发明实施例提供的另一种接口测试系统的结构示意图;
图4为本发明实施例提供的另一种接口测试系统的结构示意图;
图5为本发明实施例提供的一种接口测试方法的流程图;
图6为本发明实施例提供的一种服务器的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有的接口测试方式中,首先需要对通用的测试工具进行二次开发,得到与当前待测试的软件系统相适配的测试工具,再对该软件系统执行测试;以压力测试工具Jmeter为例,经二次开发后的Jmeter依然只能对软件系统进行压力测试,测试功能有限;如果需要对软性系统进行压力性能测试,还需要使用其他测试工具,如loadrunner,但是该测试工具仍需要进行开发。
在上述测试工具的二次开发过程中,该测试工具中的底层业务逻辑、以及测试功能本身都可能被改变,因此,开发后的测试工具所使用的测试用例难以通过自动方式生成,需要工程师手动编写。然而,对于一个软件系统,通常会存在大量的内部或外部接口;工程师手动编写测试用例效率较低,测试用例数量有限,这就导致只能对软件系统的一部分接口进行测试,接受测试的接口也仅能实现一部分情况下的测试,这种粗粒度的测试方式使得测试结果的全面性和准确度都很难保证。
基于上述问题,本发明实施例提供了一种接口测试系统、方法和服务器;该技术可以应用于存储系统、应用系统、或其他软件系统、软件程序的测试过程中,下面进行具体描述。
本发明实施例首先提供了一种接口测试系统,如图1所示,该系统包括依次通信连接的测试模块10、数据适配模块11和业务接口模块12;该业务接口模块12与待测试的业务对象通信连接;
上述测试模块10用于根据预先生成的测试用例,输出对应的测试数据;上述数据适配模块11用于对上述测试数据进行格式转换,得到与上述业务对象相匹配的测试数据;上述业务接口模块12用于将转换后的测试数据输入至业务对象,并从业务对象中获取测试数据对应的测试结果。
其中,该待测试的业务对象通常为软件系统、软件程序等;上述测试模块可以根据测试需求划分为多个测试单元,如功能测试单元、压力测试单元等。通常,各个测试单元相对独立设置,测试单元之间相互不影响,可以分别独立开发,可以同时运行;即该接口测试系统在运行过程中,可以同时通过各个测试单元对业务对象进行相应的测试。
上述业务接口模块中通常包含有一些通用测试组件,这些通用组件可以被上述测试模型中的各个测试单元调用,例如,既可以被功能测试单元调用,也可以被压力测试单元调用。其中,功能测试单元将测试数据输入至业务接口模块后,经通用测试组件处理后,输入至与业务接口模块连接的业务对象中;该业务对象接收测试数据,经自身软件程序的处理后,输出对应的反馈信息,该反馈信息即上述测试结果。上述该业务接口单元具体可以通过多种API(Application Programming Interface,应用程序编程接口)接口逻辑实现。
通常,上述测试模块中的各个测试单元通常输出的测试数据格式不同;如功能测试单元的测试数据通常为表格形式;压力测试单元的测试数据通常为Json(JavaScriptObject Notation,JS对象简谱)格式;为了使各个测试单元都可以调用业务接口模块中的通用测试组件,需要通过数据适配模块,将不同测试模块输出的测试数据进行数据格式的统一。
上述数据适配模块可以将测试数据进行格式转换,转换的测试数据与业务接口模块相匹配;测试数据的格式通常为HashMap格式、Json格式或XML(Extensible MarkupLanguage,可扩展标记语言)格式;该数据适配模块可以预先建立一个统一的数据框架格式,并可以识别上述各种格式的测试数据;从识别出的测试数据中提取对应的内容,填充至上述数据框架格式中的对应位置,从而得到统一格式的测试数据。该数据适配模块也可以通过支持多种数据类型的DataAdapter实现。
上述接口测试系统中,业务接口模块中的通用测试组件与具体的测试模块分离出来,并通过数据适配模块进行数据适配;因此,测试模块中各个测试单元所使用的测试用例,可以自动生成;具体地,对于功能测试单元,用于功能测试的测试用例通常具有较为固定的格式和内容,因此,只要业务对象的功能测试需求,就可以自动生成大量的测试用例,从而实现业务对象中各个接口的测试,以及对每个接口较为全面的测试。
对于测试模块和业务接口模块混合在一起的测试系统,通常需要手动编写测试用例,如果业务对象中存在100个接口,受手动编写测试用例效率的影响,可能仅对其中较为重要的接口进行测试,如40个;每个接口中,在业务对象的实际运行中,可能会出现10种可能的情况,而在测试过程中,受到测试用例数量的限制,一个接口可能仅有5个测试用例,以模拟上述10种情况中的5种情况,这就会造成接口测试的不全面,难以知晓接口在每个可能的情况下的反应。而本实施例中的接口测试系统中,可使用的测试用例充足,可对业务对象中的每个接口进行测试,每个接口的所有情况都可以实现测试,从而实现更加全面、更加细粒度的接口测试。
本发明实施例提供的一种接口测试系统,通过测试模块根据预先生成的测试用例,输出对应的测试数据;通过数据适配模块对测试数据进行格式转换,得到与业务对象相匹配的测试数据;通过业务接口模块将转换后的测试数据输入至业务对象,并从业务对象中获取测试数据对应的测试结果。该方式中,测试模块与业务接口模块相分离,并通过数据适配模块进行数据匹配,因此该系统可以实现功能、压力、性能等多方面的测试,同时,通过使用自动生成的测试用例进行测试,可以对业务对象的接口进行全面、细粒度的测试,测试结果更加准确。
本发明实施例还提供了另一种接口测试系统,该系统在上述图1所示系统的基础上实现;本实施例中,具体描述了测试用例的生成方式,以及测试模块、业务接口模块的具体实现过程;如图2所示,该系统具体描述如下。
首先,该接口测试系统还包括用例生成模块20,用于根据业务对象的测试需求,生成多条测试用例。该测试需求通常包括需要测试的接口、以及每个接口需要测试的各种情况;通常,每条测试用例可以模拟一个接口的一种情况,并得到该接口在该测试用例测试下的反馈数据。在实际实现时,该用例生成模块也称为case生成机,可以同时输出数万条测试用例。通过上述用例生成模块可以生成符合业务对象测试需求的,大量的测试用例,以实现较为细粒度的接口测试。
该接口测试系统在测试过程中,可以通过上述用例生成模块得到业务对象的测试用例,也可以采用真实的用户数据作为测试用例;为了获取该用户数据,系统需要设置一个数据引流模块21,用于从业务对象中获取线上用户数据,将该线上用户数据作为测试数据。该数据引流模块与数据适配模块连接,通常设置有与业务对象进行通信的接口,通过该接口可以实时获取业务对象中的线上用户数据,也可以从数据库中查找历史的线上用户数据。
上述实施例中,描述了测试模块用于根据预先生成的测试用例,输出对应的测试数据;然而,测试模块中的各种测试单元,由于具体的功能不同,所需要的测试用例不同,因而具体的结构也不同,本实施例中与测试模块包括功能测试单元和压力测试单元为例进行说明,如图3所示,下面分别描述。
上述测试模块中的功能测试单元101用于对业务对象的接口进行功能测试,例如,对于数据存储系统(如对象存储系统),可以提供对应的接口供用户保存数据;对该接口进行功能测试的具体内容通常包括:通过该接口保存的数据会不会丢失,会不会保存错误(如用户保存的是A文件,而后续给用户返回的是B文件),各种存储方式(包括普通上传、分块上传、断网重连后的断点上传)是不是能够实现,数据存储的持久性、数据加密的安全性、可靠性等。
上述测试模块中的压力测试单元102用于对软件系统的接口进行压力测试和性能测试,例如,上述数据存储系统,在大流量、高并发访问下,数据存储的速率、可靠性等测试,属于压力测试单元的功能范畴。
上述测试模块中的功能测试单元和压力测试单元通常相对独立设置,两个单元之间相对独立设置,测试单元之间相互不影响,可以分别独立开发,可以同时运行;即该接口测试系统可以通过功能测试单元对业务对象进行功能测试,同时,通过压力测试单元对该业务对象或其他业务对象进行压力和性能测试。
具体而言,测试模块的功能测试单元包括功能测试数据存储区101a和功能测试框架101b;该功能测试数据存储区101a用于保存功能测试对应的测试用例;功能测试框架101b用于供用户编写业务对象对应的功能测试程序,通过功能测试程序输出用于功能测试的测试数据。
上述功能测试对应的测试用例的保存格式可以为表格形式,也可以为文本形式;该表格形式具体可以为excel表,也可以为数据库表格等。以excel表为例,一个测试用例可以占一行,测试用例中的一个测试参数可以占一列;上述功能测试框架中保存有多种用于功能测试的基础组件,用户可以根据该业务对象的测试需求,对基础组件的参数、结构等进行修改,从而得到该业务对象对应的上述功能测试程序;该功能测试程序具体可以为TestNg,当业务对象为Java应用程序时,可以应用该TestNg进行功能测试。
同样地,上述测试模块的压力测试单元包括压力测试数据存储区102a和压力测试框架102b;该压力测试数据存储区102a用于保存压力测试对应的测试用例;压力测试框架102b用于供用户编写业务对象对应的压力测试程序,通过压力测试程序输出用于压力测试的测试数据。
压力测试对应的测试用例的保存格式通常为轻量级的数据格式,如Json格式、XML格式等;其中,Json形式采用完全独立于编程语言的文本格式来存储和表示数据,层次结构简洁清晰;由于压力测试所使用的测试用例数据流通常较大,采用Json形式进行保存和传输,可以提高数据在接口测试系统中的传输效率,是一种较为理想的数据交换形式。上述压力测试框架中保存有多种用于压力测试的基础组件,用户可以根据该业务对象的测试需求,对基础组件的参数、结构等进行修改,从而得到该业务对象对应的上述压力测试程序。
在实际实现时,可以针对具体的业务对象,对上述功能测试单元和压力测试单元中的测试框架进行修改即可,底层的业务接口模块为通用组件,无需进行修改,因此,这种将测试模块从业务接口模块中抽离出来的结构形式,可以提高接口测试系统的通用性。
在获取线上用户数据作为测试用例时,上述数据引流模块包括日志获取单元211、数据分析单元212和数据存储单元213;其中,该日志获取单元211用于从业务对象中获取线上日志,从该线上日志中提取测试需求对应的线上用户数据;该线上日志可以通过特定的指令进行查看并获取数据,例如,通过cat命令可以从线上日志中输出指定的文本,并可以过滤出预设关键字附近的文本数据等。
上述数据分析单元212用于对线上用户数据进行数据清洗处理,得到Json格式的线上用户数据;通过数据清洗处理,可以对线上用户数据进行审查和校验,如,删除重复的数据、纠正错误数据、检查数据是否处于合理的范围内等;通过数据清洗可以提高线上用户数据的质量,有利于提高后续测试结果的有效性和准确性。
上述数据存储单元213用于将处理后的线上用户数据保存为测试数据。该数据存储单元中可以设置有存储区,以保存测试数据;该数据存储单元也可以为一个接口,该接口与特定的存储区(如数据库)连接,将上述测试数据传输至该存储区中进行保存。
该数据引流模块可以视为该接口测试系统的一个数据接口,通过该数据接口获取线上的真实数据,将这些真实数据清洗成Json格式后,即可被数据适配模块处理,并运行在业务接口模块中;因此,该数据引流模块可以使系统更加便捷地扩展数据来源和功能。
上述通过数据分析单元获取的线上用户数据,可以用于对业务对象的探索性测试。由上述可知,功能测试和压力测试在执行之前,工程师会通过功能测试框架或压力测试框架预先编写对应的功能测试程序和压力测试程序,程序编写完成后,再执行测试过程;而探索性测试中,可以在编写相关的测试程序的同时,执行该测试程序,在执行的过程中,根据执行结果不断更改程序,最终得到较为完善的测试程序。
上述接口测试系统中,通过用例生成模块可以得到大量的测试用例,通过功能测试单元和压力测试单元对业务对象进行功能测试和压力测试,输出对应的测试数据;通过数据适配模块将指定格式的测试数据进行转换,得到与业务接口模块相匹配的测试数据;通过业务接口模块将转换后的测试数据输入至业务对象,并从业务对象中获取测试数据对应的测试结果;该系统中还设置了数据引流模块,用于从业务对象中获取线上用户数据作为测试用例进行测试;该方式中,测试模块与业务接口模块相分离,并通过数据适配模块进行数据匹配,该系统是一种以业务为支撑的测试体系,改变了现有的以工具为支撑的测试体系架构,因此该系统可以实现功能、压力、性能等多方面的测试,可以对一个业务对象进行整体测试,获得该业务对象的整体能力;同时,通过使用自动生成的测试用例进行测试,可以对业务对象的接口进行全面、细粒度的测试,测试结果更加准确。
本发明还提供了另一种接口测试系统,该系统也可以称为API自动化测试框架,如图4所示,该框架中的功能逻辑层对应于上述接口测试系统中的业务接口模块,数据适配层对应于上述系统中的数据适配模块,数据层对应于上述系统中的测试模块和数据引流模块(也可以称为数据引流框架)。
该API自动化测试框架中,数据层包含功能测试功能、压力测试功能和数据引流框架;其中,功能测试功能的接口测试数据以excel表格格式存储,通过TestNg实现功能测试;压力测试功能的压力测试数据以Json格式存储,通过预设的压力测试框架实现压力和性能测试;数据引流框架获取业务对象的线上日志,从线上日志中提取用户数据,对提取到的用户数据进行数据分析或数据清洗后,将用户数据以Json格式进行保存。
上述功能测试功能输出的测试数据为HashMap格式,压力测试功能和数据引流框架输出的测试数据为Json格式;HashMap格式或Json格式的测试数据经数据适配层的支持多种数据类型的DataAdapter处理后,输入至功能逻辑层;该功能逻辑层中,API逻辑接口与待测试的业务对象通信连接,DataBean对接收到的测试进行缓存,将测试数据通过API逻辑接口输入至业务对象中,并接收业务对象返回的测试数据对应的测试结果。
需要说明的是,上述各系统实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
对应于上述系统实施例,本发明实施例还提供了一种接口测试方法,该方法应用于上述接口测试系统;如图5所示,该方法包括如下步骤:
步骤S502,根据预先生成的测试用例,输出对应的测试数据;
步骤S504,对测试数据进行格式转换,得到与业务对象相匹配的测试数据;
步骤S506,将转换后的测试数据输入至业务对象,并从业务对象中获取测试数据对应的测试结果。
本发明实施例提供的一种接口测试方法,通过测试模块根据预先生成的测试用例,输出对应的测试数据;通过数据适配模块对测试数据进行格式转换,得到与业务对象相匹配的测试数据;通过业务接口模块将转换后的测试数据输入至业务对象,并从业务对象中获取测试数据对应的测试结果。该方式中,测试模块与业务接口模块相分离,并通过数据适配模块进行数据匹配,因此该系统可以实现功能、压力、性能等多方面的测试,同时,通过使用自动生成的测试用例进行测试,可以对业务对象的接口进行全面、细粒度的测试,测试结果更加准确。
进一步地,上述在根据预先生成的测试用例,输出对应的测试数据之前,还包括:根据业务对象的测试需求,生成多条测试用例。
进一步地,上述根据预先生成的测试用例,输出对应的测试数据,包括:根据预先生成的功能测试对应的测试用例,输出用于功能测试的测试数据。
进一步地,上述根据预先生成的功能测试对应的测试用例,输出用于功能测试的测试数据的步骤,包括:保存功能测试对应的测试用例;接收用户编写的业务对象对应的功能测试程序,通过功能测试程序输出用于功能测试的测试数据。
进一步地,上述根据预先生成的测试用例,输出对应的测试数据,包括:根据预先生成的压力测试对应的测试用例,输出用于压力测试的测试数据。
进一步地,上述根据预先生成的压力测试对应的测试用例,输出用于压力测试的测试数据的步骤,包括:保存压力测试对应的测试用例;接收用户编写的业务对象对应的压力测试程序,通过压力测试程序输出用于压力测试的测试数据。
进一步地,上述测试数据的格式为HashMap格式、Json格式或XML格式。
进一步地,上述方法还包括:从业务对象中获取线上用户数据,将线上用户数据作为测试数据。
进一步地,上述从业务对象中获取线上用户数据,将线上用户数据作为测试数据的步骤,包括:从业务对象中获取线上日志,从线上日志中提取测试需求对应的线上用户数据;对线上用户数据进行数据清洗处理,得到线上用户数据;将处理后的线上用户数据保存为测试数据。
本发明实施例提供的接口测试方法,与上述实施例提供的接口测试系统具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
本实施例提供了一种与上述系统实施例相对应的服务器。图6为该服务器的结构示意图,如图6所示,该设备包括处理器601和存储器602;其中,存储器602用于存储一条或多条计算机指令,一条或多条计算机指令被处理器执行,以运行上述接口测试系统。
图6所示的服务器还包括总线603和转发芯片604,处理器601、转发芯片604和存储器602通过总线603连接。该服务器可以是网络边缘设备。
其中,存储器602可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。总线603可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
转发芯片604用于通过网络接口与至少一个用户终端及其它网络单元连接,将封装好的IPv4报文或IPv6报文通过网络接口发送至用户终端。
处理器601可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述系统中的各功能可以通过处理器601中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器601可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processing,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的系统的各功能可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器602,处理器601读取存储器602中的信息,结合其硬件完成前述系统的各个功能。
本发明实施例还提供了一种计算机存储介质,该计算机存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器运行上述接口测试系统,具体实现可参见系统实施例,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
最后应说明的是:以上所述实施例,仅为本公开的具体实施例,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

Claims (18)

1.一种接口测试系统,其特征在于,所述系统包括依次通信连接的用例生成模块、测试模块、数据适配模块和业务接口模块;所述业务接口模块中包含有通用测试组件,所述通用测试组件被所述测试模块中的各个测试单元调用,所述业务接口模块与待测试的业务对象通信连接;
所述用例生成模块用于根据所述业务对象的测试需求,生成多条测试用例;
所述测试模块用于根据预先生成的测试用例,输出对应的测试数据;
所述数据适配模块用于基于预先建立的数据框架格式对所述测试数据进行格式转换,得到与所述业务对象相匹配的测试数据;其中,所述数据适配模块用于基于预先建立的数据框架格式对所述测试数据进行格式转换,得到与所述业务对象相匹配的测试数据具体包括:所述数据适配模块具体用于识别各种格式的测试数据,从识别出的测试数据中提取对应的内容,并填充至所述数据框架格式中的对应位置,得到统一格式的测试数据;
所述业务接口模块用于将转换后的所述测试数据输入至所述业务对象,并从所述业务对象中获取所述测试数据对应的测试结果;其中,所述业务接口模块用于将转换后的所述测试数据输入至所述业务对象具体包括:所述业务接口模块具体用于将转换后的所述测试数据经所述通用测试组件处理后,输入至所述业务对象。
2.根据权利要求1所述的系统,其特征在于,所述测试模块包括功能测试单元,用于根据预先生成的功能测试对应的测试用例,输出用于功能测试的测试数据。
3.根据权利要求2所述的系统,其特征在于,所述功能测试单元包括功能测试数据存储区和功能测试框架;
所述功能测试数据存储区用于保存功能测试对应的测试用例;
所述功能测试框架用于供用户编写所述业务对象对应的功能测试程序,通过所述功能测试程序输出用于功能测试的测试数据。
4.根据权利要求1所述的系统,其特征在于,所述测试模块包括压力测试单元,用于根据预先生成的压力测试对应的测试用例,输出用于压力测试的测试数据。
5.根据权利要求4所述的系统,其特征在于,所述压力测试单元包括压力测试数据存储区和压力测试框架;
所述压力测试数据存储区用于保存压力测试对应的测试用例;
所述压力测试框架用于供用户编写所述业务对象对应的压力测试程序,通过所述压力测试程序输出用于压力测试的测试数据。
6.根据权利要求1所述的系统,其特征在于,所述数据适配模块接收的测试数据的格式为HashMap格式、Json格式或XML格式。
7.根据权利要求1所述的系统,其特征在于,所述系统还包括数据引流模块,用于从所述业务对象中获取线上用户数据,将所述线上用户数据作为测试数据。
8.根据权利要求7所述的系统,其特征在于,所述数据引流模块包括日志获取单元、数据分析单元和数据存储单元;
所述日志获取单元用于从所述业务对象中获取线上日志,从所述线上日志中提取所述测试需求对应的线上用户数据;
所述数据分析单元用于对所述线上用户数据进行数据清洗处理,得到线上用户数据;
所述数据存储单元用于将处理后的所述线上用户数据保存为测试数据。
9.一种接口测试方法,其特征在于,所述方法应用于权利要求1-8任一项所述的接口测试系统;所述方法包括:
根据所述业务对象的测试需求,生成多条测试用例;
根据预先生成的测试用例,输出对应的测试数据;
基于预先建立的数据框架格式对所述测试数据进行格式转换,得到与所述业务对象相匹配的测试数据;其中,所述基于预先建立的数据框架格式对所述测试数据进行格式转换,得到与所述业务对象相匹配的测试数据具体包括:识别各种格式的测试数据,从识别出的测试数据中提取对应的内容,并填充至所述数据框架格式中的对应位置,得到统一格式的测试数据;
将转换后的所述测试数据输入至所述业务对象,并从所述业务对象中获取所述测试数据对应的测试结果;其中,所述将转换后的所述测试数据输入至所述业务对象具体包括:将转换后的所述测试数据经所述通用测试组件处理后,输入至所述业务对象。
10.根据权利要求9所述的方法,其特征在于,所述根据预先生成的测试用例,输出对应的测试数据,包括:根据预先生成的功能测试对应的测试用例,输出用于功能测试的测试数据。
11.根据权利要求10所述的方法,其特征在于,根据预先生成的功能测试对应的测试用例,输出用于功能测试的测试数据的步骤,包括:
保存功能测试对应的测试用例;
接收用户编写的所述业务对象对应的功能测试程序,通过所述功能测试程序输出用于功能测试的测试数据。
12.根据权利要求9所述的方法,其特征在于,所述根据预先生成的测试用例,输出对应的测试数据的步骤,包括:根据预先生成的压力测试对应的测试用例,输出用于压力测试的测试数据。
13.根据权利要求12所述的方法,其特征在于,根据预先生成的压力测试对应的测试用例,输出用于压力测试的测试数据的步骤,包括:
保存压力测试对应的测试用例;
接收用户编写的所述业务对象对应的压力测试程序,通过所述压力测试程序输出用于压力测试的测试数据。
14.根据权利要求9所述的方法,其特征在于,所述测试数据的格式为HashMap格式、Json格式或XML格式。
15.根据权利要求9所述的方法,其特征在于,所述方法还包括:从所述业务对象中获取线上用户数据,将所述线上用户数据作为测试数据。
16.根据权利要求15所述的方法,其特征在于,从所述业务对象中获取线上用户数据,将所述线上用户数据作为测试数据的步骤,包括:
从所述业务对象中获取线上日志,从所述线上日志中提取所述测试需求对应的线上用户数据;
对所述线上用户数据进行数据清洗处理,得到线上用户数据;
将处理后的所述线上用户数据保存为测试数据。
17.一种服务器,其特征在于,所述服务器包括存储器以及处理器,所述存储器用于存储支持处理器运行权利要求1至8任一项所述系统的程序,所述处理器被配置为用于执行所述存储器中存储的程序。
18.一种计算机存储介质,其特征在于,用于储存为权利要求1至8任一项所述系统所用的计算机软件指令。
CN201811540165.2A 2018-12-14 2018-12-14 接口测试系统、方法和服务器 Active CN111324526B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811540165.2A CN111324526B (zh) 2018-12-14 2018-12-14 接口测试系统、方法和服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811540165.2A CN111324526B (zh) 2018-12-14 2018-12-14 接口测试系统、方法和服务器

Publications (2)

Publication Number Publication Date
CN111324526A CN111324526A (zh) 2020-06-23
CN111324526B true CN111324526B (zh) 2024-04-26

Family

ID=71170836

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811540165.2A Active CN111324526B (zh) 2018-12-14 2018-12-14 接口测试系统、方法和服务器

Country Status (1)

Country Link
CN (1) CN111324526B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112104526A (zh) * 2020-09-21 2020-12-18 中国人民解放军陆军装备部驻北京地区军事代表局驻石家庄地区第一军事代表室 测试系统及测试方法
CN112148621A (zh) * 2020-10-14 2020-12-29 中国农业银行股份有限公司 一种测试方法、装置及电子设备
CN112486838A (zh) * 2020-12-14 2021-03-12 广州品唯软件有限公司 接口测试方法、装置、计算机设备和存储介质
CN112685319A (zh) * 2021-01-07 2021-04-20 北京全路通信信号研究设计院集团有限公司 一种自动化测试方法、装置、介质、电子设备和系统
CN113760722A (zh) * 2021-01-13 2021-12-07 北京京东振世信息技术有限公司 测试系统和测试方法
CN113448867B (zh) * 2021-07-16 2022-08-16 谢靖 一种软件压力测试方法及装置

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101996132A (zh) * 2009-08-14 2011-03-30 中兴通讯股份有限公司 公用对象请求代理程序体系结构接口自动测试方法和装置
CN103902456A (zh) * 2014-04-09 2014-07-02 中国工商银行股份有限公司 测试脚本处理装置、系统及方法
CN103942142A (zh) * 2014-03-31 2014-07-23 百度在线网络技术(北京)有限公司 应用程序业务的检测方法及装置
CN105354142A (zh) * 2015-11-26 2016-02-24 深圳市金证科技股份有限公司 中间件测试方法及装置
CN106598869A (zh) * 2016-12-26 2017-04-26 北京京东金融科技控股有限公司 实现软件自动测试的方法、装置及电子设备
CN106648945A (zh) * 2016-09-30 2017-05-10 北京金山安全软件有限公司 一种接口数据测试方法、装置及电子设备
CN106776314A (zh) * 2016-12-14 2017-05-31 普华基础软件股份有限公司 一种测试系统
CN107026773A (zh) * 2017-05-16 2017-08-08 四川长虹电器股份有限公司 用于接口自动化测试的自动关联方法
CN107480053A (zh) * 2017-07-21 2017-12-15 杭州销冠网络科技有限公司 一种软件测试数据生成方法及装置
CN107729228A (zh) * 2017-08-24 2018-02-23 北京网众共创科技有限公司 接口测试方法、装置、存储介质和处理器
CN107908541A (zh) * 2017-07-26 2018-04-13 平安壹钱包电子商务有限公司 接口测试方法、装置、计算机设备及存储介质
CN107992428A (zh) * 2018-01-03 2018-05-04 成都能通科技有限公司 一种Python实现的自动化测试平台
CN108415832A (zh) * 2018-02-07 2018-08-17 平安科技(深圳)有限公司 接口自动化测试方法、装置、设备及存储介质
CN108536596A (zh) * 2018-04-09 2018-09-14 武汉斗鱼网络科技有限公司 基于对象构造数据的自动化测试方法、可读介质及设备
CN108804305A (zh) * 2017-05-05 2018-11-13 北京嘀嘀无限科技发展有限公司 一种自动化测试的方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9373093B2 (en) * 2013-11-07 2016-06-21 Sap Se Gateway service manager for business object applications
US20180165180A1 (en) * 2016-12-14 2018-06-14 Bank Of America Corporation Batch File Creation Service
US20180217921A1 (en) * 2017-02-02 2018-08-02 Cognizant Technology Solutions India Pvt. Ltd. System and method for generating and executing automated test cases

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101996132A (zh) * 2009-08-14 2011-03-30 中兴通讯股份有限公司 公用对象请求代理程序体系结构接口自动测试方法和装置
CN103942142A (zh) * 2014-03-31 2014-07-23 百度在线网络技术(北京)有限公司 应用程序业务的检测方法及装置
CN103902456A (zh) * 2014-04-09 2014-07-02 中国工商银行股份有限公司 测试脚本处理装置、系统及方法
CN105354142A (zh) * 2015-11-26 2016-02-24 深圳市金证科技股份有限公司 中间件测试方法及装置
CN106648945A (zh) * 2016-09-30 2017-05-10 北京金山安全软件有限公司 一种接口数据测试方法、装置及电子设备
CN106776314A (zh) * 2016-12-14 2017-05-31 普华基础软件股份有限公司 一种测试系统
CN106598869A (zh) * 2016-12-26 2017-04-26 北京京东金融科技控股有限公司 实现软件自动测试的方法、装置及电子设备
CN108804305A (zh) * 2017-05-05 2018-11-13 北京嘀嘀无限科技发展有限公司 一种自动化测试的方法及装置
CN107026773A (zh) * 2017-05-16 2017-08-08 四川长虹电器股份有限公司 用于接口自动化测试的自动关联方法
CN107480053A (zh) * 2017-07-21 2017-12-15 杭州销冠网络科技有限公司 一种软件测试数据生成方法及装置
CN107908541A (zh) * 2017-07-26 2018-04-13 平安壹钱包电子商务有限公司 接口测试方法、装置、计算机设备及存储介质
CN107729228A (zh) * 2017-08-24 2018-02-23 北京网众共创科技有限公司 接口测试方法、装置、存储介质和处理器
CN107992428A (zh) * 2018-01-03 2018-05-04 成都能通科技有限公司 一种Python实现的自动化测试平台
CN108415832A (zh) * 2018-02-07 2018-08-17 平安科技(深圳)有限公司 接口自动化测试方法、装置、设备及存储介质
CN108536596A (zh) * 2018-04-09 2018-09-14 武汉斗鱼网络科技有限公司 基于对象构造数据的自动化测试方法、可读介质及设备

Also Published As

Publication number Publication date
CN111324526A (zh) 2020-06-23

Similar Documents

Publication Publication Date Title
CN111324526B (zh) 接口测试系统、方法和服务器
CN109189684B (zh) 基于Python的接口自动化测试方法
Bento et al. Automated analysis of distributed tracing: Challenges and research directions
CN1908895B (zh) 验证应用程序全球化问题的系统和方法
CN107451058B (zh) 一种软件开发方法和装置
US20100251214A1 (en) Apparatus, system, and method for dynamic module flow analysis
CN116521512A (zh) 代码的精准测试方法、装置、电子设备及计算机可读介质
CN114880176A (zh) 一种航空数据转换单元测试系统、方法及装置
US11615016B2 (en) System and method for executing a test case
CN104360946A (zh) 一种测试缺陷的计算机实现的方法及计算机
CN114443466A (zh) 用例文件转换可执行脚本的方法、终端设备及存储介质
CN117370217A (zh) 一种基于python的接口测试结果自动生成方法
Villalobos-Arias et al. Evaluation of a model‐based testing platform for Java applications
CN109508204B (zh) 一种前端代码质量检测方法及装置
CN109471637B (zh) 电路图的审查脚本调试方法
CN111506305A (zh) 工具包生成方法、装置、计算机设备及可读存储介质
CN115730546A (zh) 一种片上网络协议的软硬件协同监测方法及装置
CN115543832A (zh) 一种软件代码标准性的检测方法、系统、设备及存储介质
CN115454702A (zh) 日志故障分析方法、装置、存储介质及电子设备
CN114661615A (zh) 一种fpga软件测试方法和设备
CN112069062A (zh) 一种软件测试bug模块编辑生成的方法及装置
CN112559345A (zh) 基于LoadRunner的接口测试方法、计算机设备及存储介质
JP2011154568A (ja) 情報処理装置、プログラム検証方法およびプログラム
CN110908896A (zh) 一种基于决策树的测试方法及装置
CN114448851B (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