CN110502420A - 一种实现测试脚本自修复的方法和装置 - Google Patents
一种实现测试脚本自修复的方法和装置 Download PDFInfo
- Publication number
- CN110502420A CN110502420A CN201810472313.5A CN201810472313A CN110502420A CN 110502420 A CN110502420 A CN 110502420A CN 201810472313 A CN201810472313 A CN 201810472313A CN 110502420 A CN110502420 A CN 110502420A
- Authority
- CN
- China
- Prior art keywords
- text
- interim
- test script
- tested
- flag
- 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
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 200
- 238000013515 script Methods 0.000 title claims abstract description 172
- 238000000034 method Methods 0.000 title claims abstract description 43
- 241000208340 Araliaceae Species 0.000 claims abstract description 42
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 claims abstract description 42
- 235000003140 Panax quinquefolius Nutrition 0.000 claims abstract description 42
- 235000008434 ginseng Nutrition 0.000 claims abstract description 42
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 34
- 238000005304 joining Methods 0.000 claims description 17
- 238000003860 storage Methods 0.000 claims description 16
- 230000008439 repair process Effects 0.000 claims description 10
- 230000008676 import Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 13
- 230000006870 function Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 230000006854 communication Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000005291 magnetic effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000011069 regeneration method Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
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
技术领域
本发明涉及计算机技术领域,尤其涉及一种实现测试脚本自修复的方法和装置。
背景技术
随着测试技术的不断发展,接口自动化测试技术的应用领域越来越广泛。自动化测试技术已经在缩短测试周期、提高被测系统质量方面显示出了绝对的优势。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
针对接口自动化测试,都是人为开发测试脚本、撰写测试用参数,运行平台运行,然后查看报告,在测试脚本出现问题是,需要人工接入修改脚本,再重新执行。也就是说,现有的测试是一个半自动化的过程,测试周期的绝大部分时间都浪费在了自动化脚本的撰写和维护上。
发明内容
有鉴于此,本发明实施例提供一种实现测试脚本自修复的方法和装置,能够解决现有技术无法使测试脚本随被测应用程序接口自动纠正错误,自动修改的功能的问题。
为实现上述目的,根据本发明实施例的一个方面,提供了一种实现测试脚本自修复的方法,包括调用测试脚本生成算法生成临时测试脚本文本和临时被测接口入参嵌套链路文本;生成临时测试脚本文本的文本标识和临时被测接口入参嵌套链路文本的文本标识;循环上述步骤,然后比对当前临时被测接口入参嵌套链路文本的文本标识与前一次生成的临时被测接口入参嵌套链路文本的文本标识,以确定用于测试的正式测试脚本文本。
可选地,调用测试脚本生成算法生成临时测试脚本文本和临时被测接口入参嵌套链路文本,包括:
采用前驱二叉搜索树的存储接口进行被测接口导入和遍历,生成带前驱节点的二叉搜索树;
对所述二叉搜索树进行中序遍历算法,生成临时测试脚本文本和临时被测接口入参嵌套链路文本。
可选地,比对当前临时被测接口入参嵌套链路文本的文本标识与前一次生成的临时被测接口入参嵌套链路文本的文本标识,以确定用于测试的正式测试脚本文本,包括:
若当前临时被测接口入参嵌套链路文本的文本标识与前一次生成的临时被测接口入参嵌套链路文本的文本标识不相同时,则使用当前临时测试脚本文本作为正式测试脚本文本进行测试。
可选地,比对当前临时被测接口入参嵌套链路文本的文本标识与前一次生成的临时被测接口入参嵌套链路文本的文本标识,以确定用于测试的正式测试脚本文本,包括:
若当前临时被测接口入参嵌套链路文本的文本标识与前一次生成的临时被测接口入参嵌套链路文本的文本标识相同时,则判断当前临时测试脚本文本的文本标识与前一次生成的临时测试脚本文本的文本标识是否相同;
若相同,则使用前一次生成的临时测试脚本作为正式测试脚本文本进行测试;
若不相同,则将当前临时测试脚本文本的应用程序接口调用行替换前一次生成的临时测试脚本文本的应用程序接口调用行,然后使用前一次生成的临时测试脚本文本作为正式测试脚本文本进行测试。
另外,根据本发明实施例的一个方面,提供了一种实现测试脚本自修复的装置,包括生成模块,用于调用测试脚本生成算法生成临时测试脚本文本和临时被测接口入参嵌套链路文本;生成临时测试脚本文本的文本标识和临时被测接口入参嵌套链路文本的文本标识;修复模块,用于比对当前临时被测接口入参嵌套链路文本的文本标识与前一次生成的临时被测接口入参嵌套链路文本的文本标识,以确定用于测试的正式测试脚本文本。
可选地,所述生成模块调用测试脚本生成算法生成临时测试脚本文本和临时被测接口入参嵌套链路文本,包括:
采用前驱二叉搜索树的存储接口进行被测接口导入和遍历,生成带前驱节点的二叉搜索树;
对所述二叉搜索树进行中序遍历算法,生成临时测试脚本文本和临时被测接口入参嵌套链路文本。
可选地,所述修复模块比对当前临时被测接口入参嵌套链路文本的文本标识与前一次生成的临时被测接口入参嵌套链路文本的文本标识,以确定用于测试的正式测试脚本文本,包括:
若当前临时被测接口入参嵌套链路文本的文本标识与前一次生成的临时被测接口入参嵌套链路文本的文本标识不相同时,则使用当前临时测试脚本文本作为正式测试脚本文本进行测试。
可选地,所述修复模块比对当前临时被测接口入参嵌套链路文本的文本标识与前一次生成的临时被测接口入参嵌套链路文本的文本标识,以确定用于测试的正式测试脚本文本,包括:
若当前临时被测接口入参嵌套链路文本的文本标识与前一次生成的临时被测接口入参嵌套链路文本的文本标识相同时,则判断当前临时测试脚本文本的文本标识与前一次生成的临时测试脚本文本的文本标识是否相同;
若相同,则使用前一次生成的临时测试脚本作为正式测试脚本文本进行测试;
若不相同,则将当前临时测试脚本文本的应用程序接口调用行替换前一次生成的临时测试脚本文本的应用程序接口调用行,然后使用前一次生成的临时测试脚本文本作为正式测试脚本文本进行测试。
根据本发明实施例的另一个方面,还提供了一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一实现测试脚本自修复的实施例所述的方法。
根据本发明实施例的另一个方面,还提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一基于实现测试脚本自修复的实施例所述的方法。
上述发明中的一个实施例具有如下优点或有益效果:提出了一种基于脚本自动生成算法的接口自动化修复技术,能够节省测试脚本在撰写后的维护过程中的庞大成本,实现测试脚本自纠错、自运行的结果。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的实现测试脚本自修复的方法的主要流程的示意图;
图2是根据本发明可参考实施例的实现测试脚本自修复的方法的主要流程的示意图;
图3是根据本发明实施例的实现测试脚本自修复的装置的主要模块的示意图;
图4是本发明实施例可以应用于其中的示例性系统架构图;
图5是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的实现测试脚本自修复的方法,如图1所示,所述实现测试脚本自修复的方法包括:
步骤S101,调用测试脚本生成算法生成临时测试脚本文本和临时被测接口入参嵌套链路文本。
其中,所述的临时被测接口入参嵌套链路是在自动生成算法中,会对被测接口的参数层级调用关系进行栈存储,通过栈读取方式形成调用的json格式的调用层级关系描述方式。
较佳地,采用前驱二叉搜索树的存储接口进行被测java接口导入和遍历,生成带前驱节点的二叉搜索树。然后对所述二叉搜索树进行中序遍历算法,生成临时测试脚本文本和临时被测接口入参嵌套链路文本。
其中,二叉搜索树又叫二叉查找树(Binary Search Tree),是它或者是一棵空树,或者是具有下列性质的二叉树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉排序树。前驱则是每个节点都有一个指向其父节点的指针。
也就是说,本发明的前驱二叉搜索树节点是为了分析接口、被调用对象关系为专门设计的一种包含变量名、变量类型、左孩子指针、右孩子指针和父亲指针的基本类型节点。
而中序遍历算法是先遍历左子树,然后遍历根结点,最后遍历右子树。
进一步地,测试脚本文本的保存格式为java,而被测接口入参嵌套链路文本的保存格式为json。
还值得说明的是,上述过程中所述的被测接口入参嵌套链路文本是被测接口入参的嵌套关系,以java基本类型为终点。
步骤S102,生成临时测试脚本文本的文本标识和临时被测接口入参嵌套链路文本的文本标识。
较佳地,采用MD5算法分别生成临时测试脚本文本的文本标识和临时被测接口入参嵌套链路文本的文本标识。
其中,MD5是Message-digest Algorithm 5算法的缩写,MD5算法是对输入信息进行初始化处理后,以512位分组来处理输入的信息,每一个分组又被划分成16到32位子分组,经过一系列的变换处理,输出四个32位分组,再将这32位分组级联后生成一个128位散列值,将通过MD5算法获得的散列值作为临时测试脚本文本和临时被测接口入参嵌套链路文本的文本标识。
当然,也可以采用其他算法分别生成临时测试脚本文本的文本标识和临时被测接口入参嵌套链路文本的文本标识,例如采用Base64、DES、RSA、MD2、MD4、SHA-1、SHA-2、SHA-3、ECDSA、FULL SHA-2、ECC-FULL等等算法。
进一步地,具体的实施过程包括:分别对临时测试脚本文本和临时被测接口入参嵌套链路文本按照二进制方式读入内容,然后生成(例如采用MD5运算)并保存临时测试脚本文本和临时被测接口入参嵌套链路文本的散列值,即为对应的文本内容的文本标识,分别设为Tn(java)和Tn(json),n为重复执行步骤S101和步骤S102的次数。
更进一步地,上述临时测试脚本文本和临时被测接口入参嵌套链路文本的文本标识是分别对其文本内容以二进制读入内存后,运行MD5算法计算得到的一串编码。
步骤S103,比对当前临时被测接口入参嵌套链路文本的文本标识与前一次执行步骤S101和步骤S102获得的临时被测接口入参嵌套链路文本的文本标识,以确定用于测试的正式测试脚本文本。
较佳地,在比对当前临时被测接口入参嵌套链路文本的文本标识与前一次执行步骤S101和步骤S102获得的临时被测接口入参嵌套链路文本的文本标识的时候,如果存在差异,则说明临时被测接口入参嵌套链路文本已经发生变化,进而使用当前临时测试脚本文本进行测试,即将当前临时测试脚本作为正式测试脚本。
作为另一个实施例,如果当前临时被测接口入参嵌套链路文本的文本标识与前一次执行步骤S101和步骤S102获得的临时被测接口入参嵌套链路文本的文本标识不存在差异,还可以比对当前临时测试脚本文本的文本标识与前一次执行步骤S101和步骤S102获得的临时测试脚本文本的文本标识。根据比对结果,如果存在差异,则说明被测接口API(应用程序接口,是软件系统不同组成部分衔接的约定)名称发现变化,将当前临时测试脚本文本的API调用行替换前一次临时测试脚本文本的API调用行,然后使用前一次临时测试脚本文本进行测试,丢弃当前临时测试脚本文本。如果不存在差异,则使用前一次临时测试脚本文本进行测试。
需要说明的是,在执行测试过程中,如果发生语法报错,可以通知脚本维护者,介入进行人工修复错误。
综上所述,本发明通过对被测试接口应用相同算法生成临时测试脚本文本和临时被测接口入参嵌套链路文本,在生成唯一文本内容标识。对比两次生成的临时标识,如果出现差异,调用对应修复策略,完成脚本修复,实现测试脚本每次运行前都会进行一次的自我纠错和自我修复。也就是说,本发明每次在运行前都会做一次被测接口变更性检测,可以在最大可能下自动修复测试脚本,保证每次运行测试都能得到正确的测试结果。同时,释放脚本维护需要的大量的人工成本,即通过本发明可以节省很多历史脚本维护所需要的大量人工成本。
图2是根据本发明可参考实施例的实现测试脚本自修复的方法的主要流程的示意图,所述实现测试脚本自修复的方法可以包括:
步骤S201,采用前驱二叉搜索树的存储接口进行被测接口导入和遍历,生成带前驱节点的二叉搜索树。
步骤S202,对所述二叉搜索树进行中序遍历算法,生成临时测试脚本文本和临时被测接口入参嵌套链路文本。
步骤S203,采用MD5算法分别生成临时测试脚本文本和临时被测接口入参嵌套链路文本的文本标识。
步骤S204,判断当前临时被测接口入参嵌套链路文本的文本标识与前一次生成的临时被测接口入参嵌套链路文本的文本标识是否相同,若相同则进行步骤S206,否则进行步骤S205。
步骤S205,使用当前临时测试脚本文本进行测试,退出该流程。
步骤S206,判断当前临时测试脚本文本的文本标识与前一次生成的临时测试脚本文本的文本标识是否相同,若相同则进行步骤S207,否则进行步骤S208。
步骤S207,使用前一次生成的临时测试脚本文本进行测试,退出该流程。
步骤S208,将当前临时测试脚本文本的应用程序接口调用行替换前一次生成的临时测试脚本文本的应用程序接口调用行,然后使用前一次生成的临时测试脚本文本进行测试,丢弃当前临时测试脚本文本,退出该流程。
作为可参考实施例的一个具体实施过程,针对被测接口A通过测试脚本生成算法生成接口测试脚本文本A1.java和接口入参嵌套链路文本A1.json。然后,针对A1.java和A1.json生成前述两个文件的文本标识,分别设为T1(A.java)和T1(A.json)。
在测试脚本执行测试之前,先针对被测接口A再次生成测试脚本文本A2.java和接口入参嵌套链路文本A2.json。然后,应用MD5算法生成针对A2.java和A2.json的文本标识,分别设为T2(A2.java)和T(A2.json)。然后进入自纠错的修复策略算法:
如果T2(A2.json)不等于T1(A1.json),那么用A2.java替换A1.java执行测试。
如果T2(A2.json)等于T1(A1.json),对比T2(A2.java)和T1(A1.java),如果对比T2(A2.java)不等于T1(A1.java),那么将A2.java的API调用行替换A1.java的API调用行,然后使用A1.java进行测试,丢弃A2.java。
如果T2(A2.json)等于T1(A1.json)并且T2(A2.java)等于T1(A1.java),那么丢弃A2.java和A2.json,执行A1.java进行测试。
图3是根据本发明实施例的实现测试脚本自修复的装置,如图3所示,所述实现测试脚本自修复的装置包括生成模块301和修复模块302。其中,生成模块301调用测试脚本生成算法生成临时测试脚本文本和临时被测接口入参嵌套链路文本,以及生成临时测试脚本文本的文本标识和临时被测接口入参嵌套链路文本的文本标识。修复模块302比对当前临时被测接口入参嵌套链路文本的文本标识与前一次生成的临时被测接口入参嵌套链路文本的文本标识,以确定用于测试的正式测试脚本文本。
较佳地,生成模块301采用前驱二叉搜索树的存储接口进行被测java接口导入和遍历,生成带前驱节点的二叉搜索树。然后对所述二叉搜索树进行中序遍历算法,生成临时测试脚本文本和临时被测接口入参嵌套链路文本。
作为较佳地实施例,修复模块302在比对当前临时被测接口入参嵌套链路文本的文本标识与前一次生成的临时被测接口入参嵌套链路文本的文本标识,以确定用于测试的正式测试脚本文本的过程中:
如果当前临时被测接口入参嵌套链路文本的文本标识与前一次生成的临时被测接口入参嵌套链路文本的文本标识不相同时,使用当前临时测试脚本文本作为正式测试脚本文本进行测试。
作为另一个较佳地实施例,如果当前临时被测接口入参嵌套链路文本的文本标识与前一次生成的临时被测接口入参嵌套链路文本的文本标识相同时,则可以判断当前临时测试脚本文本的文本标识与前一次生成的临时测试脚本文本的文本标识是否相同。若相同则使用前一次生成的临时测试脚本作为正式测试脚本文本进行测试。否则将当前临时测试脚本文本的应用程序接口调用行替换前一次生成的临时测试脚本文本的应用程序接口调用行,然后使用前一次生成的临时测试脚本文本作为正式测试脚本文本进行测试。
需要说明的是,在本发明所述实现测试脚本自修复的装置的具体实施内容,在上面所述实现测试脚本自修复的方法中已经详细说明了,故在此重复内容不再说明。
图4示出了可以应用本发明实施例的实现测试脚本自修复的方法或实现测试脚本自修复的装置的示例性系统架构400。或者图4示出了可以应用本发明实施例的实现测试脚本自修复的方法或实现测试脚本自修复的装置的示例性系统架构400。
如图4所示,系统架构400可以包括终端设备401、402、403,网络404和服务器405。网络404用以在终端设备401、402、403和服务器405之间提供通信链路的介质。网络404可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备401、402、403通过网络404与服务器405交互,以接收或发送消息等。终端设备401、402、403上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备401、402、403可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器405可以是提供各种服务的服务器,例如对用户利用终端设备401、402、403所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的实现测试脚本自修复的方法一般由服务器405执行,相应地,实现测试脚本自修复的装置一般设置于服务器405中。
应该理解,图4中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图5,其示出了适于用来实现本发明实施例的终端设备的计算机系统500的结构示意图。图5示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM503中,还存储有系统500操作所需的各种程序和数据。CPU501、ROM 502以及RAM503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括生成模块和修复模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:调用测试脚本生成算法生成临时测试脚本文本和临时被测接口入参嵌套链路文本;生成临时测试脚本文本和临时被测接口入参嵌套链路文本的文本标识;循环上述步骤,然后比对当前临时被测接口入参嵌套链路文本的文本标识与前一次生成的临时被测接口入参嵌套链路文本的文本标识,以确定用于测试的正式测试脚本文本。
根据本发明实施例的技术方案,能够解决现有技术无法使测试脚本随被测应用程序编辑接口自动纠正错误,自动修改的功能的问题。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种实现测试脚本自修复的方法,其特征在于,包括:
调用测试脚本生成算法生成临时测试脚本文本和临时被测接口入参嵌套链路文本;
生成临时测试脚本文本的文本标识和临时被测接口入参嵌套链路文本的文本标识;
循环上述步骤,然后比对当前临时被测接口入参嵌套链路文本的文本标识与前一次生成的临时被测接口入参嵌套链路文本的文本标识,以确定用于测试的正式测试脚本文本。
2.根据权利要求1所述的方法,其特征在于,调用测试脚本生成算法生成临时测试脚本文本和临时被测接口入参嵌套链路文本,包括:
采用前驱二叉搜索树的存储接口进行被测接口导入和遍历,生成带前驱节点的二叉搜索树;
对所述二叉搜索树进行中序遍历算法,生成临时测试脚本文本和临时被测接口入参嵌套链路文本。
3.根据权利要求1所述的方法,其特征在于,比对当前临时被测接口入参嵌套链路文本的文本标识与前一次生成的临时被测接口入参嵌套链路文本的文本标识,以确定用于测试的正式测试脚本文本,包括:
若当前临时被测接口入参嵌套链路文本的文本标识与前一次生成的临时被测接口入参嵌套链路文本的文本标识不相同时,则使用当前临时测试脚本文本作为正式测试脚本文本进行测试。
4.根据权利要求1-3任一所述的方法,其特征在于,比对当前临时被测接口入参嵌套链路文本的文本标识与前一次生成的临时被测接口入参嵌套链路文本的文本标识,以确定用于测试的正式测试脚本文本,包括:
若当前临时被测接口入参嵌套链路文本的文本标识与前一次生成的临时被测接口入参嵌套链路文本的文本标识相同时,则判断当前临时测试脚本文本的文本标识与前一次生成的临时测试脚本文本的文本标识是否相同;
若相同,则使用前一次生成的临时测试脚本作为正式测试脚本文本进行测试;
若不相同,则将当前临时测试脚本文本的应用程序接口调用行替换前一次生成的临时测试脚本文本的应用程序接口调用行,然后使用前一次生成的临时测试脚本文本作为正式测试脚本文本进行测试。
5.一种实现测试脚本自修复的装置,其特征在于,包括:
生成模块,用于调用测试脚本生成算法生成临时测试脚本文本和临时被测接口入参嵌套链路文本;生成临时测试脚本文本的文本标识和临时被测接口入参嵌套链路文本的文本标识;
修复模块,用于比对当前临时被测接口入参嵌套链路文本的文本标识与前一次生成的临时被测接口入参嵌套链路文本的文本标识,以确定用于测试的正式测试脚本文本。
6.根据权利要求5所述的装置,其特征在于,所述生成模块调用测试脚本生成算法生成临时测试脚本文本和临时被测接口入参嵌套链路文本,包括:
采用前驱二叉搜索树的存储接口进行被测接口导入和遍历,生成带前驱节点的二叉搜索树;
对所述二叉搜索树进行中序遍历算法,生成临时测试脚本文本和临时被测接口入参嵌套链路文本。
7.根据权利要求5所述的装置,其特征在于,所述修复模块比对当前临时被测接口入参嵌套链路文本的文本标识与前一次生成的临时被测接口入参嵌套链路文本的文本标识,以确定用于测试的正式测试脚本文本,包括:
若当前临时被测接口入参嵌套链路文本的文本标识与前一次生成的临时被测接口入参嵌套链路文本的文本标识不相同时,则使用当前临时测试脚本文本作为正式测试脚本文本进行测试。
8.根据权利要求5-7任一所述的装置,其特征在于,所述修复模块比对当前临时被测接口入参嵌套链路文本的文本标识与前一次生成的临时被测接口入参嵌套链路文本的文本标识,以确定用于测试的正式测试脚本文本,包括:
若当前临时被测接口入参嵌套链路文本的文本标识与前一次生成的临时被测接口入参嵌套链路文本的文本标识相同时,则判断当前临时测试脚本文本的文本标识与前一次生成的临时测试脚本文本的文本标识是否相同;
若相同,则使用前一次生成的临时测试脚本作为正式测试脚本文本进行测试;
若不相同,则将当前临时测试脚本文本的应用程序接口调用行替换前一次生成的临时测试脚本文本的应用程序接口调用行,然后使用前一次生成的临时测试脚本文本作为正式测试脚本文本进行测试。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-4中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810472313.5A CN110502420A (zh) | 2018-05-17 | 2018-05-17 | 一种实现测试脚本自修复的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810472313.5A CN110502420A (zh) | 2018-05-17 | 2018-05-17 | 一种实现测试脚本自修复的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110502420A true CN110502420A (zh) | 2019-11-26 |
Family
ID=68583985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810472313.5A Pending CN110502420A (zh) | 2018-05-17 | 2018-05-17 | 一种实现测试脚本自修复的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110502420A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102368227A (zh) * | 2011-10-13 | 2012-03-07 | 福建天晴数码有限公司 | 基于服务端接口的性能测试脚本生成的方法 |
CN102508763A (zh) * | 2011-10-11 | 2012-06-20 | 工业和信息化部计算机与微电子发展研究中心(中国软件评测中心) | Gis平台性能测试系统 |
CN103365643A (zh) * | 2012-03-30 | 2013-10-23 | Ge医疗系统环球技术有限公司 | 一种自动生成图形用户界面的测试脚本的方法及装置 |
US20170228220A1 (en) * | 2016-02-08 | 2017-08-10 | International Business Machines Corporation | Self-healing automated script-testing tool |
CN107273297A (zh) * | 2017-06-28 | 2017-10-20 | 百度在线网络技术(北京)有限公司 | 用于生成测试用例的方法和装置 |
CN107391379A (zh) * | 2017-07-28 | 2017-11-24 | 武汉斗鱼网络科技有限公司 | 接口自动测试方法及装置 |
CN107608889A (zh) * | 2017-09-15 | 2018-01-19 | 杭州销冠网络科技有限公司 | 一种测试脚本自动生成方法及系统 |
-
2018
- 2018-05-17 CN CN201810472313.5A patent/CN110502420A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508763A (zh) * | 2011-10-11 | 2012-06-20 | 工业和信息化部计算机与微电子发展研究中心(中国软件评测中心) | Gis平台性能测试系统 |
CN102368227A (zh) * | 2011-10-13 | 2012-03-07 | 福建天晴数码有限公司 | 基于服务端接口的性能测试脚本生成的方法 |
CN103365643A (zh) * | 2012-03-30 | 2013-10-23 | Ge医疗系统环球技术有限公司 | 一种自动生成图形用户界面的测试脚本的方法及装置 |
US20170228220A1 (en) * | 2016-02-08 | 2017-08-10 | International Business Machines Corporation | Self-healing automated script-testing tool |
CN107273297A (zh) * | 2017-06-28 | 2017-10-20 | 百度在线网络技术(北京)有限公司 | 用于生成测试用例的方法和装置 |
CN107391379A (zh) * | 2017-07-28 | 2017-11-24 | 武汉斗鱼网络科技有限公司 | 接口自动测试方法及装置 |
CN107608889A (zh) * | 2017-09-15 | 2018-01-19 | 杭州销冠网络科技有限公司 | 一种测试脚本自动生成方法及系统 |
Non-Patent Citations (1)
Title |
---|
侯莹;洪征;潘;吴礼发;: "基于模型的Fuzzing测试脚本自动化生成", 计算机科学, no. 03, 15 March 2013 (2013-03-15) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11163731B1 (en) | Autobuild log anomaly detection methods and systems | |
CN102236672B (zh) | 一种数据导入方法及装置 | |
CN107885660A (zh) | 基金系统自动化测试管理方法、装置、设备及存储介质 | |
CN103294595B (zh) | 一种基于遗传算法的软件修复方法 | |
CN109814877A (zh) | 基于环境管理的项目部署方法及其装置 | |
CN113312341B (zh) | 一种数据质量监控方法、系统和计算机设备 | |
CN114064208A (zh) | 检测应用服务状态的方法、装置、电子设备及存储介质 | |
CN110781090B (zh) | 数据处理测试的控制方法、装置、计算机设备及存储介质 | |
CN109815697A (zh) | 误报行为处理方法及装置 | |
CN109814957A (zh) | 一种用于ios系统的标签添加方法和装置 | |
CN111913824A (zh) | 确定数据链路故障原因的方法及相关设备 | |
CN114610608A (zh) | 测试用例处理方法、装置、电子设备以及存储介质 | |
CN109992496A (zh) | 一种用于自动化测试的数据处理方法和装置 | |
CN110795331A (zh) | 软件测试的方法和装置 | |
US11347533B2 (en) | Enhanced virtual machine image management system | |
CN113486358A (zh) | 一种漏洞检测方法及装置 | |
CN109977005B (zh) | 端到端测试方法、介质、装置和计算设备 | |
CN110580216B (zh) | 一种应用提测的方法和装置 | |
CN110502420A (zh) | 一种实现测试脚本自修复的方法和装置 | |
CN110765100A (zh) | 标签的生成方法、装置、计算机可读存储介质及服务器 | |
CN111026629A (zh) | 一种测试脚本自动生成的方法和装置 | |
CN115407990A (zh) | 一种业务逻辑流程开发及业务逻辑流程实现的方法和装置 | |
CN109766228A (zh) | 一种基于接口的线上验证方法和装置 | |
CN115203158A (zh) | 一种数据比对方法、装置、设备以及存储介质 | |
CN110245065A (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 |