CN107608902A - 程序接口测试方法及装置 - Google Patents
程序接口测试方法及装置 Download PDFInfo
- Publication number
- CN107608902A CN107608902A CN201710995220.6A CN201710995220A CN107608902A CN 107608902 A CN107608902 A CN 107608902A CN 201710995220 A CN201710995220 A CN 201710995220A CN 107608902 A CN107608902 A CN 107608902A
- Authority
- CN
- China
- Prior art keywords
- test
- data
- script
- test script
- interface
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种程序接口测试方法及装置。程序接口测试方法包括:设置测试脚本的执行顺序,测试脚本用于对程序的接口功能进行测试;根据执行顺序运行测试脚本;将运行每个测试脚本的输出数据与预期数据进行比较,若相同,则将输出数据作为下一个相邻的测试脚本的输入数据,并确定当前的测试脚本所对应的程序的接口功能良好;若不同,则确定当前的测试脚本所对应的程序的接口功能存在漏洞。本发明提供的方法及装置,能够按照预设顺序依次运行测试脚本,对程序的接口功能进行自动化测试,无需测试人员手动对每个接口进行检测,效率更高,而且,无需测试人员手动选取测试用的数据,从而避免测试人员的主观性对测试结果的影响。
Description
技术领域
本发明涉及软件测试技术,尤其涉及一种程序接口测试方法及装置,属于计算机领域。
背景技术
随着网络和终端设备的快速发展,依托于网络和/或终端设备运行的程序的更新速度也越来越快,程序更新后能够使功能更加丰富,从而提高用户体验,而程序的更新是由开发人员对程序进行修改完成的。为了保证修改后的程序不存在漏洞,在开发人员完成修改后,需要测试人员对程序进行测试。
而对于由多个程序组成系统来说,需要对程序之间的交互点进行接口测试。测试的重点是要检查数据的交换,传递和控制管理过程,以及程序间的相互逻辑依赖关系等。
目前,测试人员在对程序进行接口测试时,需要从数据库中调取数据,使用这些数据分别对软件的多个接口功能进行测试,测试人员根据自己对程序的了解从数据库中提取需要的数据进行测试,得到测试结果,因此测试结果与测试人员对程序的了解熟练度关联性较大。因此,现有技术中的测试方法,测试人员的主观性对测试结果的影响较大,存在测试结果不准确的问题。同时,由测试人员对程序接口逐个进行测试,测试效率低。
发明内容
本发明提供一种程序接口测试方法及装置,通过对测试脚本进行排序,能够按照预设顺序依次运行测试脚本,对程序的接口功能进行自动化测试,无需测试人员手动对每个接口进行检测,效率更高。同时,运行测试脚本所需的数据是与其相邻的前一个测试脚本运行时的输出数据,无需测试人员手动选取测试数据,从而避免测试人员的主观性对测试结果的影响。
本发明的第一个方面是提供一种程序接口测试方法,包括:
设置测试脚本的执行顺序,所述测试脚本用于对程序的接口功能进行测试;
根据所述执行顺序运行所述测试脚本;
将运行每个所述测试脚本的输出数据与预期数据进行比较,
若相同,则将所述输出数据作为下一个相邻的测试脚本的输入数据,并确定当前的测试脚本所对应的程序的接口功能良好;
若不同,则将所述预期数据作为下一个相邻的测试脚本的输入数据,并确定当前的测试脚本所对应的程序的接口功能存在漏洞。
本发明的另一个方面是提供一种程序接口测试装置,包括:
设置模块,用于设置测试脚本的执行顺序,所述测试脚本用于对程序的接口功能进行测试;
运行模块,用于根据所述执行顺序运行所述测试脚本;
比较模块,用于将运行每个所述测试脚本的输出数据与预期数据进行比较;
确定模块,若比较模块比较的结果相同,则所述确定模块将所述输出数据作为下一个相邻的测试脚本的输入数据,并确定当前的测试脚本所对应的程序的接口功能良好;
若比较模块比较的结果不同,则所述确定模块将所述预期数据作为下一个相邻的测试脚本的输入数据,并确定当前的测试脚本所对应的程序的接口功能存在漏洞。
本发明提供的程序接口测试方法及装置的技术效果是:根据实际测试需求设置测试脚本的执行顺序,再根据执行顺序运行测试脚本,将运行每个测试脚本的输出数据与预期数据进行比较,若相同,则将输出数据作为下一个相邻的测试脚本的输入数据,并确定当前的测试脚本所对应的程序的接口功能良好,若不同,则将所述预期数据作为下一个相邻的测试脚本的输入数据,并确定当前的测试脚本所对应的程序的接口功能存在漏洞。本实施例提供的方法及装置能够自动调用测试脚本检测与测试脚本对应的的接口功能,无需测试人员手动对每个接口进行检测,效率更高。同时,运行测试脚本所需的数据是与其相邻的前一个测试脚本运行时的输出数据,无需测试人员手动选取测试数据,从而避免测试人员的主观性对测试结果的影响。同时,这种方法及装置还使得测试人员无需维护测试数据库,能够减少测试人员的工作量。
附图说明
图1为本发明一示例性实施例示出的程序接口测试方法的流程图;
图2为本发明另一示例性实施例示出的程序接口测试方法的流程图;
图3为本发明又一示例性实施例示出的程序接口测试方法的流程图;
图4为本发明一示例性实施例示出的程序接口测试装置的结构图;
图5为本发明另一示例性实施例示出的程序接口测试装置的结构图。
具体实施方式
图1为本发明一示例性实施例示出的程序接口测试方法的流程图。
如图1所示,本实施例提供的程序接口测试方法包括:
步骤101,设置测试脚本的执行顺序,测试脚本用于对程序的接口功能进行测试。
其中,程序的接口是程序系统的不同组成部分之间衔接的交互点。由于近年来程序系统的规模日益庞大,在开发系统时,经常设计多个程序,并将多个程序组合起来形成一个庞大的系统,此时,各个程序之间需要进行数据交换,传递和控制管理,而且,各个程序间还具有逻辑依赖关系,这些都是依靠各个程序的接口来完成的。而每个接口都具有至少一种功能,例如,接口用于发送数据,还可以用于接收数据,还可以用于控制多个子系统的权限等等。
具体的,程序可以部署在服务器中,也就是程序的各个接口也部署在服务器中。测试脚本用于测试程序的接口功能,测试脚本运行时,能够调用与测试脚本相应的接口,运行接口,并使接口实现相应的功能。测试脚本决定了具体调用哪个接口,执行接口的哪个功能。
例如,程序的接口1具有选号功能,如选取带有6的手机号,选取带有8的手机号等等。可以使测试脚本调用接口1的选取带有6或8的手机号的功能,再查看选号结果,如果选取的号码均为带有6或8的手机号,就能够确定接口1中选取带有6或8的手机号的功能是完好的,否则,确定接口1的选号功能存在漏洞。
需要注意的是,测试脚本的执行顺序可以根据需求调整,并不是唯一的。
例如,登录接口用于验证用户输入的账号密码是否正确,查看接口用于查看账号中的套餐状态。可以设置测试脚本1用于测试登录接口的功能,测试脚本2用于测试查看接口的功能。由于登录账号和查询套餐状态的关系可以是先登录再查询,因此,可以将脚本的执行顺序设置为先运行测试脚本1、再运行测试脚本2。运行测试脚本1时,调用登录接口,并将测试脚本1中预存的正确的账号、密码发送登录接口,如果登陆成功,则登录接口能够正常的登录程序。同时,将该账号的登录结果发送至测试脚本2,测试脚本2请求查询该账号中的套餐状态,如果能够完整的查询到上述套餐状态,则查询接口的功能完好。
步骤102,根据执行顺序运行测试脚本。
一般来说,程序可以有多个接口,需要对每个接口的功能都进行测试,因此,需要设置与每个接口相对应的测试脚本。
步骤103,将运行每个测试脚本的输出数据与预期数据进行比较。
预期数据是指根据测试脚本中的内容预先确定的正确的输出结果,将运行测试脚本实际的输出数据与预期数据进行比较。
若相同,则执行步骤104,将输出数据作为下一个相邻的测试脚本的输入数据,并确定当前的测试脚本所对应的程序的接口功能良好。
还可以将输出数据保存至测试数据库,在运行下一个相邻的测试脚本时,直接从测试数据库调取运行上一个测试脚本时的输出数据。在对多个程序接口的功能进行测试时,无需测试人员更新、维护测试数据库,测试数据库只需要具有运行第一个测试脚本所需的数据,其他测试脚本运行时所需的数据是测试过程中自动生成的,因此能够减少人工维护测试数据库的工作量,降低测试过程的人工成本。
其中,还可以将开发环境、灰度环境(是指在小范围内试用程序,并获取程序运行结果)、实际部署程序的服务器中产生的数据同步至测试数据库中,将这些数据作为第一个测试脚本运行时所需的数据,能够自动丰富测试数据库中的数据,进一步的减少人工维护测试数据库的工作量。
若不同,则执行步骤105,将预期数据作为下一个相邻的测试脚本的输入数据,并确定当前的测试脚本所对应的程序的接口功能存在漏洞。
由于测试脚本的输出数据与预期数据不同的话,就可以认为实际输出数据是有误的,也就不能将其作为下一个相邻的测试脚本的输入数据,为了能够继续完成所有接口的功能测试,可以将预期数据作为下一个相邻的测试脚本的输入数据,使得其他测试脚本能够正常运行。
下面举一个选号、占号的例子,以说明上述实施例。用户向程序发送选号的请求,在程序根据用户设定的要求完成选号后,用户在选取的多个号码中确定一个心仪的号码,并操作程序进行占号操作。此时的程序具有两个接口,接口1具有选号功能,接口2接收用户在选定的号码中确定的心仪号码并完成占号操作。此时,可以制作两个测试脚本,脚本1用于测试接口1的选号功能,脚本2用于测试接口2的占号功能。由于只有先选号才能够占号,因此根据上述关系设置脚本1、2的执行顺序,即先执行脚本1,再执行脚本2。脚本1调用接口1,并向接口1发送请求,使接口1完成选取带有6、8的手机号码,脚本2接收运行脚本1的输出数据,也就是接收选号结果,并在其中确定一个心仪号码,将心仪号码发送至接口2,使接口2进行占号操作,在脚本2执行完毕后,可以查看心仪号码的状态,是否已经被占,如果是,则认为接口2的功能良好,否则,认为接口2的功能有漏洞。如果单独测试接口1、2的功能,测试人员需要先从数据库中调取大量号码供接口1进行选择,再从数据库中选取一个号码放置到接口2中查看接口2能否完成占号功能,导致测试效率低,耗时长的问题。
本实施例提供的程序接口测试方法,首先根据实际测试需求设置测试脚本的执行顺序,再根据执行顺序运行测试脚本,将运行每个测试脚本的输出数据与预期数据进行比较,若相同,则将输出数据作为下一个相邻的测试脚本的输入数据,并确定当前的测试脚本所对应的程序的接口功能良好,若不同,则将所述预期数据作为下一个相邻的测试脚本的输入数据,并确定当前的测试脚本所对应的程序的接口功能存在漏洞。本实施例提供的方法能够自动调用测试脚本检测与测试脚本对应的的接口功能,无需测试人员手动对每个接口进行检测,效率更高。同时,运行测试脚本所需的数据是与其相邻的前一个测试脚本运行时的输出数据,无需测试人员手动选取测试数据,从而避免测试人员的主观性对测试结果的影响。同时,这种方法还使得测试人员无需维护测试数据库,能够减少测试人员的工作量。
图2为本发明另一示例性实施例示出的程序接口测试方法的流程图。
如图2所示,本实施例提供的程序接口测试方法,包括:
步骤201,设置测试脚本的执行顺序,测试脚本用于对程序的接口功能进行测试。
步骤202,根据执行顺序运行测试脚本。其中,测试脚本包括:用于对同一接口进行不同测试的测试用例、预置条件、包含有标识符的外层文件。
具体的,程序的部分接口具有多个功能,因此,需要设置多个测试用例,能够对接口的每个功能都进行测试。进一步地,测试用例可以包括正常用例和异常用例。正常用例是指正确的操作数据,异常用例是指错误的操作数据。例如,测试程序的登录接口功能是否正常,运行正常用例时,会调用登录接口并将正确的账号、密码发送至登录接口。运行异常用例时,会调用登录接口并将错误的账号、密码发送至登录接口,从而从两个方向检测登录接口的登录功能。
进一步的,预置条件是指执行测试用例必须要满足的条件。例如,使用测试用例检测登录接口功能时,程序的登录界面应该是打开状态,若登录界面没有打开,运行该测试用例也就没有意义,还有可能引起报错。因此,可以将运行该测试用例的预置条件设置为程序的登录界面已打开。
实际应用时,外层文件中存储有至少一个标识符,且每个标识符对应一个数据库,具体的,数据库可以设置为数据表格的形式,通过标识符能够连接到与标识符对应的数据库。数据库中的数据作为测试用例运行的基础数据。例如,检测登录接口的登录功能时,测试用例可以调用数据库中预存的账号、密码数据,将这些数据发送至登录接口。
优选的,还可以将测试用例实际的输出数据保存至数据库,能够丰富数据库中的基础数据,无需人工填充数据库中的数据。
步骤203,获取测试脚本中的预置条件。
测试脚本中设置有包括预置条件的文件,包含了运行测试用例必须要满足的前提条件。
其中,预置条件中设置至少一个测试用例的预置条件。
步骤204,根据预置条件,选择满足预置条件的测试用例。
其中,满足预置条件的测试用例是指当前运行环境符合预置条件中运行该测试用例的要求,还可以包括没有预置条件的测试用例,也就是预置条件中不包括该测试用例的预置条件。例如,测试用例1的预置条件是账号已登录,则只有在账号登录的情况下才能够运行测试用例1,而测试用例2没有预置条件,则在任何情况下都可以运行测试用例2。
步骤205,在外层文件中调取与所选择的测试用例对应的标识符,以使测试用例基于标识符所指向的数据库中的数据运行。
通过标识符能够之间连接到标识符指定的数据库,并且可以根据测试用例中设置的具体字段获取数据库中的数据。
具体的,测试脚本中还可以包括自定义关键字。
可以利用现有类库中的关键字重新自定义新的关键字。例如在预置条件中利用‘Connect To Database Using Custom Params’、‘query’、‘set variable’、‘DisconnectFrom Database’等关键字组合成新关键字‘prepare_case001’,实现与数据库交互。在调用prepare_case001时,就能够实现与数据库交互的功能,不需要调用Connect To DatabaseUsing Custom Params’、‘query’、‘set variable’、‘Disconnect From Database’等多个关键字来实现。
另外,本实施例提供的测试方法,可以采用数据驱动测试用例(data driven)的方式,即:从数据文件读取输入数据,通过变量的参数化,将不同的测试数据传入不同的测试用例。
还可以采用关键字驱动(keyword driven)测试用例的方式,按照测试逻辑将测试用例拆解,形成数据文件,主要包括关键字、与关键字对应的操作步骤,运行测试用例时,可以根据关键字的逻辑关系逐层调用关键字,并执行与其相对应的操作步骤,从而完成运行测试用例。
步骤206,对每一个测试用例的输出数据和与测试用例对应的预期数据进行比较。
其中,预期数据可以存储在测试脚本的内层文件中,多个测试用例可以共用一个用于存储预期数据的内层文件。
若相同,则执行步骤207,将运行测试用例的输出数据保存至数据库。
也就是保存到上述标识符对应的数据库中,具体的输出数据保存至哪个数据库,可以根据输出数据类型确定,例如,输出的数据是号码A的状态变更为注销,则将该数据保存至具有号码状态信息的数据库中。
测试人员可以检索数据库,查看运行测试用例的输出结果是否的确保存到了数据库中,避免由于接口功能有漏洞,导致没有及时更改数据库中数据的问题。例如,用户通过程序进行占号操作时,占号接口输出该号码的状态是已占用,此时会判断接口功能正常。但是该接口未将数据库中的该号码状态同步为已占用,导致其他用户从程序中查看该号码状态时,该号码依旧是未占用的状态,因此,将运行测试用例的输出结果保存至数据库,能够使测试人员基于数据库确定接口能够及时更新数据库。
在步骤207之后还可以包括步骤208,并将测试用例的输出数据作为下一个相邻的测试脚本的输入数据,同时确定当前的测试用例所对应的程序的接口功能良好。
在运行下一个测试脚本时,可以从数据库中调用运行当前测试脚本的输出数据,具体可以为运行当前测试脚本中的多个测试用例的输出数据。
若不同,则执行步骤209,将预期数据作为下一个相邻的测试脚本的输入数据,并确定当前的测试用例所对应的程序的接口功能存在漏洞。从而避免测试过程中产生错误数据,对运行其他测试脚本产生影响。
在步骤209之后还可以包括步骤210,获取运行测试脚本的日志文件,对日志文件进行保存。
该日志文件包含了运行该测试脚本时,测试脚本中的用例运行结果与预期结果不符,也就是该测试脚本对应的接口功能有漏洞,因此,通过查看运行该测试脚本的日志,能够了解接口功能有漏洞的原因。
具体的,还可以将日志发送至开发人员,例如,通过邮件发送至开发人员的电子邮箱,使开发人员能够及时了解测试状态,并重新修改程序。
上述实施例可以基于Robot Framework框架实施,Robot Framework是一种基于Python的可扩展关键字驱动的自动化测试框架,通常用于端对端的验收测试。其中,可以通过以下代码实现脚本与内层文件和外层文件的交互过程:
${variable}evaluate os.path.abspath("外层.py")os
import variables${variable}
import variables${CURDIR}/内层.py
本实施例提供的程序接口测试方法,测试脚本中包括多个测试用例,能够对程序接口的不同功能分别进行测试,而且,还将与预期数据相同的数据结果保存至数据库,能够为运行下一个测试脚本中的测试用例提供测试数据,另外,测试人员还可以查看数据库,确定运行测试用例后的输出数据是否保存到了数据库中。
图3为本发明又一示例性实施例示出的程序接口测试方法的流程图。
如图3所示,本实施例提供的程序接口测试方法,包括:
步骤301,设置测试脚本的执行顺序,测试脚本用于对程序的接口功能进行测试。
步骤302,根据执行顺序运行测试脚本。
步骤303,将运行每个测试脚本的输出数据与预期数据进行比较。
若相同,则执行步骤304,将输出数据作为下一个相邻的测试脚本的输入数据,并确定当前的测试脚本所对应的程序的接口功能良好。
若不同,则执行步骤305,将预期数据作为下一个相邻的测试脚本的输入数据,并确定当前的测试脚本所对应的程序的接口功能存在漏洞。
步骤306,根据预设规则,在输出数据中提取关键信息。
预设规则为提取的字段信息,由于输出数据包含大量的数据信息,而需要工作人员查看的信息只是小部分,因此,根据预设规则能够提取出需要查看的关键信息。
步骤307,根据关键信息,生成测试结果报表。
查阅仅包括关键信息的测试结果报表能够节约工作人员的时间,从而提高工作效率,降低测试时产生的人工成本。
另外,根据提取的关键信息自动生成测试报表,无需测试人员制作测试结果的工作内容,能够减少测试人员的工作量。而且,测试人员手动制作测试结果时,由于自己的主观意识会导致测试报表中的内容不够准确,而自动生成测试报表能够避免这一问题,还能够使生成的测试报表格式统一,便于工作人员查看。
图4为本发明一示例性实施例示出的程序接口测试装置的结构图。
如图4所示,本实施例提供的接口测试装置,包括:
设置模块41,用于设置测试脚本的执行顺序,测试脚本用于对程序的接口功能进行测试;
运行模块42,用于根据执行顺序运行测试脚本;
比较模块43,用于将运行每个测试脚本的输出数据与预期数据进行比较;
确定模块44,若比较模块43比较的结果相同,则确定模块44将输出数据作为下一个相邻的测试脚本的输入数据,并确定当前的测试脚本所对应的程序的接口功能良好;
若比较模块43比较的结果不同,则确定模块44将预期数据作为下一个相邻的测试脚本的输入数据,并确定当前的测试脚本所对应的程序的接口功能存在漏洞。
其中,设置模块41、运行模块42、比较模块43、确定模块44依次连接。
本实施例提供的程序接口测试装置,能够根据实际测试需求设置测试脚本的执行顺序,再根据执行顺序运行测试脚本,将运行每个测试脚本的输出数据与预期数据进行比较,若相同,则将输出数据作为下一个相邻的测试脚本的输入数据,并确定当前的测试脚本所对应的程序的接口功能良好,若不同,则将所述预期数据作为下一个相邻的测试脚本的输入数据,并确定当前的测试脚本所对应的程序的接口功能存在漏洞。本实施例提供的装置能够自动调用测试脚本检测与测试脚本对应的的接口功能,无需测试人员手动对每个接口进行检测,效率更高。同时,运行测试脚本所需的数据是与其相邻的前一个测试脚本运行时的输出数据,无需测试人员手动选取测试数据,从而避免测试人员的主观性对测试结果的影响。同时,这种装置还使得测试人员无需维护测试数据库,能够减少测试人员的工作量。
本实施例提供的确定孔隙曲折度的装置的具体原理和实现方式均与图1所示的实施例类似,此处不再赘述。
图5为本发明另一示例性实施例示出的程序接口测试装置的结构图。
如图5所示,在上述实施例的基础上,本实施例提供的程序接口测试装置还包括:
第一保存模块45,若确定程序有漏洞,则第一保存模块45获取运行测试脚本的日志文件,对日志文件进行保存。其中,第一保存模块45与确定模块44连接。
其中,本实施例中的测试脚本包括:用于对同一接口进行不同测试的测试用例、预置条件、包含有标识符的外层文件;相应的,运行模块42包括:
获取单元421,用于获取测试脚本中的预置条件;
选择单元422,用于根据预置条件,选择满足预置条件的测试用例;
调取单元423,用于在外层文件中调取与所选择的测试用例对应的标识符,以使测试用例基于标识符所指向的数据库中的数据运行。
其中,获取单元421、选择单元422和调取单元423依次连接。
具体的,预期数据包括与每个测试用例对应的预期数据;
相应的,比较模块43包括:
比较单元431,用于对每一个测试用例的输出数据和与测试用例对应的预期数据进行比较;
装置还包括第二保存模块46,用于如果运行测试用例的输出数据与测试用例对应的预期数据相同,则将运行测试用例的输出数据保存至数据库。
其中,第二保存模块46与比较模块43连接。
优选的,本实施例提供的装置还包括提取模块47,用于根据预设规则,在输出数据中提取关键信息;
生成模块48,用于根据关键信息,生成测试结果报表。
其中,提取模块47与运行模块42、生成模块48分别连接。
本实施例提供的程序接口测试装置,测试脚本中包括多个测试用例,能够对程序接口的不同功能分别进行测试,而且,还将与预期数据相同的数据结果保存至数据库,能够为运行下一个测试脚本中的测试用例提供测试数据,另外,测试人员还可以查看数据库,确定运行测试用例后的输出数据是否保存到了数据库中。而且,本实施例提供的装置能够根据提取的关键信息自动生成测试报表,无需测试人员制作测试结果的工作内容,能够减少测试人员的工作量。另外,测试人员手动制作测试结果时,由于自己的主观意识会导致测试报表中的内容不够准确,而自动生成测试报表能够避免这一问题,还能够使生成的测试报表格式统一,便于工作人员查看。
本实施例提供的装置的具体原理和实现方式均与图2和图3所示的实施例类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种程序接口测试方法,其特征在于,包括:
设置测试脚本的执行顺序,所述测试脚本用于对程序的接口功能进行测试;
根据所述执行顺序运行所述测试脚本;
将运行每个所述测试脚本的输出数据与预期数据进行比较,
若相同,则将所述输出数据作为下一个相邻的测试脚本的输入数据,并确定当前的测试脚本所对应的程序的接口功能良好;
若不同,则将所述预期数据作为下一个相邻的测试脚本的输入数据,并确定当前的测试脚本所对应的程序的接口功能存在漏洞。
2.根据权利要求1所述的方法,其特征在于,还包括:
若确定程序有漏洞,则获取运行所述测试脚本的日志文件,对所述日志文件进行保存。
3.根据权利要求1或2所述的方法,其特征在于,所述测试脚本包括:用于对同一接口进行不同测试的测试用例、预置条件、包含有标识符的外层文件;相应的,所述运行所述测试脚本,包括:
获取所述测试脚本中的所述预置条件;
根据所述预置条件,选择满足所述预置条件的测试用例;
在所述外层文件中调取与所选择的测试用例对应的标识符,以使所述测试用例基于所述标识符所指向的数据库中的数据运行。
4.根据权利要求3所述的方法,其特征在于,所述预期数据包括与每个所述测试用例对应的预期数据;
相应的,所述将运行每个所述测试脚本的输出数据与预期数据进行比较,包括:
对每一个所述测试用例的输出数据和与所述测试用例对应的预期数据进行比较;
所述方法还包括:如果运行所述测试用例的输出数据与所述测试用例对应的预期数据相同,则将运行所述测试用例的输出数据保存至所述数据库。
5.根据权利要求1所述的方法,其特征在于,还包括:
根据预设规则,在所述输出数据中提取关键信息;
根据所述关键信息,生成测试结果报表。
6.一种程序接口测试装置,其特征在于,包括:
设置模块,用于设置测试脚本的执行顺序,所述测试脚本用于对程序的接口功能进行测试;
运行模块,用于根据所述执行顺序运行所述测试脚本;
比较模块,用于将运行每个所述测试脚本的输出数据与预期数据进行比较;
确定模块,若比较模块比较的结果相同,则所述确定模块将所述输出数据作为下一个相邻的测试脚本的输入数据,并确定当前的测试脚本所对应的程序的接口功能良好;
若比较模块比较的结果不同,则所述确定模块将所述预期数据作为下一个相邻的测试脚本的输入数据,并确定当前的测试脚本所对应的程序的接口功能存在漏洞。
7.根据权利要求6所述的装置,其特征在于,还包括:第一保存模块,若确定程序有漏洞,则所述第一保存模块获取运行所述测试脚本的日志文件,对所述日志文件进行保存。
8.根据权利要求6或7所述的装置,其特征在于,所述测试脚本包括:用于对同一接口进行不同测试的测试用例、预置条件、包含有标识符的外层文件;相应的,所述运行模块包括:
获取单元,用于获取所述测试脚本中的所述预置条件;
选择单元,用于根据所述预置条件,选择满足所述预置条件的测试用例;
调取单元,用于在所述外层文件中调取与所选择的测试用例对应的标识符,以使所述测试用例基于所述标识符所指向的数据库中的数据运行。
9.根据权利要求8所述的装置,其特征在于,所述预期数据包括与每个所述测试用例对应的预期数据;
相应的,所述比较模块包括:
比较单元,用于对每一个所述测试用例的输出数据和与所述测试用例对应的预期数据进行比较;
所述装置还包括第二保存模块,用于如果运行所述测试用例的输出数据与所述测试用例对应的预期数据相同,则将运行所述测试用例的输出数据保存至所述数据库。
10.根据权利要求6所述的装置,其特征在于,还包括:
提取模块,用于根据预设规则,在所述输出数据中提取关键信息;
生成模块,用于根据所述关键信息,生成测试结果报表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710995220.6A CN107608902A (zh) | 2017-10-23 | 2017-10-23 | 程序接口测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710995220.6A CN107608902A (zh) | 2017-10-23 | 2017-10-23 | 程序接口测试方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107608902A true CN107608902A (zh) | 2018-01-19 |
Family
ID=61079426
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710995220.6A Pending CN107608902A (zh) | 2017-10-23 | 2017-10-23 | 程序接口测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107608902A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109726116A (zh) * | 2018-11-08 | 2019-05-07 | 深圳壹账通智能科技有限公司 | 联调测试方法、装置、计算机装置及存储介质 |
CN109828904A (zh) * | 2018-12-14 | 2019-05-31 | 深圳壹账通智能科技有限公司 | 系统验证方法、装置、电子设备及存储介质 |
CN110377520A (zh) * | 2019-07-22 | 2019-10-25 | 中国工商银行股份有限公司 | 交易场景的测试方法及装置、电子设备和可读存储介质 |
CN110888000A (zh) * | 2018-09-10 | 2020-03-17 | 北京松果电子有限公司 | Rbdp接口可用性检测方法、平台、显示终端及系统 |
CN111581090A (zh) * | 2020-04-30 | 2020-08-25 | 重庆富民银行股份有限公司 | 一种基于nlp和rf框架的自动化测试用例生成方法及系统 |
CN111897721A (zh) * | 2020-07-14 | 2020-11-06 | 重庆长安汽车股份有限公司 | 一种api接口的自动化测试方法及存储介质 |
CN113342678A (zh) * | 2021-06-29 | 2021-09-03 | 北京锐安科技有限公司 | 一种接口自动化测试方法、装置、电子设备和存储介质 |
CN113872919A (zh) * | 2020-06-30 | 2021-12-31 | 华为技术有限公司 | 一种漏洞扫描方法及装置 |
CN114721958A (zh) * | 2022-04-18 | 2022-07-08 | 四创科技有限公司 | 一种多数据库系统的接口自动化测试方法及终端 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101034371A (zh) * | 2006-03-09 | 2007-09-12 | 国际商业机器公司 | 用于测试方案的方法和装置 |
CN101261600A (zh) * | 2007-03-06 | 2008-09-10 | 中兴通讯股份有限公司 | 一种软件测试装置及测试软件的设计方法 |
CN101645037A (zh) * | 2009-09-11 | 2010-02-10 | 兰雨晴 | 基础软件平台应用程序接口集成测试覆盖分析方法 |
US8572570B2 (en) * | 2010-06-10 | 2013-10-29 | Accenture Global Services Limited | Assisted compositional reasoning for test scripts |
US20160259716A1 (en) * | 2015-03-02 | 2016-09-08 | Ca, Inc. | Rebuilding an execution flow from an execution grid |
CN106155891A (zh) * | 2015-04-02 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 接口测试方法、接口描述数据库生成方法及装置 |
-
2017
- 2017-10-23 CN CN201710995220.6A patent/CN107608902A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101034371A (zh) * | 2006-03-09 | 2007-09-12 | 国际商业机器公司 | 用于测试方案的方法和装置 |
CN101261600A (zh) * | 2007-03-06 | 2008-09-10 | 中兴通讯股份有限公司 | 一种软件测试装置及测试软件的设计方法 |
CN101645037A (zh) * | 2009-09-11 | 2010-02-10 | 兰雨晴 | 基础软件平台应用程序接口集成测试覆盖分析方法 |
US8572570B2 (en) * | 2010-06-10 | 2013-10-29 | Accenture Global Services Limited | Assisted compositional reasoning for test scripts |
US20160259716A1 (en) * | 2015-03-02 | 2016-09-08 | Ca, Inc. | Rebuilding an execution flow from an execution grid |
CN106155891A (zh) * | 2015-04-02 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 接口测试方法、接口描述数据库生成方法及装置 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110888000A (zh) * | 2018-09-10 | 2020-03-17 | 北京松果电子有限公司 | Rbdp接口可用性检测方法、平台、显示终端及系统 |
CN110888000B (zh) * | 2018-09-10 | 2022-02-08 | 北京小米松果电子有限公司 | Rbdp接口可用性检测方法、平台、显示终端及系统 |
CN109726116A (zh) * | 2018-11-08 | 2019-05-07 | 深圳壹账通智能科技有限公司 | 联调测试方法、装置、计算机装置及存储介质 |
CN109828904A (zh) * | 2018-12-14 | 2019-05-31 | 深圳壹账通智能科技有限公司 | 系统验证方法、装置、电子设备及存储介质 |
CN110377520B (zh) * | 2019-07-22 | 2024-03-15 | 中国工商银行股份有限公司 | 交易场景的测试方法及装置、电子设备和可读存储介质 |
CN110377520A (zh) * | 2019-07-22 | 2019-10-25 | 中国工商银行股份有限公司 | 交易场景的测试方法及装置、电子设备和可读存储介质 |
CN111581090A (zh) * | 2020-04-30 | 2020-08-25 | 重庆富民银行股份有限公司 | 一种基于nlp和rf框架的自动化测试用例生成方法及系统 |
CN111581090B (zh) * | 2020-04-30 | 2023-02-24 | 重庆富民银行股份有限公司 | 一种基于nlp和rf框架的自动化测试用例生成方法及系统 |
CN113872919A (zh) * | 2020-06-30 | 2021-12-31 | 华为技术有限公司 | 一种漏洞扫描方法及装置 |
CN113872919B (zh) * | 2020-06-30 | 2022-11-22 | 华为技术有限公司 | 一种漏洞扫描方法及装置 |
CN111897721A (zh) * | 2020-07-14 | 2020-11-06 | 重庆长安汽车股份有限公司 | 一种api接口的自动化测试方法及存储介质 |
CN111897721B (zh) * | 2020-07-14 | 2024-04-30 | 重庆长安汽车股份有限公司 | 一种api接口的自动化测试方法及存储介质 |
CN113342678A (zh) * | 2021-06-29 | 2021-09-03 | 北京锐安科技有限公司 | 一种接口自动化测试方法、装置、电子设备和存储介质 |
CN114721958A (zh) * | 2022-04-18 | 2022-07-08 | 四创科技有限公司 | 一种多数据库系统的接口自动化测试方法及终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107608902A (zh) | 程序接口测试方法及装置 | |
CN104407971B (zh) | 自动化测试嵌入式软件的方法 | |
CN103365770B (zh) | 移动终端软件测试系统及软件测试方法 | |
CN110297774A (zh) | 一种基于python的接口自动化测试方法 | |
CN107463362A (zh) | 基于多个Jenkins的持续部署的方法和系统 | |
CN106933729A (zh) | 一种基于云平台的测试方法和系统 | |
CN107807878A (zh) | 基于关键字的自动化测试引擎 | |
CN106095673A (zh) | 基于web接口的自动化测试方法及系统 | |
CN102141962A (zh) | 一种安全性分布式测试框架系统及其测试方法 | |
CN103439612A (zh) | 基于scd的智能变电站自动测试系统 | |
CN112052172B (zh) | 第三方通道的快速测试方法、装置和电子设备 | |
US5195095A (en) | Algorithm for identifying tests to perform for fault isolation | |
CN105760296A (zh) | 自动化测试控制方法、装置及终端 | |
CN110134612A (zh) | Ui测试数据生成方法、装置、设备及可读存储介质 | |
CN109977012A (zh) | 系统的联调测试方法、装置、设备及计算机可读存储介质 | |
CN107911251A (zh) | 一种网络设备配置方法、装置和介质 | |
CN108228464A (zh) | 一种基于数据驱动的移动应用ui测试框架及其实现方法 | |
US8661305B2 (en) | Method and system for test vector generation | |
CN109828750A (zh) | 自动配置数据埋点的方法、装置、电子设备及存储介质 | |
US9612944B2 (en) | Method and system for verifying scenario based test selection, execution and reporting | |
CN116483730A (zh) | 基于国产软硬件和开源测试工具的业务系统自动测试方法 | |
CN100407663C (zh) | 一种电信智能业务的通用测试系统及方法 | |
CN106557419A (zh) | 程序的测试方法及装置 | |
CN106301976A (zh) | 一种变电站智能化调度信息自动化测试方法 | |
CN110149241A (zh) | 一种基于ims设备的自动化测试方法及存储介质 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180119 |