CN111221742A - 一种测试案例的更新方法、装置、存储介质和服务器 - Google Patents

一种测试案例的更新方法、装置、存储介质和服务器 Download PDF

Info

Publication number
CN111221742A
CN111221742A CN202010059873.5A CN202010059873A CN111221742A CN 111221742 A CN111221742 A CN 111221742A CN 202010059873 A CN202010059873 A CN 202010059873A CN 111221742 A CN111221742 A CN 111221742A
Authority
CN
China
Prior art keywords
interface
target
test case
interface information
updated
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
Application number
CN202010059873.5A
Other languages
English (en)
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.)
Ping An Life Insurance Company of China Ltd
Original Assignee
Ping An Life Insurance Company of China 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 Ping An Life Insurance Company of China Ltd filed Critical Ping An Life Insurance Company of China Ltd
Priority to CN202010059873.5A priority Critical patent/CN111221742A/zh
Publication of CN111221742A publication Critical patent/CN111221742A/zh
Pending legal-status Critical Current

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
    • G06F11/368Test management for test version control, e.g. updating test cases to a new software version
    • 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/3696Methods or tools to render software testable

Abstract

本申请适用于计算机技术领域,提出一种测试案例的更新方法、装置、存储介质和服务器。该更新方法包括:获取预先构建的接口文档;检测所述接口文档中接口信息出现更新的目标接口;从测试案例库中查找与所述目标接口关联的目标测试案例;将所述目标测试案例保存的接口信息和所述目标接口更新后的接口信息进行比较;若所述目标测试案例保存的接口信息和所述目标接口更新后的接口信息不同,则将所述目标测试案例保存的接口信息更新为所述目标接口更新后的接口信息。通过这样设置,当接口发生变化时,测试人员只要修改接口文档中记录的该接口的接口信息即可,系统会自动查找与该接口关联的所有测试案例进行更新,从而极大地减少测试人员的工作量。

Description

一种测试案例的更新方法、装置、存储介质和服务器
技术领域
本申请属于计算机技术领域,尤其涉及一种测试案例的更新方法、装置、存储介质和服务器。
背景技术
目前,在常规的接口测试过程中,若接口发生了变化,则需要测试人员人工对与该接口相关的测试案例进行更新。例如:接口消息头增加了数据,在传统测试中,需要对使用该接口的所有测试案例进行修改,增加对应的信息,如果测试涉及了大量测试案例,则测试人员的重复性工作多,给测试工作带来了不便。
发明内容
有鉴于此,本申请提出一种测试案例的更新方法,当接口发生变化时,能够自动更新相应的测试案例,降低了对测试案例进行维护的人工成本。
第一方面,本申请实施例提供了一种测试案例的更新方法,包括:
获取预先构建的接口文档,所述接口文档记录软件测试项目中各个接口的接口信息,所述接口信息包含接口的唯一标记符;
检测所述接口文档中接口信息出现更新的目标接口;
从测试案例库中查找与所述目标接口关联的目标测试案例,所述测试案例库中的每个测试案例均保存自身关联接口的接口信息,所述目标测试案例保存的接口信息包含所述目标接口的唯一标记符;
将所述目标测试案例保存的接口信息和所述目标接口更新后的接口信息进行比较;
若所述目标测试案例保存的接口信息和所述目标接口更新后的接口信息不同,则将所述目标测试案例保存的接口信息更新为所述目标接口更新后的接口信息。
通过这样设置,当接口发生变化时,测试人员只要修改接口文档中记录的该接口的接口信息即可,系统会自动查找与该接口关联的所有测试案例,并对查找到的测试案例所保存的接口信息进行更新,从而极大地减少测试人员的工作量,降低对测试案例进行维护的人工成本。
进一步的,所述检测所述接口文档中接口信息出现更新的目标接口可以包括:
当检测到对所述接口文档的保存操作时,获取所述接口文档当前的文档内容;
将所述当前的文档内容和预设数据库保存的所述接口文档的原始文档内容进行比对,并根据比对的结果查找出变更的接口信息;
将所述变更的接口信息所对应的接口确定为所述目标接口;
将所述当前的文档内容更新到所述预设数据库保存的所述接口文档中。
当测试人员对接口文档进行更新之后,会手动保存更新后的接口文档,此时服务器系统检测到对所述接口文档的保存操作时,会获取保存后的接口文档的文档内容,与数据库保存的该接口文档的原始文档内容进行比对,根据比对的结果即可找出变更的接口信息,确定相应的目标接口。最后,将更新后的文档内容更新到该数据库保存的该接口文档中。
进一步的,在从测试案例库中查找与所述目标接口关联的目标测试案例之前,还可以包括:
判断所述目标接口是否为新增接口;
若所述目标接口是新增接口,则将所述目标接口添加到所述软件测试项目中;
若所述目标接口不是新增接口,则执行从测试案例库中查找与所述目标接口关联的目标测试案例的步骤以及后续步骤。
如果该目标接口是新增加的接口,则测试案例库中存储的所有测试案例肯定都不是与该目标接口关联的。因此,为了避免做无用的操作,可以先判断该目标接口是否为新增接口,若不是新增接口,才执行查找与所述目标接口关联的目标测试案例的步骤。若是新增接口,则将所述目标接口添加到所述软件测试对应的接口项目中,表示接口项目中添加了新的接口。
更进一步的,所述软件测试项目采用swagger工具进行维护,所述判断所述目标接口是否为新增接口可以包括:
确定所述目标接口在swagger工具中所属的目标功能模块;
若所述目标功能模块不属于所述软件测试项目已添加的功能模块,则判定所述目标接口是新增接口;
若所述目标功能模块属于所述软件测试项目已添加的功能模块,则判定所述目标接口不是新增接口。
在确定目标接口是否新增接口时,可以结合swagger工具进行判断。在通过swagger批量更新接口项目时,可以按照模块名称、接口类型、接口url判断该目标接口是否为新增接口。比如,若swagger中的某个功能模块在软件测试项目中没有,而该目标接口属于该功能模块下的接口,则可以判定该目标接口为新增接口。若该功能模块在软件测试项目中有,则可以直接判定该目标接口不是新增接口;或者也可以进一步比较该功能模块下的目标接口在swagger中以及在软件测试项目中的接口类型、接口url是否相同,若接口类型和接口url都相同,则判定该目标接口不是新增接口。
具体的,所述将所述目标测试案例保存的接口信息和所述目标接口更新后的接口信息进行比较可以包括:
比较所述目标测试案例保存的接口信息的消息头与所述目标接口更新后的接口信息的消息头是否相同;
若所述目标接口属于get请求的接口,则比较所述目标测试案例保存的接口信息的query入参、key-value模式的入参与所述目标接口更新后的接口信息的query入参、key-value模式的入参是否分别相同;
若所述目标接口属于非get请求的接口,则比较所述目标测试案例保存的接口信息的query入参、key-value模式的入参、和json入参与所述目标接口更新后的接口信息的query入参、key-value模式的入参、和json入参是否分别相同;
若所述目标测试案例保存的接口信息的消息头与所述目标接口更新后的接口信息的消息头不同,或者所述目标测试案例保存的接口信息的query入参、key-value模式的入参与所述目标接口更新后的接口信息的query入参、key-value模式的入参不是分别相同,或者所述目标测试案例保存的接口信息的query入参、key-value模式的入参、和json入参与所述目标接口更新后的接口信息的query入参、key-value模式的入参、和json入参不是分别相同,则判定所述目标测试案例保存的接口信息和所述目标接口更新后的接口信息不同。
软件测试项目中的接口文档保存了接口信息,而测试案例在引用接口时,不仅记录接口的唯一ID,也将接口的其它信息保存在案例中。在比较时,将目标测试案例中保存的接口信息与实际的接口信息(即该目标接口更新后的接口信息)进行比较,具体的比较方式可以包括消息头的比较,以及各类入参的比较。
进一步的,所述将所述目标测试案例保存的接口信息更新为所述目标接口更新后的接口信息可以包括:
若所述目标接口更新后的接口信息相较于所述目标测试案例保存的接口信息,添加了一个消息头,则将所述消息头的key值和默认值添加到所述目标测试案例保存的接口信息中;
若所述目标接口更新后的接口信息相较于所述目标测试案例保存的接口信息,接口入参发生了变化,则将发生变化的入参的信息更新到所述目标测试案例保存的接口信息中。
在更新接口信息时,若所述目标接口更新后的接口信息添加了一个消息头,则可以将新增的消息头的key值和默认值,添加到所述目标测试案例保存的接口信息中,实现更新;若所述目标接口更新后的接口信息的入参发生了变化,则可以将变化入参的属性信息,更新到所述目标测试案例保存的该入参的属性信息中。比如,目标接口为post请求,body中添加了一个字段,接口保存时,触发对比功能。对比发现新增字段之后,会将新增字段的名称、类型,是否可为空及对应的默认值保存到测试案例的接口信息中。
进一步的,所述接口文档被划分为多个不同的区域,每个区域分别对应一种测试案例的更新方式,所述从测试案例库中查找与所述目标接口关联的目标测试案例可以包括:
确定所述目标接口的接口信息在所述接口文档中所属的目标区域;
从所述测试案例库中查找与所述目标接口关联的所有测试案例;
按照所述目标区域对应的测试案例的更新方式,从查找到的测试案例中挑选出待更新的目标测试案例。
为了提高测试案例更新的灵活性与实用性,还可以将该接口文档划分为多个区域,不同的区域对应不同的测试案例更新方式。比如,在更新测试案例时,可以更新与该目标接口关联的所有测试案例,或者是从中挑选出一部分测试案例进行更新。
第二方面,本申请实施例提供了一种测试案例的更新装置,包括:
接口文档获取模块,用于获取预先构建的接口文档,所述接口文档记录软件测试项目中各个接口的接口信息,所述接口信息包含接口的唯一标记符;
更新接口检测模块,用于检测所述接口文档中接口信息出现更新的目标接口;
测试案例查找模块,用于从测试案例库中查找与所述目标接口关联的目标测试案例,所述测试案例库中的每个测试案例均保存自身关联接口的接口信息,所述目标测试案例保存的接口信息包含所述目标接口的唯一标记符;
接口信息比较模块,用于将所述目标测试案例保存的接口信息和所述目标接口更新后的接口信息进行比较;
接口信息更新模块,用于若所述目标测试案例保存的接口信息和所述目标接口更新后的接口信息不同,则将所述目标测试案例保存的接口信息更新为所述目标接口更新后的接口信息。
第三方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本申请实施例第一方面提出的测试案例的更新方法。
第四方面,本申请实施例提供了一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例第一方面提出的测试案例的更新方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面所述的测试案例的更新方法。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种测试案例的更新方法的第一个实施例的流程图;
图2是本申请实施例提供的一种测试案例的更新方法的第二个实施例的流程图;
图3是本申请实施例提供的一种测试案例的更新装置的一个实施例的结构图;
图4是本申请实施例提供的一种服务器的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
本申请提出一种测试案例的更新方法,当接口发生变化时,能够自动更新相应的测试案例,降低了对测试案例进行维护的人工成本。
应当理解,本申请各个实施例提出的测试案例的更新方法的执行主体是服务器。
请参阅图1,本申请实施例中一种测试案例的更新方法的第一个实施例包括:
101、获取预先构建的接口文档;
在对测试案例进行更新时,首先会获取一个预先构建的接口文档,该接口文档记录软件测试项目中各个接口的接口信息,接口信息可以包含接口的唯一标记符,接口的名称,以及接口的相关属性等信息。其中,该唯一标记符是不可变更的,用于唯一的表示某个接口。
102、检测所述接口文档中接口信息出现更新的目标接口;
然后,检测该接口文档中接口信息出现更新的接口,作为目标接口。具体的,步骤102可以包括:
(1)当检测到对所述接口文档的保存操作时,获取所述接口文档当前的文档内容;
(2)将所述当前的文档内容和预设数据库保存的所述接口文档的原始文档内容进行比对,并根据比对的结果查找出变更的接口信息;
(3)将所述变更的接口信息所对应的接口确定为所述目标接口;
(4)将所述当前的文档内容更新到所述预设数据库保存的所述接口文档中。
可以在检测到对该接口文档的保存操作之后,触发检测目标接口的操作。当接口发生变化后,测试人员会在该接口文档中更新相应的接口信息,然后保存更新信息后的接口文档,继而触发检测目标接口的操作。具体的,系统会获取保存后的接口文档的文档内容,与数据库保存的该接口文档的原始文档内容进行比对,根据比对的结果即可找出变更的接口信息,确定相应的目标接口。最后,将更新后的文档内容更新到该数据库保存的该接口文档中。
103、从测试案例库中查找与所述目标接口关联的目标测试案例;
在确定目标接口之后,从预先构建的测试案例库中查找与所述目标接口关联的目标测试案例。具体的,所述测试案例库中的每个测试案例均保存自身关联接口的接口信息,由于接口信息包含接口的唯一标记符,故可以确定保存的接口信息包含所述目标接口的唯一标记符的测试案例即为目标测试案例。
具体的,为了提高测试案例更新的灵活性与实用性,还可以将该接口文档划分为多个区域,不同的区域对应不同的测试案例更新方式,即步骤103可以包括:
(1)确定所述目标接口的接口信息在所述接口文档中所属的目标区域;
(2)从所述测试案例库中查找与所述目标接口关联的所有测试案例;
(3)按照所述目标区域对应的测试案例的更新方式,从查找到的测试案例中挑选出待更新的目标测试案例。
比如,若所述目标接口的接口信息在所述接口文档中所属的目标区域为第一区域,则将查找到的所有与所述目标接口关联的测试案例都作为目标测试案例;若所述目标接口的接口信息在所述接口文档中所属的目标区域为第二区域,则分别获取各个查找到的与所述目标接口关联的测试案例的优先级,将优先级最高的前预设数量的测试案例作为目标测试案例;若所述目标接口的接口信息在所述接口文档中所属的目标区域为第三区域,则获取预设的漏洞记录文件,根据所述漏洞记录文件查找与所述目标接口关联的漏洞,然后从查找到的与所述目标接口关联的测试案例中选取针对于该漏洞的测试案例,作为目标测试案例等。
104、将所述目标测试案例保存的接口信息和所述目标接口更新后的接口信息进行比较;
在找出目标测试案例之后,将所述目标测试案例保存的接口信息和所述目标接口更新后的接口信息进行比较。接口文档保存了接口信息,而测试案例在引用接口时,不仅记录接口的唯一标记符,也将接口的其它信息保存在案例中。在比较时,将目标测试案例中保存的接口信息与实际的接口信息(即该目标接口更新后的接口信息)进行比较,具体的比较方式可以包括:
(1)比较所述目标测试案例保存的接口信息的消息头与所述目标接口更新后的接口信息的消息头是否相同;
(2)若所述目标接口属于get请求的接口,则比较所述目标测试案例保存的接口信息的query入参、key-value模式的入参与所述目标接口更新后的接口信息的query入参、key-value模式的入参是否分别相同;
(3)若所述目标接口属于非get请求的接口,则比较所述目标测试案例保存的接口信息的query入参、key-value模式的入参、和json入参与所述目标接口更新后的接口信息的query入参、key-value模式的入参、和json入参是否分别相同;
(4)若所述目标测试案例保存的接口信息的消息头与所述目标接口更新后的接口信息的消息头不同,或者所述目标测试案例保存的接口信息的query入参、key-value模式的入参与所述目标接口更新后的接口信息的query入参、key-value模式的入参不是分别相同,或者所述目标测试案例保存的接口信息的query入参、key-value模式的入参、和json入参与所述目标接口更新后的接口信息的query入参、key-value模式的入参、和json入参不是分别相同,则判定所述目标测试案例保存的接口信息和所述目标接口更新后的接口信息不同。
软件测试项目中的接口文档保存了接口信息,而测试案例在引用接口时,不仅记录接口的唯一ID,也将接口的其它信息保存在案例中。在比较时,将目标测试案例中保存的接口信息与实际的接口信息(即该目标接口更新后的接口信息)进行比较,具体的比较方式可以包括消息头的比较,以及各类入参的比较。在上述比较方式中,若消息头不同,或者任意类型的一个入参的信息不同,则可以确定两部分的接口信息不同,需要执行接口信息的更新。若消息头以及各个入参的信息都相同,则可以确定两部分的接口信息相同。
105、判断所述目标测试案例保存的接口信息和所述目标接口更新后的接口信息是否相同;
在比较之后,判断所述目标测试案例保存的接口信息和所述目标接口更新后的接口信息是否相同。若所述目标测试案例保存的接口信息和所述目标接口更新后的接口信息不同,则执行步骤106;若所述目标测试案例保存的接口信息和所述目标接口更新后的接口信息相同,则执行步骤107。
106、将所述目标测试案例保存的接口信息更新为所述目标接口更新后的接口信息;
两部分接口信息不同,则表明目标测试案例保存的接口信息需要更新,此时将每个目标测试案例保存的接口信息都更新为该目标接口更新后的接口信息。
具体的,步骤106可以包括:
(1)若所述目标接口更新后的接口信息相较于所述目标测试案例保存的接口信息,添加了一个消息头,则将所述消息头的key值和默认值添加到所述目标测试案例保存的接口信息中;
(2)若所述目标接口更新后的接口信息相较于所述目标测试案例保存的接口信息,接口入参发生了变化,则将发生变化的入参的信息更新到所述目标测试案例保存的接口信息中。
在更新接口信息时,若所述目标接口更新后的接口信息添加了一个消息头,则可以将新增的消息头的key值和默认值,添加到所述目标测试案例保存的接口信息中,实现更新;若所述目标接口更新后的接口信息的入参发生了变化,则可以将变化入参的属性信息,更新到所述目标测试案例保存的该入参的属性信息中。比如,目标接口为post请求,body中添加了一个字段,接口保存时,触发对比功能。对比发现新增字段之后,会将新增字段的名称、类型,是否可为空及对应的默认值保存到测试案例的接口信息中。
107、不对所述目标测试案例保存的接口信息进行处理。
两部分接口信息相同,则表明目标测试案例保存的接口信息无需更新,故此时不对所述目标测试案例保存的接口信息进行处理。
本申请实施例提出的测试案例的更新方法包括:获取预先构建的接口文档;检测所述接口文档中接口信息出现更新的目标接口;从测试案例库中查找与所述目标接口关联的目标测试案例;将所述目标测试案例保存的接口信息和所述目标接口更新后的接口信息进行比较;若所述目标测试案例保存的接口信息和所述目标接口更新后的接口信息不同,则将所述目标测试案例保存的接口信息更新为所述目标接口更新后的接口信息。通过这样设置,当接口发生变化时,测试人员只要修改接口文档中记录的该接口的接口信息即可,系统会自动查找与该接口关联的所有测试案例,并对查找到的测试案例所保存的接口信息进行更新,从而极大地减少测试人员的工作量,降低对测试案例进行维护的人工成本。
请参阅图2,本申请实施例中一种测试案例的更新方法的第二个实施例包括:
201、获取预先构建的接口文档;
202、检测所述接口文档中接口信息出现更新的目标接口;
步骤201-202与步骤101-102相同,具体可参照步骤101-102的相关说明。
203、判断所述目标接口是否为新增接口;
在检测到目标接口之后,首先判断该目标接口是否为软件测试项目的一个新增接口。如果该目标接口是新增加的接口,则测试案例库中存储的所有测试案例肯定都不是与该目标接口关联的。因此,为了避免做无用的操作,可以先判断该目标接口是否为新增接口,若不是新增接口,才执行查找与所述目标接口关联的目标测试案例的步骤。若是新增接口,则将所述目标接口添加到所述软件测试对应的接口项目中,表示接口项目中添加了新的接口。
具体的,软件测试项目采用swagger工具进行维护,步骤203可以包括:
(1)确定所述目标接口在swagger工具中所属的目标功能模块;
(2)若所述目标功能模块不属于所述软件测试项目已添加的功能模块,则判定所述目标接口是新增接口;
(3)若所述目标功能模块属于所述软件测试项目已添加的功能模块,则判定所述目标接口不是新增接口。
在判断目标接口是否为新增接口时,可以结合swagger工具进行判断。在通过swagger批量更新接口项目时,可以按照模块名称、接口类型、接口url判断该目标接口是否为新增接口。比如,若swagger中的某个功能模块在软件测试项目中没有,而该目标接口属于该功能模块下的接口,则可以判定该目标接口为新增接口。若该功能模块在软件测试项目中有,则可以直接判定该目标接口不是新增接口;或者也可以进一步比较该功能模块下的目标接口在swagger中以及在软件测试项目中的接口类型、接口url是否相同,若接口类型和接口url都相同,则判定该目标接口不是新增接口。
另外,如果接口项目中有该目标接口的信息,而swagger工具中没有,则表明该目标接口是被删除的接口。使用swagger工具,可以把相关的接口信息存储在它定义的描述文件里面(yml或json格式),再通过维护这个描述文件可以去更新接口文档,以及生成各端代码。若所述目标接口是新增接口,则执行步骤204;若所述目标接口不是新增接口,则执行步骤205-209。
204、将所述目标接口添加到所述软件测试项目中;
所述目标接口为新增接口,此时将所述目标接口添加到所述软件测试对应的接口项目中,表示接口项目添加了新的接口。
205、从测试案例库中查找与所述目标接口关联的目标测试案例;
206、将所述目标测试案例保存的接口信息和所述目标接口更新后的接口信息进行比较;
207、判断所述目标测试案例保存的接口信息和所述目标接口更新后的接口信息是否相同;
208、将所述目标测试案例保存的接口信息更新为所述目标接口更新后的接口信息;
209、不对所述目标测试案例保存的接口信息进行处理。
步骤205-209和步骤103-107相同,具体可以参照步骤103-107的相关说明。
与本申请的第一个实施例相比,本实施例在检测到目标接口之后,首先会判断该目标接口是否为软件测试项目的一个新增接口,当不是新增接口时,才会执行后续的从测试案例库中查找与所述目标接口关联的目标测试案例的步骤。如果该目标接口是新增加的接口,则测试案例库中存储的所有测试案例肯定都不是与该目标接口关联的,此时是不必进行测试案例的查找操作的。因此,通过这样设置,可以避免做无用的操作,提高数据处理效率。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例所述的测试案例的更新方法,图3示出了本申请实施例提供的测试案例的更新装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图3,该装置包括:
接口文档获取模块301,用于获取预先构建的接口文档,所述接口文档记录软件测试项目中各个接口的接口信息,所述接口信息包含接口的唯一标记符;
更新接口检测模块302,用于检测所述接口文档中接口信息出现更新的目标接口;
测试案例查找模块303,用于从测试案例库中查找与所述目标接口关联的目标测试案例,所述测试案例库中的每个测试案例均保存自身关联接口的接口信息,所述目标测试案例保存的接口信息包含所述目标接口的唯一标记符;
接口信息比较模块304,用于将所述目标测试案例保存的接口信息和所述目标接口更新后的接口信息进行比较;
接口信息更新模块305,用于若所述目标测试案例保存的接口信息和所述目标接口更新后的接口信息不同,则将所述目标测试案例保存的接口信息更新为所述目标接口更新后的接口信息。
具体的,所述更新接口检测模块可以包括:
文档内容获取单元,用于当检测到对所述接口文档的保存操作时,获取所述接口文档当前的文档内容;
文档内容比对单元,用于将所述当前的文档内容和预设数据库保存的所述接口文档的原始文档内容进行比对,并根据比对的结果查找出变更的接口信息;
目标接口确定单元,用于将所述变更的接口信息所对应的接口确定为所述目标接口;
更新内容保存单元,用于将所述当前的文档内容更新到所述预设数据库保存的所述接口文档中。
进一步的,所述测试案例的更新装置还可以包括:
新增接口判断模块,用于判断所述目标接口是否为新增接口;
接口添加模块,用于若所述目标接口是新增接口,则将所述目标接口添加到所述软件测试项目中;
执行模块,用于若所述目标接口不是新增接口,则执行从测试案例库中查找与所述目标接口关联的目标测试案例的步骤以及后续步骤。
更进一步的,所述软件测试项目采用swagger工具进行维护,所述新增接口判断模块可以包括:
功能模块确定单元,用于确定所述目标接口在swagger工具中所属的目标功能模块;
第一判定单元,用于若所述目标功能模块不属于所述软件测试项目已添加的功能模块,则判定所述目标接口是新增接口;
第二判定单元,用于若所述目标功能模块属于所述软件测试项目已添加的功能模块,则判定所述目标接口不是新增接口。
具体的,所述接口信息比较模块可以包括:
消息头比较单元,用于比较所述目标测试案例保存的接口信息的消息头与所述目标接口更新后的接口信息的消息头是否相同;
第一入参比较单元,用于若所述目标接口属于get请求的接口,则比较所述目标测试案例保存的接口信息的query入参、key-value模式的入参与所述目标接口更新后的接口信息的query入参、key-value模式的入参是否分别相同;
第二入参比较单元,用于若所述目标接口属于非get请求的接口,则比较所述目标测试案例保存的接口信息的query入参、key-value模式的入参、和json入参与所述目标接口更新后的接口信息的query入参、key-value模式的入参、和json入参是否分别相同;
接口信息判定单元,用于若所述目标测试案例保存的接口信息的消息头与所述目标接口更新后的接口信息的消息头不同,或者所述目标测试案例保存的接口信息的query入参、key-value模式的入参与所述目标接口更新后的接口信息的query入参、key-value模式的入参不是分别相同,或者所述目标测试案例保存的接口信息的query入参、key-value模式的入参、和json入参与所述目标接口更新后的接口信息的query入参、key-value模式的入参、和json入参不是分别相同,则判定所述目标测试案例保存的接口信息和所述目标接口更新后的接口信息不同。
具体的,所述接口信息更新模块可以包括:
第一信息更新单元,用于若所述目标接口更新后的接口信息相较于所述目标测试案例保存的接口信息,添加了一个消息头,则将所述消息头的key值和默认值添加到所述目标测试案例保存的接口信息中;
第二信息更新单元,用于若所述目标接口更新后的接口信息相较于所述目标测试案例保存的接口信息,接口入参发生了变化,则将发生变化的入参的信息更新到所述目标测试案例保存的接口信息中。
进一步的,所述接口文档被划分为多个不同的区域,每个区域分别对应一种测试案例的更新方式,所述测试案例查找模块可以包括:
目标区域确定单元,用于确定所述目标接口的接口信息在所述接口文档中所属的目标区域;
测试案例查找单元,用于从所述测试案例库中查找与所述目标接口关联的所有测试案例;
测试案例挑选单元,用于按照所述目标区域对应的测试案例的更新方式,从查找到的测试案例中挑选出待更新的目标测试案例。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如图1或图2表示的任意一种测试案例的更新方法的步骤。
本申请实施例还提供一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现如图1或图2表示的任意一种测试案例的更新方法的步骤。
本申请实施例还提供一种计算机程序产品,当该计算机程序产品在服务器上运行时,使得服务器执行实现如图1或图2表示的任意一种测试案例的更新方法的步骤。
图4是本申请一实施例提供的服务器的示意图。如图4所示,该实施例的服务器4包括:处理器40、存储器41以及存储在所述存储器41中并可在所述处理器40上运行的计算机可读指令42。所述处理器40执行所述计算机可读指令42时实现上述各个测试案例的更新方法实施例中的步骤,例如图1所示的步骤101至107。或者,所述处理器40执行所述计算机可读指令42时实现上述各装置实施例中各模块/单元的功能,例如图3所示模块301至305的功能。
示例性的,所述计算机可读指令42可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器41中,并由所述处理器40执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述所述计算机可读指令42在所述服务器4中的执行过程。
所述服务器4可以是智能手机、笔记本、掌上电脑及云端服务器等计算设备。所述服务器4可包括,但不仅限于,处理器40、存储器41。本领域技术人员可以理解,图4仅仅是服务器4的示例,并不构成对服务器4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述服务器4还可以包括输入输出设备、网络接入设备、总线等。
所述处理器40可以是中央处理单元(CentraL Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(DigitaL SignaL Processor,DSP)、专用集成电路(AppLication Specific Integrated Circuit,ASIC)、现成可编程门阵列(FieLd-ProgrammabLe Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器41可以是所述服务器4的内部存储单元,例如服务器4的硬盘或内存。所述存储器41也可以是所述服务器4的外部存储设备,例如所述服务器4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure DigitaL,SD)卡,闪存卡(FLash Card)等。进一步地,所述存储器41还可以既包括所述服务器4的内部存储单元也包括外部存储设备。所述存储器41用于存储所述计算机可读指令以及所述服务器所需的其他程序和数据。所述存储器41还可以用于暂时地存储已经输出或者将要输出的数据。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (10)

1.一种测试案例的更新方法,其特征在于,包括:
获取预先构建的接口文档,所述接口文档记录软件测试项目中各个接口的接口信息,所述接口信息包含接口的唯一标记符;
检测所述接口文档中接口信息出现更新的目标接口;
从测试案例库中查找与所述目标接口关联的目标测试案例,所述测试案例库中的每个测试案例均保存自身关联接口的接口信息,所述目标测试案例保存的接口信息包含所述目标接口的唯一标记符;
将所述目标测试案例保存的接口信息和所述目标接口更新后的接口信息进行比较;
若所述目标测试案例保存的接口信息和所述目标接口更新后的接口信息不同,则将所述目标测试案例保存的接口信息更新为所述目标接口更新后的接口信息。
2.如权利要求1所述的测试案例的更新方法,其特征在于,所述检测所述接口文档中接口信息出现更新的目标接口包括:
当检测到对所述接口文档的保存操作时,获取所述接口文档当前的文档内容;
将所述当前的文档内容和预设数据库保存的所述接口文档的原始文档内容进行比对,并根据比对的结果查找出变更的接口信息;
将所述变更的接口信息所对应的接口确定为所述目标接口;
将所述当前的文档内容更新到所述预设数据库保存的所述接口文档中。
3.如权利要求1所述的测试案例的更新方法,其特征在于,在从测试案例库中查找与所述目标接口关联的目标测试案例之前,还包括:
判断所述目标接口是否为新增接口;
若所述目标接口是新增接口,则将所述目标接口添加到所述软件测试项目中;
若所述目标接口不是新增接口,则执行从测试案例库中查找与所述目标接口关联的目标测试案例的步骤以及后续步骤。
4.如权利要求3所述的测试案例的更新方法,其特征在于,所述软件测试项目采用swagger工具进行维护,所述判断所述目标接口是否为新增接口包括:
确定所述目标接口在swagger工具中所属的目标功能模块;
若所述目标功能模块不属于所述软件测试项目已添加的功能模块,则判定所述目标接口是新增接口;
若所述目标功能模块属于所述软件测试项目已添加的功能模块,则判定所述目标接口不是新增接口。
5.如权利要求1所述的测试案例的更新方法,其特征在于,所述将所述目标测试案例保存的接口信息和所述目标接口更新后的接口信息进行比较包括:
比较所述目标测试案例保存的接口信息的消息头与所述目标接口更新后的接口信息的消息头是否相同;
若所述目标接口属于get请求的接口,则比较所述目标测试案例保存的接口信息的query入参、key-value模式的入参与所述目标接口更新后的接口信息的query入参、key-value模式的入参是否分别相同;
若所述目标接口属于非get请求的接口,则比较所述目标测试案例保存的接口信息的query入参、key-value模式的入参、和json入参与所述目标接口更新后的接口信息的query入参、key-value模式的入参、和json入参是否分别相同;
若所述目标测试案例保存的接口信息的消息头与所述目标接口更新后的接口信息的消息头不同,或者所述目标测试案例保存的接口信息的query入参、key-value模式的入参与所述目标接口更新后的接口信息的query入参、key-value模式的入参不是分别相同,或者所述目标测试案例保存的接口信息的query入参、key-value模式的入参、和json入参与所述目标接口更新后的接口信息的query入参、key-value模式的入参、和json入参不是分别相同,则判定所述目标测试案例保存的接口信息和所述目标接口更新后的接口信息不同。
6.如权利要求1所述的测试案例的更新方法,其特征在于,所述将所述目标测试案例保存的接口信息更新为所述目标接口更新后的接口信息包括:
若所述目标接口更新后的接口信息相较于所述目标测试案例保存的接口信息,添加了一个消息头,则将所述消息头的key值和默认值添加到所述目标测试案例保存的接口信息中;
若所述目标接口更新后的接口信息相较于所述目标测试案例保存的接口信息,接口入参发生了变化,则将发生变化的入参的信息更新到所述目标测试案例保存的接口信息中。
7.如权利要求1至6中任一项所述的测试案例的更新方法,其特征在于,所述接口文档被划分为多个不同的区域,每个区域分别对应一种测试案例的更新方式,所述从测试案例库中查找与所述目标接口关联的目标测试案例包括:
确定所述目标接口的接口信息在所述接口文档中所属的目标区域;
从所述测试案例库中查找与所述目标接口关联的所有测试案例;
按照所述目标区域对应的测试案例的更新方式,从查找到的测试案例中挑选出待更新的目标测试案例。
8.一种测试案例的更新装置,其特征在于,包括:
接口文档获取模块,用于获取预先构建的接口文档,所述接口文档记录软件测试项目中各个接口的接口信息,所述接口信息包含接口的唯一标记符;
更新接口检测模块,用于检测所述接口文档中接口信息出现更新的目标接口;
测试案例查找模块,用于从测试案例库中查找与所述目标接口关联的目标测试案例,所述测试案例库中的每个测试案例均保存自身关联接口的接口信息,所述目标测试案例保存的接口信息包含所述目标接口的唯一标记符;
接口信息比较模块,用于将所述目标测试案例保存的接口信息和所述目标接口更新后的接口信息进行比较;
接口信息更新模块,用于若所述目标测试案例保存的接口信息和所述目标接口更新后的接口信息不同,则将所述目标测试案例保存的接口信息更新为所述目标接口更新后的接口信息。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的测试案例的更新方法。
10.一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的测试案例的更新方法。
CN202010059873.5A 2020-01-19 2020-01-19 一种测试案例的更新方法、装置、存储介质和服务器 Pending CN111221742A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010059873.5A CN111221742A (zh) 2020-01-19 2020-01-19 一种测试案例的更新方法、装置、存储介质和服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010059873.5A CN111221742A (zh) 2020-01-19 2020-01-19 一种测试案例的更新方法、装置、存储介质和服务器

Publications (1)

Publication Number Publication Date
CN111221742A true CN111221742A (zh) 2020-06-02

Family

ID=70807011

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010059873.5A Pending CN111221742A (zh) 2020-01-19 2020-01-19 一种测试案例的更新方法、装置、存储介质和服务器

Country Status (1)

Country Link
CN (1) CN111221742A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113344549A (zh) * 2021-06-30 2021-09-03 深圳市斯博科技有限公司 项目工程文档更新方法、装置、计算机设备及存储介质
CN114253520A (zh) * 2020-09-21 2022-03-29 北京字节跳动网络技术有限公司 接口代码生成方法和装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114253520A (zh) * 2020-09-21 2022-03-29 北京字节跳动网络技术有限公司 接口代码生成方法和装置
CN114253520B (zh) * 2020-09-21 2024-03-12 抖音视界有限公司 接口代码生成方法和装置
CN113344549A (zh) * 2021-06-30 2021-09-03 深圳市斯博科技有限公司 项目工程文档更新方法、装置、计算机设备及存储介质
CN113344549B (zh) * 2021-06-30 2024-03-26 深圳万兴软件有限公司 项目工程文档更新方法、装置、计算机设备及存储介质

Similar Documents

Publication Publication Date Title
CN110309125B (zh) 数据校验方法、电子装置及存储介质
CN109240876B (zh) 实例监控方法、计算机可读存储介质和终端设备
CN108491715B (zh) 终端指纹库的生成方法、装置和服务器
CN109669980B (zh) 数据跨库访问方法及装置
CN112579898A (zh) 企业信息的管理方法、装置及服务器
CN112364014B (zh) 数据查询方法、装置、服务器及存储介质
CN111460232A (zh) 功能模块的查找方法、装置、终端和计算机可读存储介质
CN111221742A (zh) 一种测试案例的更新方法、装置、存储介质和服务器
CN111190551B (zh) 一种redis数据的迁移系统、迁移方法、装置及终端
WO2019148657A1 (zh) 关联环境测试方法、电子装置及计算机可读存储介质
CN107368513B (zh) 客户端数据库更新的方法及装置
CN114328017A (zh) 一种数据库备份方法、系统、计算机设备和存储介质
CN111125226B (zh) 一种配置数据采集方法及装置
CN116010347A (zh) 资源更新方法、装置、系统、电子设备及存储介质
CN115688099A (zh) 计算机病毒检索方法、装置、计算机设备及存储介质
CN114020813A (zh) 基于哈希算法的数据比对方法、装置、设备及存储介质
CN114461762A (zh) 档案变更识别方法、装置、设备及存储介质
CN110297651B (zh) 协议接口的常用变量的更新方法和装置
CN111209284B (zh) 基于元数据的分表方法及装置
CN114064712A (zh) 数据访问方法、装置、电子设备及计算机可读存储介质
CN110503504B (zh) 网络产品的信息识别方法、装置及设备
CN112612817A (zh) 数据处理方法、装置、终端设备及计算机可读存储介质
CN112905191B (zh) 数据处理方法、装置、计算机可读存储介质和计算机设备
CN114818645B (zh) 基于数据主体的自动化报告生成方法、装置、设备及介质
CN113256301B (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