CN112579467A - 一种测试方法、装置、计算机设备及存储介质 - Google Patents

一种测试方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN112579467A
CN112579467A CN202011581294.3A CN202011581294A CN112579467A CN 112579467 A CN112579467 A CN 112579467A CN 202011581294 A CN202011581294 A CN 202011581294A CN 112579467 A CN112579467 A CN 112579467A
Authority
CN
China
Prior art keywords
calling
tested
test
result
service
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
CN202011581294.3A
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.)
Beijing Baijia Technology Group Co ltd
Original Assignee
Beijing Baijia Technology Group 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 Baijia Technology Group Co ltd filed Critical Beijing Baijia Technology Group Co ltd
Priority to CN202011581294.3A priority Critical patent/CN112579467A/zh
Publication of CN112579467A publication Critical patent/CN112579467A/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/3688Test management for test execution, e.g. scheduling of test suites
    • 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/3692Test management for test results analysis

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

一种测试方法、装置、计算机设备及存储介质
技术领域
本公开涉及软件测试技术领域,具体而言,涉及一种测试方法、装置、计算机设备及存储介质。
背景技术
在软件的开发过程中,在开发进程进行到一定阶段时,通常需要对已经实现的程序功能进行测试,以排除与程序功能对应的代码中所存在的各种问题。
在对软件的某个待测试功能单元进行测试的时候,在该待测试功能单元依赖其他的功能单元,而其他功能单元并未实现的情况下,可以采用mock对象来模拟其他功能单元,实现对该待测试功能单元的测试。但是,该种测试方式存在较大的风险。
发明内容
本公开实施例至少提供一种测试方法、装置、计算机设备及存储介质。
第一方面,本公开实施例提供了一种测试方法,包括:
调用待测试对象执行测试用例,得到所述待测试对象在执行所述测试用例时输出的第一对象调用指令;
调用与所述第一对象调用指令对应的模拟服务,得到与所述第一对象调用指令对应的第一调用结果;
调用所述待测试对象基于所述第一调用结果得到所述测试用例的执行结果;
基于所述测试用例的执行结果,得到对所述待测试对象的测试结果。
一种可选的实施方式中,生成所述模拟服务,包括:
确定所述待测试对象在执行所述测试用例时,依赖的目标对象;
基于所述目标对象对所述第一对象调用指令的执行结果,生成所述模拟服务。
一种可选的实施方式中,所述模拟服务得到与所述第一对象调用指令对应的第一调用结果,包括:
所述模拟服务基于所述第一对象调用指令,确定所述第一对象调用指令对应的服务和/或接口;
基于确定的所述服务和/或接口,确定所述第一调用结果。
一种可选的实施方式中,所述基于所述服务和/或接口,确定所述第一调用结果,包括:
基于所述服务和/或接口,以及预先生成的所述服务和/或接口与第一调用结果之间的关联关系,确定所述第一调用结果。
一种可选的实施方式中,还包括:获取用户输入的第二调用结果;
建立所述第二调用结果与所述模拟服务对应的服务和/或接口之间的关联关系。
一种可选的实施方式中,还包括:检测预先设置的测试开关是否被打开;
所述调用待测试对象执行测试用例,得到所述待测试对象在执行所述测试用例时输出的第一对象调用指令,包括:
在所述测试开关被打开的情况下,调用待测试对象执行测试用例,得到所述待测试对象在执行所述测试用例时输出的第一对象调用指令。
一种可选的实施方式中,所述测试开关未被打开的情况下,调用所述待测试对象执行目标指令,并获取所述待测试对象在执行所述目标指令时输出的第二对象调用指令;
将所述第二对象调用指令发送至与所述第二对象调用指令对应的目标对象;
接收所述目标对象基于所述第二对象调用指令反馈的第三调用结果;
调用所述待测试对象,基于所述第三调用结果,得到所述目标指令的执行结果。
第二方面,本公开实施例还提供一种测试装置,包括:
第一调用模块,用于调用待测试对象执行测试用例,得到所述待测试对象在执行所述测试用例时输出的第一对象调用指令;
第二调用模块,用于调用与所述第一对象调用指令对应的模拟服务,得到与所述第一对象调用指令对应的第一调用结果;
第三调用模块,用于调用所述待测试对象基于所述第一调用结果得到所述测试用例的执行结果;
第一获取模块,用于基于所述测试用例的执行结果,得到对所述待测试对象的测试结果。
一种可选的实施方式中,还包括生成模块,在生成所述模拟服务时,用于:
确定所述待测试对象在执行所述测试用例时,依赖的目标对象;
基于所述目标对象对所述第一对象调用指令的执行结果,生成所述模拟服务。
一种可选的实施方式中,所述第二调用模块在调用所述模拟服务得到与所述第一对象调用指令对应的第一调用结果时,用于:
所述模拟服务基于所述第一对象调用指令,确定所述第一对象调用指令对应的服务和/或接口;
基于确定的所述服务和/或接口,确定所述第一调用结果。
一种可选的实施方式中,所述第二调用模块在基于所述服务和/或接口,确定所述第一调用结果时,用于:
基于所述服务和/或接口,以及预先生成的所述服务和/或接口与第一调用结果之间的关联关系,确定所述第一调用结果。
一种可选的实施方式中,还包括第二获取模块,用于:获取用户输入的第二调用结果;
建立所述第二调用结果与所述模拟服务对应的服务和/或接口之间的关联关系。
一种可选的实施方式中,还包括检测模块,用于:检测预先设置的测试开关是否被打开;
所述第一调用模块在调用待测试对象执行测试用例,得到所述待测试对象在执行所述测试用例时输出的第一对象调用指令时,用于:
在所述测试开关被打开的情况下,调用待测试对象执行测试用例,得到所述待测试对象在执行所述测试用例时输出的第一对象调用指令。
一种可选的实施方式中,所述检测模块在检测到测试开关未被打开的情况下,用于:调用所述待测试对象执行目标指令,并获取所述待测试对象在执行所述目标指令时输出的第二对象调用指令;
将所述第二对象调用指令发送至与所述第二对象调用指令对应的目标对象;
接收所述目标对象基于所述第二对象调用指令反馈的第三调用结果;
调用所述待测试对象,基于所述第三调用结果,得到所述目标指令的执行结果。
第三方面,本公开可选实现方式还提供一种计算机设备,处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第四方面,本公开可选实现方式还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
关于上述测试装置、计算机设备、及计算机可读存储介质的效果描述参见上述测试方法的说明,这里不再赘述。
本公开实施例提供的测试方法、装置、计算机设备及存储介质通过调用待测试对象在执行测试用例后获取的第一对象调用指令,使模拟服务能够得到与第一对象调用指令对应的第一调用结果,以使待测试对象能够基于第一调用结果得到测试用例的执行结果完成测试。这种方法利用模拟服务代替了待测试对象在测试时依赖的mock_jar实现对待测试对象的测试,避免用户将其他信息引入到测试过程,因此降低了测试过程中存在的风险。
进一步,由于模拟服务可以模拟待测试对象依赖的至少一个对象,因此无需在进行测试时经过待测试对象依赖的至少一个对象的处理,即可生成测试结果,因此减少了在对待测试对象进行软件功能测试时的测试时间,提高了测试的效率。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种测试方法的流程图;
图2示出了本公开实施例所提供的一种测试装置的示意图;
图3示出了本公开实施例所提供的一种计算机设备结构的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
经研究发现,为了实现对待测试功能单元的测试,在该待测试功能单元依赖其他功能单元的情况下,可以利用mock构造一个用于模拟其他功能单元的mock依赖包(mock_jar),然后基于该mock_jar实现对待测试功能单元的测试。由于mock_jar中所包括的数据可以被用户修改,因此可能会被注入对功能单元具有侵害的信息,导致测试过程存在较大的风险。
基于上述研究,本公开提供了一种测试方法、装置、计算机设备及存储介质,利用模拟服务代替了待测试对象在测试时依赖的mock_jar实现对待测试对象的测试,避免用户将其他信息引入到测试过程,因此降低了测试过程中存在的风险。
另外,由于模拟服务可以模拟待测试对象依赖的至少一个对象,因此无需在进行测试时经过待测试对象依赖的至少一个对象的处理,即可生成测试结果,因此减少了在对待测试对象进行软件功能测试时的测试时间,提高了测试的效率。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种测试方法进行详细介绍,本公开实施例所提供的测试方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该测试方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
下面以执行主体为进行软件测试的终端设备为例,对本公开实施例提供的测试方法加以说明。
参见图1所示,为本公开实施例提供的测试方法的流程图,所述方法包括步骤S101~S104,其中:
S101:调用待测试对象执行测试用例,得到待测试对象在执行测试用例时输出的第一对象调用指令;
S102:调用与第一对象调用指令对应的模拟服务,得到与第一对象调用指令对应的第一调用结果;
S103:调用待测试对象基于第一调用结果得到测试用例的执行结果;
S104:基于测试用例的执行结果,得到对待测试对象的测试结果。
本公开实施例通过调用待测试对象在执行测试用例后获取的第一对象调用指令,使模拟服务能够得到与第一对象调用指令对应的第一调用结果,以使待测试对象能够基于第一调用结果得到测试用例的执行结果完成测试。这种方法利用模拟服务代替了待测试对象在测试时依赖的mock_jar实现对待测试对象的测试,避免用户将其他信息引入到测试过程,因此降低了测试过程中存在的风险。另外,由于模拟服务可以模拟待测试对象依赖的至少一个对象,因此无需在进行测试时经过待测试对象依赖的至少一个对象的处理,即可生成测试结果,因此减少了在对待测试对象进行软件功能测试时的测试时间,提高了测试的效率。
下面对上述S101~S104加以详细说明。
测试例如可以包括应用软件测试或者软件系统测试,在确定测试类型的情况下,即可以根据实际的测试需求编写测试用例(Test Case)。
待测试对象例如可以是一个软件系统中的至少部分服务或者接口。或者,也可以是多个软件系统中的至少部分服务或者接口。
测试用例,是针对待测试对象确定的一组条件或变量,测试者利用测试用例可以确定待测试对象能否正确工作。利用测试用例可以将软件测试的行为活动做出科学化的组织归纳,以使软件测试的行为转化成可管理的模式。另外,利用测试用例可以将测试具体量化,以判断具体测试的功能能否正常使用。因此,测试用例构成了设计和制定测试过程的基础。
待测试对象不同,为待测试对象确定的测试用例也有所区别;执行软件测试的设备能够调用待测试对象,执行对应的测试用例,并输出调用的结果。在待测试对象被调用执行测试用例的过程中,若待测试对象依赖其他的服务或者接口,待测试对象会在执行测试用例的过程中输出第一对象调用指令。
示例性的,在测试用例用于测试某应用软件中的服务A的情况下,若服务A在执行测试用例时依赖服务B,此时,将服务A作为待测试对象;并建立针对服务B的模拟服务。服务B可以与服务A属于同一应用软件中的不同服务,也可以是属于不同应用软件中的不同服务。
此时,执行软件测试的设备调用与第一对象调用指令对应的模拟服务;执行软件测试的设备在调用模拟服务时,能够将第一对象调用指令传输给模拟服务。
模拟服务在接收到第一对象调用指令后,得到第一对象调用指令对应的第一调用结果;此时,第一调用结果与真正的服务B在执行该第一对象调用指令后得到的调用结果一致。模拟服务反馈的调用结果可以是预先设置的,也可以是用户动态输入的。
针对模拟服务反馈的调用结果为预先设置的情况,可以针对不同的第一对象调用指令,设置相应的调用结果,并将调用结果存储至预设的存储位置,例如,远程字典服务器(REmote DIctionary Server,Redis)、Apollo数据中心或者MYSQL数据库等。模拟服务能够从预设的存储位置,动态获取与第一对象调用指令对应的第一调用结果。预设的存储位置所存储的反馈结果可以是固定的,也可以由用户随时进行动态修改。
该种方法中,调用结果的存储方式灵活多样,且可插拔。通过用户输入的第二调用结果,可以实现对模拟服务向待测试对象反馈结果的灵活更改,达到“所改即所得”的效果,提高测试的效率。
针对模拟服务反馈的调用结果为用户动态输入的情况,模拟服务在被调用的时候,能够为用户提供输入调用结果的接口;用户可以即时输入调用结果;模拟服务将用户即时输入的调用结果确定为输出的第一调用结果。
(1):在建立模拟服务的时候,针对待测试对象依赖的服务或者接口仅有一个的情况下,可以针对该服务或者接口建立模拟服务。
此时,若待测试对象依赖的服务或者接口在执行第一对象调用指令时,还依赖其他的服务或者接口,例如,在待测试对象为服务A,服务A依赖于服务B,服务B在执行第一对象调用指令时还需要依赖服务B1、服务B2、……、服务Bn(n为正整数),并且,服务B1、服务B2等还可以在测试时依赖其他服务,例如服务B1-1、服务B1-2、服务B2-1、服务B2-2等,此时,可以为服务B1、B2、……、服务Bn、B1-1、服务B1-2、服务B2-1、服务B2-2共同建立一个模拟服务。该模拟服务不需要关注B1、B2、……、服务Bn、服务B1-1、服务B1-2、服务B2-1、以及服务B2-2之间的具体相互调用过程,而只只需能够基于第一对象调用指令,反馈对应的第一调用结果。
(2):在建立模拟服务的时候,针对待测试对象依赖的服务或者接口有多个的情况下:
a:可以针对不同的服务或者接口分别建立模拟服务。
此时,执行软件测试的设备在调用模拟服务时,需要基于第一对象调用指令,确定要调用的模拟服务,得到与第一对象调用指令对应的第一调用结果。
为了能够使得模拟服务基于第一对象调用指令确定服务和/或接口,在该对象调用指令中例如可以携带调用的对象的标识;执行软件测试的设备在得到待测试对象输出的第一对象调用指令后,基于第一对象调用指令中携带的对象的标识,确定要调用的模拟服务,然后将第一对象调用指令传输给确定的模拟服务,并调用确定的模拟服务,执行第一对象调用指令,得到对应的第一调用结果。
例如对于服务A在执行测试用例时需要依赖的服务B、服务C和服务D,可以针对服务B、服务C和服务D分别建立对应的模拟服务;其中,针对服务B建立的模拟服务的输入为待测试对象在调用服务B时所发送的相关信息,其输出为服务B在被服务A调用时,基于服务A所发送的相关信息进行处理后,反馈给服务A的执行结果;针对服务C建立的模拟服务的输入为待测试对象在调用服务C时所发送的相关信息,其输出为服务C在被服务A调用时,基于服务A所发送的相关信息进行处理后,反馈给服务A的执行结果;针对服务D建立的模拟服务的输入为待测试对象在调用服务D时所发送的相关信息,其输出为服务D在被服务A调用时,基于服务A所发送的相关信息进行处理后,反馈给服务A的执行结果。
在待处理对象为服务A的情况下,服务A在执行测试用例时,输出第一对象调用指令;第一对象调用指令中携带有服务B的标识;执行软件测试的设备基于第一对象调用指令中携带的服务B的标识,将第一对象调用指令传输给服务B对应的模拟服务。服务B对应的模拟服务接收第一对象调用指令,得到第一调用结果,并将第一调用结果向服务A反馈。
b:针对待测试对象依赖的所有服务或者接口建立统一的模拟服务;该模拟服务被调用时,能够基于第一对象调用指令,确定第一对象调用指令对应的服务和/或接口;基于确定的所述服务和/或接口,确定第一调用结果。
为了能够模拟服务基于第一对象调用指令确定第一对象调用指令对应的服务和/或接口,该对象调用指令中例如可以携带调用的服务和/或接口的标识;模拟服务在被调用后,能够得到待测试对象输出的第一对象调用指令,并基于第一对象调用指令中携带的对象的标识,确定要调用的服务和/或接口,然后基于确定的服务和/或接口,得到对应的第一调用结果。
示例性的,在基于服务和/或接口,确定所述第一调用结果时,可以基于所述服务和/或接口,以及预先生成的所述服务和/或接口与第一调用结果之间的关联关系,确定所述第一调用结果。该关联关系例如包括:服务和/或接口的标识与调用结果之间的关联关系。该关联关系例如存储在预设的存储位置。
另外,在服务A依赖多个服务和/或接口的情况下,针对不同的测试用例,服务A需要调用的服务和/或接口可以有所区别。
在上述调用模拟对象的过程中,待测试对象依赖的对象较多的情况下,利用模拟服务可以替代待测试对象依赖的多个对象,减少在测试时由于多个对象均需要在测试中执行相应的指令造成时间上的浪费,更关注于待测试对象本身,可以有针对性的关注待测试对象本身进行测试,提高了效率。同时,还可以规避待测试对象依赖的其他对象中可能存在问题,减少对待测试对象的测试造成干扰。
在本公开另一实施例中,测试方法还包括,检测预先设置的测试开关是否被打开。预先设置的测试开关用于开启测试以进入测试状态。在不进行测试的情况下,测试开关处于常闭状态。在需要进行测试的情况下,例如可以由测试人员发送测试相关指令打开测试开关。利用测试开关,可以在进行软件测试时,避免mock_jar对测试过程的侵入,减少测试过程中存在的风险。
在另一种实施例中,在测试开关被打开的情况下,也即在测试状态中,调用待测试对象执行测试用例,并获取待测试对象在执行测试用例时输出的第一对象调用指令。
在另一种可能的实施方式中,在测试开关未被打开的情况下,也即在正常使用中,调用待测试对象执行目标指令,并获取待测试对象在执行目标指令时输出的第二对象调用指令;将第二对象调用指令发送至与第二对象调用指令对应的目标对象;接收目标对象基于第二对象调用指令反馈的第三调用结果;调用待测试对象,基于第三调用结果,得到目标指令的执行结果。其中,第二对象调用指令与第一对象调用指令相似,在此不再赘述。
在测试状态中,待测试对象可以基于第一调用结果继续完成测试,以得到测试用例的执行结果,例如可以表示为Re',也即针对于测试用例,通过待测试对象本身进行测试时得到的测试用例的执行结果。
利用测试用例的执行结果Re',可以判断对待测试对象的测试结果。其中,测试结果例如可以包括待测试对象可以正常运行,或者待测试对象运行存在异常。
示例性的,在确定正常的测试结果为Re时,在测试用例的执行结果Re'与正常的测试结果为Re相同的情况下,可以判断待测试对象的测试结果为待测试对象可以正常运行;在测试用例的执行结果Re'与正常的测试结果为Re不同的情况下,可以判断待测试对象的测试结果为待测试对象存在异常。
在判断待测试对象的测试结果为待测试对象可以正常运行的情况下,即能够完成对待测试对象的测试,并可以利用待测试对象正常搭建软件系统,或者将软件系统中的其他对象作为新的待测试对象继续进行测试。具体的后续执行步骤在此不做限定。
在判断待测试对象的测试结果为待测试对象存在异常的情况下,即可以确定待测试对象自身可能存在问题,继而可以对待测试对象做出修改或者调整,以使测试对象可以正常使用。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与测试方法对应的测试装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述测试方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图2所示,为本公开实施例提供的一种测试装置的示意图,所述装置包括:第一调用模块21、第二调用模块22、第三调用模块23、以及第一获取模块24;其中,
第一调用模块21,用于调用待测试对象执行测试用例,得到所述待测试对象在执行所述测试用例时输出的第一对象调用指令;
第二调用模块22,用于调用与所述第一对象调用指令对应的模拟服务,得到与所述第一对象调用指令对应的第一调用结果;
第三调用模块23,用于调用所述待测试对象基于所述第一调用结果得到所述测试用例的执行结果;
第一获取模块24,用于基于所述测试用例的执行结果,得到对所述待测试对象的测试结果。
一种可选的实施方式中,还包括生成模块25,在生成所述模拟服务时,用于:
确定所述待测试对象在执行所述测试用例时,依赖的目标对象;
基于所述目标对象对所述第一对象调用指令的执行结果,生成所述模拟服务。
一种可选的实施方式中,所述第二调用模块22在调用所述模拟服务得到与所述第一对象调用指令对应的第一调用结果时,用于:
所述模拟服务基于所述第一对象调用指令,确定所述第一对象调用指令对应的服务和/或接口;
基于确定的所述服务和/或接口,确定所述第一调用结果。
一种可选的实施方式中,所述第二调用模块22在基于所述服务和/或接口,确定所述第一调用结果时,用于:
基于所述服务和/或接口,以及预先生成的所述服务和/或接口与第一调用结果之间的关联关系,确定所述第一调用结果。
一种可选的实施方式中,还包括第二获取模块26,用于:获取用户输入的第二调用结果;
建立所述第二调用结果与所述模拟服务对应的服务和/或接口之间的关联关系。
一种可选的实施方式中,还包括检测模块27,用于:检测预先设置的测试开关是否被打开;
所述第一调用模块21在调用待测试对象执行测试用例,得到所述待测试对象在执行所述测试用例时输出的第一对象调用指令时,用于:
在所述测试开关被打开的情况下,调用待测试对象执行测试用例,得到所述待测试对象在执行所述测试用例时输出的第一对象调用指令。
一种可选的实施方式中,所述检测模块27在检测到测试开关未被打开的情况下,用于:调用所述待测试对象执行目标指令,并获取所述待测试对象在执行所述目标指令时输出的第二对象调用指令;
将所述第二对象调用指令发送至与所述第二对象调用指令对应的目标对象;
接收所述目标对象基于所述第二对象调用指令反馈的第三调用结果;
调用所述待测试对象,基于所述第三调用结果,得到所述目标指令的执行结果。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
本公开实施例还提供了一种计算机设备,如图3所示,为本公开实施例提供的计算机设备结构示意图,包括:
处理器31和存储器32;所述存储器32存储有处理器31可执行的机器可读指令,处理器31用于执行存储器32中存储的机器可读指令,所述机器可读指令被处理器31执行时,处理器31执行下述步骤:
调用待测试对象执行测试用例,得到所述待测试对象在执行所述测试用例时输出的第一对象调用指令;
调用与所述第一对象调用指令对应的模拟服务,得到与所述第一对象调用指令对应的第一调用结果;
调用所述待测试对象基于所述第一调用结果得到所述测试用例的执行结果;
基于所述测试用例的执行结果,得到对所述待测试对象的测试结果。
上述存储器32包括内存321和外部存储器322;这里的内存321也称内存储器,用于暂时存放处理器31中的运算数据,以及与硬盘等外部存储器322交换的数据,处理器31通过内存321与外部存储器322进行数据交换。
上述指令的具体执行过程可以参考本公开实施例中所述的测试方法的步骤,此处不再赘述。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的测试方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的测试方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种测试方法,其特征在于,包括:
调用待测试对象执行测试用例,得到所述待测试对象在执行所述测试用例时输出的第一对象调用指令;
调用与所述第一对象调用指令对应的模拟服务,得到与所述第一对象调用指令对应的第一调用结果;
调用所述待测试对象基于所述第一调用结果得到所述测试用例的执行结果;
基于所述测试用例的执行结果,得到对所述待测试对象的测试结果。
2.根据权利要求1所述的测试方法,其特征在于,生成所述模拟服务,包括:
确定所述待测试对象在执行所述测试用例时,依赖的目标对象;
基于所述目标对象对所述第一对象调用指令的执行结果,生成所述模拟服务。
3.根据权利要求1或2所述的测试方法,其特征在于,所述模拟服务得到与所述第一对象调用指令对应的第一调用结果,包括:
所述模拟服务基于所述第一对象调用指令,确定所述第一对象调用指令对应的服务和/或接口;
基于确定的所述服务和/或接口,确定所述第一调用结果。
4.根据权利要求3所述的测试方法,其特征在于,所述基于所述服务和/或接口,确定所述第一调用结果,包括:
基于所述服务和/或接口,以及预先生成的所述服务和/或接口与第一调用结果之间的关联关系,确定所述第一调用结果。
5.根据权利要求4所述的测试方法,其特征在于,还包括:获取用户输入的第二调用结果;
建立所述第二调用结果与所述模拟服务对应的服务和/或接口之间的关联关系。
6.根据权利要求1所述的测试方法,其特征在于,还包括:检测预先设置的测试开关是否被打开;
所述调用待测试对象执行测试用例,得到所述待测试对象在执行所述测试用例时输出的第一对象调用指令,包括:
在所述测试开关被打开的情况下,调用待测试对象执行测试用例,得到所述待测试对象在执行所述测试用例时输出的第一对象调用指令。
7.根据权利要求6所述的测试方法,其特征在于,所述测试开关未被打开的情况下,调用所述待测试对象执行目标指令,并获取所述待测试对象在执行所述目标指令时输出的第二对象调用指令;
将所述第二对象调用指令发送至与所述第二对象调用指令对应的目标对象;
接收所述目标对象基于所述第二对象调用指令反馈的第三调用结果;
调用所述待测试对象,基于所述第三调用结果,得到所述目标指令的执行结果。
8.一种测试装置,其特征在于,包括:
第一调用模块,用于调用待测试对象执行测试用例,得到所述待测试对象在执行所述测试用例时输出的第一对象调用指令;
第二调用模块,用于调用与所述第一对象调用指令对应的模拟服务,得到与所述第一对象调用指令对应的第一调用结果;
第三调用模块,用于调用所述待测试对象基于所述第一调用结果得到所述测试用例的执行结果;
第一获取模块,用于基于所述测试用例的执行结果,得到对所述待测试对象的测试结果。
9.一种计算机设备,其特征在于,包括:处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时,所述处理器执行如权利要求1至7任一项所述的测试方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被计算机设备运行时,所述计算机设备执行如权利要求1至7任一项所述的测试方法的步骤。
CN202011581294.3A 2020-12-28 2020-12-28 一种测试方法、装置、计算机设备及存储介质 Pending CN112579467A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011581294.3A CN112579467A (zh) 2020-12-28 2020-12-28 一种测试方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011581294.3A CN112579467A (zh) 2020-12-28 2020-12-28 一种测试方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN112579467A true CN112579467A (zh) 2021-03-30

Family

ID=75140300

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011581294.3A Pending CN112579467A (zh) 2020-12-28 2020-12-28 一种测试方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN112579467A (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105335281A (zh) * 2014-07-30 2016-02-17 阿里巴巴集团控股有限公司 一种自动mock外部依赖的方法及装置
US20160170860A1 (en) * 2014-12-15 2016-06-16 Thomas Angermayer Dependent object delegation tester
CN108427644A (zh) * 2018-03-27 2018-08-21 深圳市买买提信息科技有限公司 服务测试方法、服务测试系统及服务测试装置
CN108664372A (zh) * 2018-05-08 2018-10-16 平安科技(深圳)有限公司 测试过程的监控装置、方法及计算机可读存储介质
CN110119354A (zh) * 2019-04-19 2019-08-13 平安普惠企业管理有限公司 基于测试用例生成的软件测试方法、装置及电子设备
CN110134582A (zh) * 2019-04-03 2019-08-16 口碑(上海)信息技术有限公司 测试用例的处理及数据处理方法及装置
CN110716850A (zh) * 2018-07-11 2020-01-21 腾讯科技(深圳)有限公司 页面测试方法、装置、系统及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105335281A (zh) * 2014-07-30 2016-02-17 阿里巴巴集团控股有限公司 一种自动mock外部依赖的方法及装置
US20160170860A1 (en) * 2014-12-15 2016-06-16 Thomas Angermayer Dependent object delegation tester
CN108427644A (zh) * 2018-03-27 2018-08-21 深圳市买买提信息科技有限公司 服务测试方法、服务测试系统及服务测试装置
CN108664372A (zh) * 2018-05-08 2018-10-16 平安科技(深圳)有限公司 测试过程的监控装置、方法及计算机可读存储介质
CN110716850A (zh) * 2018-07-11 2020-01-21 腾讯科技(深圳)有限公司 页面测试方法、装置、系统及存储介质
CN110134582A (zh) * 2019-04-03 2019-08-16 口碑(上海)信息技术有限公司 测试用例的处理及数据处理方法及装置
CN110119354A (zh) * 2019-04-19 2019-08-13 平安普惠企业管理有限公司 基于测试用例生成的软件测试方法、装置及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
米爱中,霍占强,姜国权主编: "《软件工程导论》", 31 December 2014, 长春:吉林大学出版社, pages: 210 *

Similar Documents

Publication Publication Date Title
CN107547759B (zh) 一种对客服人员通话的质检方法及装置
CN108920370B (zh) 兼容性问题检测方法、装置及设备
CN110188135B (zh) 文件生成方法及设备
CN109408112B (zh) 在线开发文档生成方法、装置、终端及可读存储介质
CN111597110B (zh) 页面测试方法、装置、电子设备及存储介质
CN112463634A (zh) 微服务架构下的软件测试方法及装置
CN115469833A (zh) 动态规则引擎的实现方法和装置、电子设备和存储介质
CN105404574B (zh) 一种智能卡与移动终端一致性测试方法及装置
CN112799953A (zh) 一种接口测试方法及装置、计算机设备及存储介质
CN111679977A (zh) 一种基于Jest的React项目单元测试方法、设备及存储介质
CN112307477A (zh) 代码检测方法、装置、存储介质以及终端
CN107341106A (zh) 应用程序兼容性检测方法、开发终端及存储介质
CN112306857A (zh) 用于测试应用的方法和装置
CN110162310B (zh) 插件接口测试方法及装置、计算机设备及存储介质
CN113986747A (zh) 一种数据生成方法、装置、电子设备及存储介质
CN106021004B (zh) 用户行为模拟单元、测试系统、以及测试方法
CN112579467A (zh) 一种测试方法、装置、计算机设备及存储介质
CN111142859A (zh) 一种脚本生成方法、装置、电子设备及存储介质
CN108563578B (zh) Sdk兼容性检测方法、装置、设备及可读存储介质
CN114895879B (zh) 管理系统设计方案确定方法、装置、设备及存储介质
CN112905457B (zh) 软件测试方法及装置
CN114090455A (zh) 一种软件测试方法、装置、设备及存储介质
CN103326892A (zh) Web接口的操作方法及装置
CN112579473A (zh) 一种测试系统、方法、计算机设备及存储介质
CN112597046A (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