CN114090464A - Json格式的测试用例更新方法及相关装置 - Google Patents

Json格式的测试用例更新方法及相关装置 Download PDF

Info

Publication number
CN114090464A
CN114090464A CN202210078468.7A CN202210078468A CN114090464A CN 114090464 A CN114090464 A CN 114090464A CN 202210078468 A CN202210078468 A CN 202210078468A CN 114090464 A CN114090464 A CN 114090464A
Authority
CN
China
Prior art keywords
node
current method
nodes
test case
original test
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
CN202210078468.7A
Other languages
English (en)
Other versions
CN114090464B (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.)
China Travelsky Technology Co Ltd
Original Assignee
China Travelsky 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 China Travelsky Technology Co Ltd filed Critical China Travelsky Technology Co Ltd
Priority to CN202210078468.7A priority Critical patent/CN114090464B/zh
Publication of CN114090464A publication Critical patent/CN114090464A/zh
Application granted granted Critical
Publication of CN114090464B publication Critical patent/CN114090464B/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
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了JSON格式的测试用例更新方法及相关装置,可以通过遍历服务器接口的当前方法的各节点以及所述当前方法对应的至少一个原测试用例的各节点,从而确定所述当前方法相比所述原测试用例是否发生节点变更;若确定所述当前方法发生节点变更,则根据所述当前方法的各节点的节点参数和所述原测试用例的各节点的节点参数,确定所述当前方法发生节点变更的变更类型;根据所述变更类型,更新所述当前方法对应的各所述原测试用例的节点,从而得到所述当前方法对应的多个新测试用例。由此可以看出,本发明可以自动确定服务器接口的方法是否发生变更,并且在确定接口的方法发生变更后,可以自动批量地更新对应的测试用例,效率较高。

Description

JSON格式的测试用例更新方法及相关装置
技术领域
本发明涉及软件测试领域,特别涉及一种JSON格式的测试用例更新方法及相关装置。
背景技术
互联网局势下,产品的迭代速度要求越来越高。随着接口测试以及自动化测试的快速发展,加上软件需求的不断更迭,产品的测试用例数量越来越多,随之而来的维护成本也越来越高,当接口方法发生变更时,老旧版本的测试用例造成冗余,甚至造成对产品功能的误解,批量新增测试用例会丢失部分过去测试用例中有效的测试数据,手工修改测试用例费时费力,造成测试效率低的问题。
发明内容
鉴于上述问题,本发明提供一种克服上述问题或者至少部分地解决上述问题的JSON格式的测试用例更新方法及相关装置。
第一方面,一种JSON格式的测试用例更新方法,包括:
遍历服务器接口的当前方法的各节点以及所述当前方法对应的至少一个原测试用例的各节点,从而确定所述当前方法相比所述原测试用例是否发生节点变更,其中,所述服务器接口的所述当前方法规定所述各节点的入参结构和出参结构,所述当前方法的各节点和所述原测试用例的各节点均满足JSON格式的要求;
若确定所述当前方法发生节点变更,则根据所述当前方法的各节点的节点参数和所述原测试用例的各节点的节点参数,确定所述当前方法发生节点变更的变更类型,其中,所述节点参数包括:节点路径、节点名和节点数据类型;
根据所述变更类型,更新所述当前方法对应的各所述原测试用例的节点,从而得到所述当前方法对应的多个新测试用例,其中,所述新测试用例的各节点与所述当前方法的各节点匹配。
结合第一方面,在某些可选的实施方式中,所述遍历服务器接口的当前方法的各节点以及所述当前方法对应的至少一个原测试用例的各节点,从而确定所述当前方法相比所述原测试用例是否发生节点变更,包括:
遍历服务器接口的当前方法的各节点,从而分别获得所述当前方法的节点数量和各所述节点的节点名;
遍历所述原测试用例的各节点,从而分别获得所述原测试用例的节点数量和各所述节点的节点名;
若所述当前方法的节点数量和所述原测试用例的节点数量不一致,则确定所述当前方法发生节点变更;
若所述当前方法的节点数量和所述原测试用例的节点数量一致,则判断所述当前方法的各所述节点的节点名是否均与所述原测试用例的各所述节点的节点名对应,若是,则确定所述当前方法未发生节点变更,否则确定所述当前方法发生节点变更。
结合第一方面,在某些可选的实施方式中,所述若确定所述当前方法发生节点变更,则根据所述当前方法的各节点的节点参数和所述原测试用例的各节点的节点参数,确定所述当前方法发生节点变更的变更类型,包括:
若确定所述当前方法发生节点变更,则根据所述当前方法的各节点的节点参数和所述原测试用例的各节点的节点参数,判断所述当前方法的各节点和所述原测试用例的各节点是否满足条件一、条件二和条件三中的一个;
若满足条件一,则确定所述变更类型为:在所述当前方法中新增节点;
若满足条件二,则确定所述变更类型为:删除所述当前方法中的节点;
若满足条件三,则确定所述变更类型为:修改所述当前方法中的节点;
其中,所述条件一为:对于所述原测试用例的全部节点,均在所述当前方法的各节点中查找到节点名相同和节点路径相同的对应节点,且对于所述当前方法的至少一个节点,在所述原测试用例中未查找到节点名相同和节点路径相同的对应节点;
所述条件二为:对于所述当前方法的全部节点,均在所述原测试用例的各节点中查找到节点名相同和节点路径相同的对应节点,且对于所述原测试用例的至少一个节点,在所述当前方法中未查找到节点名相同和节点路径相同的对应节点;
所述条件三为:所述原测试用例的一个节点与所述当前方法的一个节点的节点名不同,但节点路径和节点数据类型均相同,且所述原测试用例的剩余节点与所述当前方法的剩余节点均相同。
结合上一个实施方式,在某些可选的实施方式中,所述根据所述变更类型,更新所述当前方法对应的各所述原测试用例的节点,从而得到所述当前方法对应的多个新测试用例,包括:
若所述变更类型为:在所述当前方法中新增节点,则复制各所述源测试用例的副本,并在各所述副本中均增加与所述新增节点对应的新节点,并对所述新节点赋值,从而得到所述当前方法对应的多个新测试用例;
若所述变更类型为:删除所述当前方法中的节点,则复制各所述源测试用例的副本,并将各所述副本中的对应节点删除,从而得到所述当前方法对应的多个新测试用例;
若所述变更类型为:修改所述当前方法中的节点,则复制各所述源测试用例的副本,并将各所述副本中的对应节点的节点名修改为所述当前方法中被修改的节点的节点名,从而得到所述当前方法对应的多个新测试用例。
可选的,在某些可选的实施方式中,所述根据所述变更类型,更新所述当前方法对应的各所述原测试用例的节点,从而得到所述当前方法对应的多个新测试用例,包括:
若所述变更类型为:在所述当前方法中新增节点,则对于每一个所述原测试用例,均复制一份所述当前方法的副本,并将所述副本中的各所述节点的节点值对应赋值为对应的所述原测试用例的各节点的节点值,从而得到所述当前方法对应的多个新测试用例,其中,所述新增节点的节点值赋值为预设节点值;
若所述变更类型为:删除所述当前方法中的节点,则对于每一个所述原测试用例,均复制一份所述当前方法的副本,并从对应的所述原测试用例中获得所述副本中对应的各所述节点的节点值并进行赋值,从而得到所述当前方法对应的多个新测试用例;
若所述变更类型为:修改所述当前方法中的节点,则对于每一个所述原测试用例,均复制一份所述当前方法的副本,并从对应的所述原测试用例中获得所述副本中对应的各所述节点的节点值并进行赋值,从而得到所述当前方法对应的多个新测试用例。
第二方面,一种JSON格式的测试用例更新装置,包括:遍历单元、变更类型确定单元和更新单元;
所述遍历单元,用于遍历服务器接口的当前方法的各节点以及所述当前方法对应的至少一个原测试用例的各节点,从而确定所述当前方法相比所述原测试用例是否发生节点变更,其中,所述服务器接口的所述当前方法规定所述各节点的入参结构和出参结构,所述当前方法的各节点和所述原测试用例的各节点均满足JSON格式的要求;
所述变更类型确定单元,用于若确定所述当前方法发生节点变更,则根据所述当前方法的各节点的节点参数和所述原测试用例的各节点的节点参数,确定所述当前方法发生节点变更的变更类型,其中,所述节点参数包括:节点路径、节点名和节点数据类型;
所述更新单元,用于根据所述变更类型,更新所述当前方法对应的各所述原测试用例的节点,从而得到所述当前方法对应的多个新测试用例,其中,所述新测试用例的各节点与所述当前方法的各节点匹配。
结合第二方面,在某些可选的实施方式中,所述遍历单元包括:方法节点遍历单元、用例节点遍历单元、第一变更单元、判断单元、第二变更单元和未变更单元;
所述方法节点遍历单元,用于遍历服务器接口的当前方法的各节点,从而分别获得所述当前方法的节点数量和各所述节点的节点名;
所述用例节点遍历单元,用于遍历所述原测试用例的各节点,从而分别获得所述原测试用例的节点数量和各所述节点的节点名;
所述第一变更单元,用于若所述当前方法的节点数量和所述原测试用例的节点数量不一致,则确定所述当前方法发生节点变更;
所述判断单元,用于若所述当前方法的节点数量和所述原测试用例的节点数量一致,则判断所述当前方法的各所述节点的节点名是否均与所述原测试用例的各所述节点的节点名对应,若是,则触发所述未变更单元,否则触发所述第二变更单元;
所述未变更单元,用于确定所述当前方法未发生节点变更;
所述第二变更单元,用于确定所述当前方法发生节点变更。
结合第二方面,在某些可选的实施方式中,所述变更类型确定单元包括:条件判断单元、新增类型单元、删除类型单元和修改类型单元;
所述条件判断单元,用于若确定所述当前方法发生节点变更,则根据所述当前方法的各节点的节点参数和所述原测试用例的各节点的节点参数,判断所述当前方法的各节点和所述原测试用例的各节点是否满足条件一、条件二和条件三中的一个;
所述新增类型单元,用于若满足条件一,则确定所述变更类型为:在所述当前方法中新增节点;
所述删除类型单元,用于若满足条件二,则确定所述变更类型为:删除所述当前方法中的节点;
所述修改类型单元,用于若满足条件三,则确定所述变更类型为:修改所述当前方法中的节点;
其中,所述条件一为:对于所述原测试用例的全部节点,均在所述当前方法的各节点中查找到节点名相同和节点路径相同的对应节点,且对于所述当前方法的至少一个节点,在所述原测试用例中未查找到节点名相同和节点路径相同的对应节点;
所述条件二为:对于所述当前方法的全部节点,均在所述原测试用例的各节点中查找到节点名相同和节点路径相同的对应节点,且对于所述原测试用例的至少一个节点,在所述当前方法中未查找到节点名相同和节点路径相同的对应节点;
所述条件三为:所述原测试用例的一个节点与所述当前方法的一个节点的节点名不同,但节点路径和节点数据类型均相同,且所述原测试用例的剩余节点与所述当前方法的剩余节点均相同。
第三方面,一种计算机可读存储介质,其上存储有程序,所述程序被处理器执行时实现上述任一项所述的JSON格式的测试用例更新方法。
第四方面,一种电子设备,所述电子设备包括至少一个处理器、以及与所述处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行上述任一项所述的JSON格式的测试用例更新方法。
借由上述技术方案,本发明提供的JSON格式的测试用例更新方法及相关装置,可以通过遍历服务器接口的当前方法的各节点以及所述当前方法对应的至少一个原测试用例的各节点,从而确定所述当前方法相比所述原测试用例是否发生节点变更,其中,所述服务器接口的所述当前方法规定所述各节点的入参结构和出参结构,所述当前方法的各节点和所述原测试用例的各节点均满足JSON格式的要求;若确定所述当前方法发生节点变更,则根据所述当前方法的各节点的节点参数和所述原测试用例的各节点的节点参数,确定所述当前方法发生节点变更的变更类型,其中,所述节点参数包括:节点路径、节点名和节点数据类型;根据所述变更类型,更新所述当前方法对应的各所述原测试用例的节点,从而得到所述当前方法对应的多个新测试用例,其中,所述新测试用例的各节点与所述当前方法的各节点匹配。由此可以看出,本发明可以自动确定服务器接口的方法是否发生变更,并且在确定接口的方法发生变更后,可以自动批量地更新对应的测试用例,效率较高。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明提供的一种JSON格式的测试用例更新方法的流程图;
图2示出了本发明提供的一种JSON格式的测试用例更新装置的结构示意图;
图3示出了本发明提供的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
如图1所示,本发明提供了一种JSON格式的测试用例更新方法,包括:S100、S200和S300;
S100、遍历服务器接口的当前方法的各节点以及所述当前方法对应的至少一个原测试用例的各节点,从而确定所述当前方法相比所述原测试用例是否发生节点变更;
其中,所述服务器接口的所述当前方法规定所述各节点的入参结构和出参结构,所述当前方法的各节点和所述原测试用例的各节点均满足JSON格式的要求;
可选的,JSON是现今互联网中最常用的数据交换格式之一,应用广泛,实用性强。其针对对象和数组的表述和宿主语言中的数据结构相对应,比如对象、结构体、字典和数组等。
可选的,本发明提供的方法可以应用于接口自动化平台。接口自动化平台是一款可视化、表单型编写接口测试用例的测试产品,支持应用多接口类型测试覆盖,无需安装复杂IDE,可在线编辑、调试和维护,提供云端脚本执行,可支撑业务持续集成、业务回归等。服务调用支持多种数据格式类型,本方案主要是针对JSON格式提出批量变更测试用例的解决方案。
可选的,一个接口可以提供多项服务,每项服务均有对应的方法。即一个接口的方法可以有多个,例如,某个接口可以提供查询剩余机票的服务,那么该接口下也相应需要设置查询剩余机票的方法,本发明对此不做限制。
可选的,当接口的某一个方法发生变化后,则说明该接口提供相应服务的要求也发生了变化,即节点发生了变化。例如,原来方法要求用户查询剩余机票时所发送的请求中要求携带有3个节点;方法发生变化后,要求用户查询剩余机票时所发送的请求中要求携带有4个节点,即增加了一个节点。所以,查询剩余机票的测试用例也应该由原来的3个节点对应修改为4个节点,而实际中针对一项服务的测试用例可以有多个,所以多个查询剩余机票的测试用例都应做对应修改,即更新测试用例,本发明对此不做限制。
可选的,方法就如同标准一样,规定了测试用例节点数量、节点名,各个节点之间的关系(节点之间可以嵌套,即存在父节点与子节点之间的关系),以及规定每个节点的数据类型等。但对于每个节点的具体节点值没做任何规定,需要在测试用例中进行设置。
可选的,通过遍历服务器接口的当前方法的各节点以及所述当前方法对应的至少一个原测试用例的各节点,进行节点比对,可以确定所述当前方法是否发生改变,即相比所述原测试用例是否发生节点变更。
例如,结合图1所示的实施方式,在某些可选的实施方式中,所述S100包括:步骤1.1、步骤1.2、步骤1.3、步骤1.4、步骤1.5和步骤1.6;
步骤1.1、遍历服务器接口的当前方法的各节点,从而分别获得所述当前方法的节点数量和各所述节点的节点名;
步骤1.2、遍历所述原测试用例的各节点,从而分别获得所述原测试用例的节点数量和各所述节点的节点名;
步骤1.3、若所述当前方法的节点数量和所述原测试用例的节点数量不一致,则确定所述当前方法发生节点变更;
步骤1.4、若所述当前方法的节点数量和所述原测试用例的节点数量一致,则判断所述当前方法的各所述节点的节点名是否均与所述原测试用例的各所述节点的节点名对应,若是,则执行步骤1.5,否则执行步骤1.6;
步骤1.5、确定所述当前方法未发生节点变更;
步骤1.6、确定所述当前方法发生节点变更。
可选的,正常而言,方法的节点数量与测试用例的节点数量要保持一致,若不一致,则说明方法发生了节点变更。
可选的,如前所述,正常而言,方法的节点的节点名还需与测试用例的节点的节点名保持一致。例如,方法中规定了查询剩余机票的服务的测试用例的3个节点的节点名分别为:节点1、节点2和节点3,则相应的测试用例的3个节点的节点名也应分别为:节点1、节点2和节点3。若存在节点名无法对应上的情况,则说明方法发生了节点变更。
S200、若确定所述当前方法发生节点变更,则根据所述当前方法的各节点的节点参数和所述原测试用例的各节点的节点参数,确定所述当前方法发生节点变更的变更类型;
其中,所述节点参数包括:节点路径、节点名和节点数据类型;
可选的,节点路径一定程度上可以体现出不同节点之间关系。例如,若节点2是节点1的子节点,则节点2的节点路径可以为:节点1|节点2,本发明对此不做限制。
可选的,节点数据类型指的是:该节点的节点值的数据类型,包括:String类型,Integer类型和数组类型等,
可选的,若确定所述当前方法发生节点变更,则说明较于原来的方法,当前发生新增了节点、删除了节点或者修改了节点。例如,结合图1所示的实施方式,在某些可选的实施方式中,所述S200包括:步骤2.1、步骤2.2、步骤2.3和步骤2.4;
步骤2.1、若确定所述当前方法发生节点变更,则根据所述当前方法的各节点的节点参数和所述原测试用例的各节点的节点参数,判断所述当前方法的各节点和所述原测试用例的各节点是否满足条件一、条件二和条件三中的一个;
步骤2.2、若满足条件一,则确定所述变更类型为:在所述当前方法中新增节点;
步骤2.3、若满足条件二,则确定所述变更类型为:删除所述当前方法中的节点;
步骤2.4、若满足条件三,则确定所述变更类型为:修改所述当前方法中的节点;
其中,所述条件一为:对于所述原测试用例的全部节点,均在所述当前方法的各节点中查找到节点名相同和节点路径相同的对应节点,且对于所述当前方法的至少一个节点,在所述原测试用例中未查找到节点名相同和节点路径相同的对应节点;
所述条件二为:对于所述当前方法的全部节点,均在所述原测试用例的各节点中查找到节点名相同和节点路径相同的对应节点,且对于所述原测试用例的至少一个节点,在所述当前方法中未查找到节点名相同和节点路径相同的对应节点;
所述条件三为:所述原测试用例的一个节点与所述当前方法的一个节点的节点名不同,但节点路径和节点数据类型均相同,且所述原测试用例的剩余节点与所述当前方法的剩余节点均相同。
可选的,对于所述变更类型为:在所述当前方法中新增节点,说明当前方法新增了至少一个节点,则说明当前方法要比测试用例多至少一条节点记录,该节点记录记载了新增节点的节点路径、节点名和节点数据类型等节点参数,而新增节点的节点参数在测试用例当中是没有新增节点的节点参数的。所以,如条件一所示,若方法中存在至少一条节点记录是测试用例中没有的,即节点名不同或者节点路径不同,则说明变更类型为:在所述当前方法中新增节点。
可选的,对于变更类型为:删除所述当前方法中的节点,则说明方法比测试用例少了一条节点记录,且方法中的全部节点记录在测试用例中均存在。
可选的,对于变更类型为:修改所述当前方法中的节点,则说明方法与测试用例的节点记录的数量一样,但是方法中有一条节点记录与测试用例的一条节点记录相比,节点名不同,但是节点路径和节点数据类型均相同。一般而言,不同的节点,节点名和节点路径均不相同,当节点名不同但节点路径相同时,则说明了该节点可能发生了修改,即修改了节点名。
S300、根据所述变更类型,更新所述当前方法对应的各所述原测试用例的节点,从而得到所述当前方法对应的多个新测试用例;
其中,所述新测试用例的各节点与所述当前方法的各节点匹配。
可选的,新测试用例的各节点与当前方法的各节点匹配指的是:新测试用例的节点记录与当前方法的节点记录一致,不仅是数量一致,且要求具体节点参数也一致。
可选的,不同的变更类型,对应更新测试用例的方式也不同。例如,结合上一个实施方式,在某些可选的实施方式中,所述S300包括:步骤3.1、步骤3.2和步骤3.3;
步骤3.1、若所述变更类型为:在所述当前方法中新增节点,则复制各所述源测试用例的副本,并在各所述副本中均增加与所述新增节点对应的新节点,并对所述新节点赋值,从而得到所述当前方法对应的多个新测试用例;
即,若当前方法中新增了节点N,则在副本中也增加节点N,并对节点N赋予相应的节点值。后续可以以新增了节点N的副本作为新测试用例,从而实现测试用例的更新。
步骤3.2、若所述变更类型为:删除所述当前方法中的节点,则复制各所述源测试用例的副本,并将各所述副本中的对应节点删除,从而得到所述当前方法对应的多个新测试用例;
即,若当前方法中删除了节点N,则副本中的节点N也应删除。后续可以以删除了节点N的副本作为新测试用例,从而实现测试用例的更新。
步骤3.3、若所述变更类型为:修改所述当前方法中的节点,则复制各所述源测试用例的副本,并将各所述副本中的对应节点的节点名修改为所述当前方法中被修改的节点的节点名,从而得到所述当前方法对应的多个新测试用例。
即,若当前方法中修改了节点N的节点名为节点M,则副本中的节点N的节点名也应修改为节点M。后续可以以修改节点N为节点M的副本作为新测试用例,从而实现测试用例的更新。
又例如,可选的,在某些可选的实施方式中,所述S300包括:步骤4.1、步骤4.2和步骤4.3;
步骤4.1、若所述变更类型为:在所述当前方法中新增节点,则对于每一个所述原测试用例,均复制一份所述当前方法的副本,并将所述副本中的各所述节点的节点值对应赋值为对应的所述原测试用例的各节点的节点值,从而得到所述当前方法对应的多个新测试用例,其中,所述新增节点的节点值赋值为预设节点值;
即,若方法中新增了节点N,则除了需要将原测试用例中的所有节点的节点值复制到副本中对应的节点,还需要对节点N进行赋值。后续可以以新增了节点N的副本作为新测试用例,从而实现测试用例的更新。
步骤4.2、若所述变更类型为:删除所述当前方法中的节点,则对于每一个所述原测试用例,均复制一份所述当前方法的副本,并从对应的所述原测试用例中获得所述副本中对应的各所述节点的节点值并进行赋值,从而得到所述当前方法对应的多个新测试用例;
即,若方法中删除了节点N,则原测试用例中的节点N的节点值已经没有作用,即复制原测试用例中除了节点N以外的全部节点的节点值到副本中对应的节点。后续可以以删除了节点N的副本作为新测试用例,从而实现测试用例的更新。
步骤4.3、若所述变更类型为:修改所述当前方法中的节点,则对于每一个所述原测试用例,均复制一份所述当前方法的副本,并从对应的所述原测试用例中获得所述副本中对应的各所述节点的节点值并进行赋值,从而得到所述当前方法对应的多个新测试用例。
即,若当前方法中修改了节点N的节点名为节点M,则在将原测试用例的全部节点的节点值复制到副本中的节点时,其它没有修改节点名的节点一一对应,原测试用例的节点N的节点值复制到副本中的节点M。后续可以以修改节点N为节点M的副本作为新测试用例,从而实现测试用例的更新。
可选的,在实际赋值的过程,对于数组类型的赋值需要特殊处理。对于数组这种数据类型,接口的方法中定义的数据结构只包含一个元素arg,而测试用例中会根据业务需要包含多个元素,例如arg,arg_1,arg_2依次顺延,所以如果按照节点路径和节点名进行查找和赋值,只会复制测试用例的元素arg,而丢失了arg_1和arg_2,所以需要针对数组进行特殊处理。
例如,循环遍历测试用例的节点usecaseNode,根据测试用例的节点路径和节点名,查找方法中的节点methodNode,如果该节点存在,说明此节点是arg节点,不需要复制,遍历下一个节点,如果该节点不存在,判断用例节点的节点名是否正则匹配arg_*(*代表的是可变的参数),不匹配就不复制(这种情况不应该存在,数组中的节点名一般都是arg_*),匹配的话将节点名和节点路径取下划线(不同节点的分割符)前的字符串,也就是arg,根据新的节点名和节点路径查找方法节点methodNode,复制methodNode并修改节点名和节点路径为测试用例节点中的节点名和节点路径的值,即将arg改为arg_*,将复制后的节点加入到result中,返回result结果。
如图2所示,本发明提供了一种JSON格式的测试用例更新装置,包括:遍历单元100、变更类型确定单元200和更新单元300;
所述遍历单元100,用于遍历服务器接口的当前方法的各节点以及所述当前方法对应的至少一个原测试用例的各节点,从而确定所述当前方法相比所述原测试用例是否发生节点变更,其中,所述服务器接口的所述当前方法规定所述各节点的入参结构和出参结构,所述当前方法的各节点和所述原测试用例的各节点均满足JSON格式的要求;
所述变更类型确定单元200,用于若确定所述当前方法发生节点变更,则根据所述当前方法的各节点的节点参数和所述原测试用例的各节点的节点参数,确定所述当前方法发生节点变更的变更类型,其中,所述节点参数包括:节点路径、节点名和节点数据类型;
所述更新单元300,用于根据所述变更类型,更新所述当前方法对应的各所述原测试用例的节点,从而得到所述当前方法对应的多个新测试用例,其中,所述新测试用例的各节点与所述当前方法的各节点匹配。
结合图2所示的实施方式,在某些可选的实施方式中,所述遍历单元100包括:方法节点遍历单元、用例节点遍历单元、第一变更单元、判断单元、第二变更单元和未变更单元;
所述方法节点遍历单元,用于遍历服务器接口的当前方法的各节点,从而分别获得所述当前方法的节点数量和各所述节点的节点名;
所述用例节点遍历单元,用于遍历所述原测试用例的各节点,从而分别获得所述原测试用例的节点数量和各所述节点的节点名;
所述第一变更单元,用于若所述当前方法的节点数量和所述原测试用例的节点数量不一致,则确定所述当前方法发生节点变更;
所述判断单元,用于若所述当前方法的节点数量和所述原测试用例的节点数量一致,则判断所述当前方法的各所述节点的节点名是否均与所述原测试用例的各所述节点的节点名对应,若是,则触发所述未变更单元,否则触发所述第二变更单元;
所述未变更单元,用于确定所述当前方法未发生节点变更;
所述第二变更单元,用于确定所述当前方法发生节点变更。
结合图2所示的实施方式,在某些可选的实施方式中,所述变更类型确定单元200包括:条件判断单元、新增类型单元、删除类型单元和修改类型单元;
所述条件判断单元,用于若确定所述当前方法发生节点变更,则根据所述当前方法的各节点的节点参数和所述原测试用例的各节点的节点参数,判断所述当前方法的各节点和所述原测试用例的各节点是否满足条件一、条件二和条件三中的一个;
所述新增类型单元,用于若满足条件一,则确定所述变更类型为:在所述当前方法中新增节点;
所述删除类型单元,用于若满足条件二,则确定所述变更类型为:删除所述当前方法中的节点;
所述修改类型单元,用于若满足条件三,则确定所述变更类型为:修改所述当前方法中的节点;
其中,所述条件一为:对于所述原测试用例的全部节点,均在所述当前方法的各节点中查找到节点名相同和节点路径相同的对应节点,且对于所述当前方法的至少一个节点,在所述原测试用例中未查找到节点名相同和节点路径相同的对应节点;
所述条件二为:对于所述当前方法的全部节点,均在所述原测试用例的各节点中查找到节点名相同和节点路径相同的对应节点,且对于所述原测试用例的至少一个节点,在所述当前方法中未查找到节点名相同和节点路径相同的对应节点;
所述条件三为:所述原测试用例的一个节点与所述当前方法的一个节点的节点名不同,但节点路径和节点数据类型均相同,且所述原测试用例的剩余节点与所述当前方法的剩余节点均相同。
结合上一个实施方式,在某些可选的实施方式中,所述更新单元300包括:第一新增单元、第一删除单元和第一修改单元;
第一新增单元,用于若所述变更类型为:在所述当前方法中新增节点,则复制各所述源测试用例的副本,并在各所述副本中均增加与所述新增节点对应的新节点,并对所述新节点赋值,从而得到所述当前方法对应的多个新测试用例;
第一删除单元,用于若所述变更类型为:删除所述当前方法中的节点,则复制各所述源测试用例的副本,并将各所述副本中的对应节点删除,从而得到所述当前方法对应的多个新测试用例;
第一修改单元,用于若所述变更类型为:修改所述当前方法中的节点,则复制各所述源测试用例的副本,并将各所述副本中的对应节点的节点名修改为所述当前方法中被修改的节点的节点名,从而得到所述当前方法对应的多个新测试用例。
可选的,在某些可选的实施方式中,所述更新单元300包括:第二新增单元、第二删除单元和第二修改单元;
第二新增单元,用于若所述变更类型为:在所述当前方法中新增节点,则对于每一个所述原测试用例,均复制一份所述当前方法的副本,并将所述副本中的各所述节点的节点值对应赋值为对应的所述原测试用例的各节点的节点值,从而得到所述当前方法对应的多个新测试用例,其中,所述新增节点的节点值赋值为预设节点值;
第二删除单元,用于若所述变更类型为:删除所述当前方法中的节点,则对于每一个所述原测试用例,均复制一份所述当前方法的副本,并从对应的所述原测试用例中获得所述副本中对应的各所述节点的节点值并进行赋值,从而得到所述当前方法对应的多个新测试用例;
第二修改单元,用于若所述变更类型为:修改所述当前方法中的节点,则对于每一个所述原测试用例,均复制一份所述当前方法的副本,并从对应的所述原测试用例中获得所述副本中对应的各所述节点的节点值并进行赋值,从而得到所述当前方法对应的多个新测试用例。
本发明提供了一种计算机可读存储介质,其上存储有程序,所述程序被处理器执行时实现上述任一项所述的JSON格式的测试用例更新方法。
如图3所示,本发明提供了一种电子设备70,所述电子设备70包括至少一个处理器701、以及与所述处理器701连接的至少一个存储器702、总线703;其中,所述处理器701、所述存储器702通过所述总线703完成相互间的通信;所述处理器701用于调用所述存储器702中的程序指令,以执行上述任一项所述的JSON格式的测试用例更新方法。
在本申请中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种JSON格式的测试用例更新方法,其特征在于,包括:
遍历服务器接口的当前方法的各节点以及所述当前方法对应的至少一个原测试用例的各节点,从而确定所述当前方法相比所述原测试用例是否发生节点变更,其中,所述服务器接口的所述当前方法规定所述各节点的入参结构和出参结构,所述当前方法的各节点和所述原测试用例的各节点均满足JSON格式的要求;
若确定所述当前方法发生节点变更,则根据所述当前方法的各节点的节点参数和所述原测试用例的各节点的节点参数,确定所述当前方法发生节点变更的变更类型,其中,所述节点参数包括:节点路径、节点名和节点数据类型;
根据所述变更类型,更新所述当前方法对应的各所述原测试用例的节点,从而得到所述当前方法对应的多个新测试用例,其中,所述新测试用例的各节点与所述当前方法的各节点匹配。
2.根据权利要求1所述的方法,其特征在于,所述遍历服务器接口的当前方法的各节点以及所述当前方法对应的至少一个原测试用例的各节点,从而确定所述当前方法相比所述原测试用例是否发生节点变更,包括:
遍历服务器接口的当前方法的各节点,从而分别获得所述当前方法的节点数量和各所述节点的节点名;
遍历所述原测试用例的各节点,从而分别获得所述原测试用例的节点数量和各所述节点的节点名;
若所述当前方法的节点数量和所述原测试用例的节点数量不一致,则确定所述当前方法发生节点变更;
若所述当前方法的节点数量和所述原测试用例的节点数量一致,则判断所述当前方法的各所述节点的节点名是否均与所述原测试用例的各所述节点的节点名对应,若是,则确定所述当前方法未发生节点变更,否则确定所述当前方法发生节点变更。
3.根据权利要求1所述的方法,其特征在于,所述若确定所述当前方法发生节点变更,则根据所述当前方法的各节点的节点参数和所述原测试用例的各节点的节点参数,确定所述当前方法发生节点变更的变更类型,包括:
若确定所述当前方法发生节点变更,则根据所述当前方法的各节点的节点参数和所述原测试用例的各节点的节点参数,判断所述当前方法的各节点和所述原测试用例的各节点是否满足条件一、条件二和条件三中的一个;
若满足条件一,则确定所述变更类型为:在所述当前方法中新增节点;
若满足条件二,则确定所述变更类型为:删除所述当前方法中的节点;
若满足条件三,则确定所述变更类型为:修改所述当前方法中的节点;
其中,所述条件一为:对于所述原测试用例的全部节点,均在所述当前方法的各节点中查找到节点名相同和节点路径相同的对应节点,且对于所述当前方法的至少一个节点,在所述原测试用例中未查找到节点名相同和节点路径相同的对应节点;
所述条件二为:对于所述当前方法的全部节点,均在所述原测试用例的各节点中查找到节点名相同和节点路径相同的对应节点,且对于所述原测试用例的至少一个节点,在所述当前方法中未查找到节点名相同和节点路径相同的对应节点;
所述条件三为:所述原测试用例的一个节点与所述当前方法的一个节点的节点名不同,但节点路径和节点数据类型均相同,且所述原测试用例的剩余节点与所述当前方法的剩余节点均相同。
4.根据权利要求3所述的方法,其特征在于,所述根据所述变更类型,更新所述当前方法对应的各所述原测试用例的节点,从而得到所述当前方法对应的多个新测试用例,包括:
若所述变更类型为:在所述当前方法中新增节点,则复制各所述源测试用例的副本,并在各所述副本中均增加与所述新增节点对应的新节点,并对所述新节点赋值,从而得到所述当前方法对应的多个新测试用例;
若所述变更类型为:删除所述当前方法中的节点,则复制各所述源测试用例的副本,并将各所述副本中的对应节点删除,从而得到所述当前方法对应的多个新测试用例;
若所述变更类型为:修改所述当前方法中的节点,则复制各所述源测试用例的副本,并将各所述副本中的对应节点的节点名修改为所述当前方法中被修改的节点的节点名,从而得到所述当前方法对应的多个新测试用例。
5.根据权利要求3所述的方法,其特征在于,所述根据所述变更类型,更新所述当前方法对应的各所述原测试用例的节点,从而得到所述当前方法对应的多个新测试用例,包括:
若所述变更类型为:在所述当前方法中新增节点,则对于每一个所述原测试用例,均复制一份所述当前方法的副本,并将所述副本中的各所述节点的节点值对应赋值为对应的所述原测试用例的各节点的节点值,从而得到所述当前方法对应的多个新测试用例,其中,所述新增节点的节点值赋值为预设节点值;
若所述变更类型为:删除所述当前方法中的节点,则对于每一个所述原测试用例,均复制一份所述当前方法的副本,并从对应的所述原测试用例中获得所述副本中对应的各所述节点的节点值并进行赋值,从而得到所述当前方法对应的多个新测试用例;
若所述变更类型为:修改所述当前方法中的节点,则对于每一个所述原测试用例,均复制一份所述当前方法的副本,并从对应的所述原测试用例中获得所述副本中对应的各所述节点的节点值并进行赋值,从而得到所述当前方法对应的多个新测试用例。
6.一种JSON格式的测试用例更新装置,其特征在于,包括:遍历单元、变更类型确定单元和更新单元;
所述遍历单元,用于遍历服务器接口的当前方法的各节点以及所述当前方法对应的至少一个原测试用例的各节点,从而确定所述当前方法相比所述原测试用例是否发生节点变更,其中,所述服务器接口的所述当前方法规定所述各节点的入参结构和出参结构,所述当前方法的各节点和所述原测试用例的各节点均满足JSON格式的要求;
所述变更类型确定单元,用于若确定所述当前方法发生节点变更,则根据所述当前方法的各节点的节点参数和所述原测试用例的各节点的节点参数,确定所述当前方法发生节点变更的变更类型,其中,所述节点参数包括:节点路径、节点名和节点数据类型;
所述更新单元,用于根据所述变更类型,更新所述当前方法对应的各所述原测试用例的节点,从而得到所述当前方法对应的多个新测试用例,其中,所述新测试用例的各节点与所述当前方法的各节点匹配。
7.根据权利要求6所述的装置,其特征在于,所述遍历单元,包括:方法节点遍历单元、用例节点遍历单元、第一变更单元、判断单元、第二变更单元和未变更单元;
所述方法节点遍历单元,用于遍历服务器接口的当前方法的各节点,从而分别获得所述当前方法的节点数量和各所述节点的节点名;
所述用例节点遍历单元,用于遍历所述原测试用例的各节点,从而分别获得所述原测试用例的节点数量和各所述节点的节点名;
所述第一变更单元,用于若所述当前方法的节点数量和所述原测试用例的节点数量不一致,则确定所述当前方法发生节点变更;
所述判断单元,用于若所述当前方法的节点数量和所述原测试用例的节点数量一致,则判断所述当前方法的各所述节点的节点名是否均与所述原测试用例的各所述节点的节点名对应,若是,则触发所述未变更单元,否则触发所述第二变更单元;
所述未变更单元,用于确定所述当前方法未发生节点变更;
所述第二变更单元,用于确定所述当前方法发生节点变更。
8.根据权利要求6所述的装置,其特征在于,所述变更类型确定单元,包括:条件判断单元、新增类型单元、删除类型单元和修改类型单元;
所述条件判断单元,用于若确定所述当前方法发生节点变更,则根据所述当前方法的各节点的节点参数和所述原测试用例的各节点的节点参数,判断所述当前方法的各节点和所述原测试用例的各节点是否满足条件一、条件二和条件三中的一个;
所述新增类型单元,用于若满足条件一,则确定所述变更类型为:在所述当前方法中新增节点;
所述删除类型单元,用于若满足条件二,则确定所述变更类型为:删除所述当前方法中的节点;
所述修改类型单元,用于若满足条件三,则确定所述变更类型为:修改所述当前方法中的节点;
其中,所述条件一为:对于所述原测试用例的全部节点,均在所述当前方法的各节点中查找到节点名相同和节点路径相同的对应节点,且对于所述当前方法的至少一个节点,在所述原测试用例中未查找到节点名相同和节点路径相同的对应节点;
所述条件二为:对于所述当前方法的全部节点,均在所述原测试用例的各节点中查找到节点名相同和节点路径相同的对应节点,且对于所述原测试用例的至少一个节点,在所述当前方法中未查找到节点名相同和节点路径相同的对应节点;
所述条件三为:所述原测试用例的一个节点与所述当前方法的一个节点的节点名不同,但节点路径和节点数据类型均相同,且所述原测试用例的剩余节点与所述当前方法的剩余节点均相同。
9.一种计算机可读存储介质,其上存储有程序,其特征在于,所述程序被处理器执行时实现如权利要求1至5中任一项所述的JSON格式的测试用例更新方法。
10.一种电子设备,其特征在于,所述电子设备包括至少一个处理器、以及与所述处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行如权利要求1至5中任一项所述的JSON格式的测试用例更新方法。
CN202210078468.7A 2022-01-24 2022-01-24 Json格式的测试用例更新方法及相关装置 Active CN114090464B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210078468.7A CN114090464B (zh) 2022-01-24 2022-01-24 Json格式的测试用例更新方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210078468.7A CN114090464B (zh) 2022-01-24 2022-01-24 Json格式的测试用例更新方法及相关装置

Publications (2)

Publication Number Publication Date
CN114090464A true CN114090464A (zh) 2022-02-25
CN114090464B CN114090464B (zh) 2022-04-26

Family

ID=80309207

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210078468.7A Active CN114090464B (zh) 2022-01-24 2022-01-24 Json格式的测试用例更新方法及相关装置

Country Status (1)

Country Link
CN (1) CN114090464B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140165043A1 (en) * 2012-07-30 2014-06-12 Infosys Limited System and method for functional test case generation of end-to-end business process models
CN104834595A (zh) * 2015-02-15 2015-08-12 网易(杭州)网络有限公司 一种可视化自动测试方法及系统
CN106502898A (zh) * 2016-10-25 2017-03-15 广州神马移动信息科技有限公司 测试方法和测试驱动器以及测试平台
CN112256259A (zh) * 2020-10-23 2021-01-22 网易(杭州)网络有限公司 思维导图的处理方法、装置、设备及存储介质
CN113704094A (zh) * 2021-08-06 2021-11-26 北京城市网邻信息技术有限公司 测试用例知识库构建方法、装置、电子设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140165043A1 (en) * 2012-07-30 2014-06-12 Infosys Limited System and method for functional test case generation of end-to-end business process models
CN104834595A (zh) * 2015-02-15 2015-08-12 网易(杭州)网络有限公司 一种可视化自动测试方法及系统
CN106502898A (zh) * 2016-10-25 2017-03-15 广州神马移动信息科技有限公司 测试方法和测试驱动器以及测试平台
CN112256259A (zh) * 2020-10-23 2021-01-22 网易(杭州)网络有限公司 思维导图的处理方法、装置、设备及存储介质
CN113704094A (zh) * 2021-08-06 2021-11-26 北京城市网邻信息技术有限公司 测试用例知识库构建方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN114090464B (zh) 2022-04-26

Similar Documents

Publication Publication Date Title
US8892504B2 (en) Method and system for reconciling meta-data in a data warehouse
US10621211B2 (en) Language tag management on international data storage
US8880549B2 (en) Concurrent database access by production and prototype applications
CN112988280B (zh) 一种配置数据处理方法及装置
CN109214785B (zh) 工作流的实现方法、服务器及系统
CN111443920B (zh) 一种框架迁移方法及装置
CN113760971A (zh) 用于检索图数据库的数据的方法、计算设备和存储介质
CN107368513B (zh) 客户端数据库更新的方法及装置
WO2018011959A1 (ja) 管理システム及び管理方法
CN118377605B (zh) 任务调度模型构建方法及装置
CN115756634A (zh) 数据库对象关系映射模型建立方法、装置、设备及介质
CN114780109B (zh) Python项目第三方库依赖自动化解析与安装方法
CN114090464B (zh) Json格式的测试用例更新方法及相关装置
CN113792026A (zh) 数据库脚本的部署方法、装置及计算机可读存储介质
US20080172659A1 (en) Harmonizing a test file and test configuration in a revision control system
US11711276B2 (en) Providing fast trigger matching to support business rules that modify customer-support tickets
JPH08110869A (ja) ファイルシステム
CA3141968C (en) Facilitating quick evaluation of trigger conditions for business rules that modify customer-support tickets
US11281627B2 (en) Facilitating quick evaluation of trigger conditions for business rules that modify customer support tickets
JP2003242313A (ja) 業務進捗制御装置及びその方法と、業務進捗制御プログラム及びそのプログラムを記録した記録媒体
US20030220939A1 (en) Information processing system, information processing method, and information processing program
Le Zou et al. On synchronizing with web service evolution
CN113806327A (zh) 一种数据库设计方法、装置及相关设备
CN111522627B (zh) 一种Docker镜像管理方法、装置、设备及介质
CN117708048A (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