CN104899142A - 一种远程mock测试方法及装置 - Google Patents
一种远程mock测试方法及装置 Download PDFInfo
- Publication number
- CN104899142A CN104899142A CN201510317203.8A CN201510317203A CN104899142A CN 104899142 A CN104899142 A CN 104899142A CN 201510317203 A CN201510317203 A CN 201510317203A CN 104899142 A CN104899142 A CN 104899142A
- Authority
- CN
- China
- Prior art keywords
- mock
- program
- home server
- remote service
- loading result
- 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
Links
Landscapes
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开一种远程mock测试方法及装置,属于软件测试技术领域,所述方法包括:部署在本地服务器上的测试程序根据预设的测试内容,创建用于mock对象的程序文件;测试程序调用部署在本地服务器的虚拟机上的远程服务程序,以使远程服务程序加载用于mock对象的程序文件;测试程序接收远程服务程序返回的加载结果;测试程序判断加载结果是否满足预期加载结果,以实现远程mock测试。本发明将测试程序直接部署在本地服务器上,远程服务程序部署在本地服务器的虚拟机上,实现了远程环境的隔离,而且虚拟机作为远程接口的调用可以模拟真实的生产环境,解决了现有mock测试方法在接口测试情况下,无法远程mock对象的问题。
Description
技术领域
本发明涉及软件测试技术领域,具体涉及一种远程mock测试方法及装置。
背景技术
mock测试方法就是在软件测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。
现有mock测试方法通常用于单机执行的单元测试或者功能测试中。而接口测试则是通过远程调用接口的方式进行测试,通常是发送http请求来实现。
因此,现有mock测试方法在接口测试情况下,无法通过虚拟对象来构造各种数据和业务场景,导致现有mock测试方法无法远程mock对象的问题。
发明内容
本发明所要解决的技术问题是现有mock测试方法在接口测试情况下,无法通过虚拟对象来构造各种数据和业务场景,导致现有mock测试方法无法远程mock对象的问题。
为此目的,第一方面,本发明提出一种远程mock测试方法,包括:
部署在本地服务器上的测试程序根据预设的测试内容,创建用于mock对象的程序文件;
所述测试程序调用部署在所述本地服务器的虚拟机上的远程服务程序,以使所述远程服务程序加载所述用于mock对象的程序文件;
所述测试程序接收所述远程服务程序返回的加载结果;
所述测试程序判断所述加载结果是否满足预期加载结果,以实现远程mock测试。
可选的,所述部署在本地服务器上的测试程序根据预设的测试内容,创建用于mock对象的程序文件,包括:
部署在本地服务器上的测试程序根据预设的测试内容,通过所述本地服务器的文件***,在所述本地服务器的虚拟机的文件访问路径上或在指定路径上,创建用于mock对象的程序文件,其中,所述指定路径为所述远程服务程序加载程序的路径。
可选的,所述测试程序判断所述加载结果是否满足预期加载结果,以实现远程mock测试,包括:
若满足预期加载结果,则提示测试成功;
若不满足预期加载结果,则提示测试失败。
可选的,在提示测试成功的步骤之后,所述方法还包括:
所述测试程序删除所述用于mock对象的程序文件。
可选的,所述测试程序调用部署在所述本地服务器的虚拟机上的远程服务程序,包括:
所述测试程序通过http请求调用部署在所述本地服务器的虚拟机上的远程服务程序。
第二方面,本发明还提出一种远程mock测试装置,所述装置部署在本地服务器中,所述装置包括:
创建单元,用于根据预设的测试内容,创建用于mock对象的程序文件;
调用单元,用于调用部署在所述本地服务器的虚拟机上的远程服务程序,以使所述远程服务程序加载所述用于mock对象的程序文件;
接收单元,用于接收所述远程服务程序返回的加载结果;
判断单元,用于判断所述接收单元接收到的加载结果是否满足预期加载结果。
可选的,所述创建单元,具体用于:
根据预设的测试内容,通过所述本地服务器的文件***,在所述本地服务器的虚拟机的文件访问路径上或在指定路径上,创建用于mock对象的程序文件,其中,所述指定路径为所述远程服务程序加载程序的路径。
可选的,所述装置还包括:提示单元,用于在所述判断单元判定加载结果满足预期加载结果时,提示测试成功;
所述提示单元,还用于在所述判断单元判定加载结果不满足预期加载结果时,提示测试失败。
可选的,所述装置还包括:删除单元,用于:
在所述提示单元提示测试成功之后,删除所述用于mock对象的程序文件。
可选的,所述调用单元,具体用于:
通过http请求调用部署在所述本地服务器的虚拟机上的远程服务程序。
相比于现有技术,本发明的远程mock测试方法及装置,将测试程序直接部署在本地服务器上,远程服务程序部署在本地服务器的虚拟机上,实现了远程环境的隔离,虚拟机不会和测试程序所在环境相互影响,而且虚拟机作为远程接口的调用完全可以模拟真实的生产环境,保持测试的仿真性,解决了现有mock测试方法在接口测试情况下,无法像在单元测试情况下通过虚拟对象来构造各种数据和业务场景,导致现有mock测试方法无法远程mock对象的问题,即很难覆盖到所有的代码逻辑的问题。
附图说明
图1为本公开实施例提供的一种远程mock测试方法流程图;
图2为本公开实施例提供的一种测试程序判断加载结果是否满足预期加载结果,以实现远程mock测试的流程图;
图3为本公开实施例提供的一种远程mock测试***结构图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
如图1所示,本实施例公开一种远程mock测试方法,该方法可包括以下步骤101至104:
101、部署在本地服务器上的测试程序根据预设的测试内容,创建用于mock对象的程序文件;
102、测试程序调用部署在本地服务器的虚拟机上的远程服务程序,以使远程服务程序加载用于mock对象的程序文件;
103、测试程序接收远程服务程序返回的加载结果;
104、测试程序判断加载结果是否满足预期加载结果,以实现远程mock测试。
上述实施例中的远程mock测试方法,将测试程序直接部署在本地服务器上,远程服务程序部署在本地服务器的虚拟机上,虚拟机实现了远程环境的隔离,不会和测试程序所在环境相互影响,而且作为远程接口的调用完全可以模拟真实的生产环境,保持测试的仿真性,解决了现有mock测试方法在接口测试情况下,无法像在单元测试情况下通过虚拟对象来构造各种数据和业务场景,导致现有mock测试方法无法远程mock对象的问题,即很难覆盖到所有的代码逻辑的问题。
在一个具体的例子中,步骤101,包括:
部署在本地服务器上的测试程序根据预设的测试内容,通过本地服务器的文件***,在本地服务器的虚拟机的文件访问路径上或在指定路径上,创建用于mock对象的程序文件,其中,指定路径为远程服务程序加载程序的路径。
上述实施例中的远程mock测试方法,由于虚拟机部署在测试程序所在的本地服务器,测试程序与远程服务程序可以通过文件***实现交互,测试程序执行时可以动态创建所需要的mock程序给远程服务程序加载调用,提高了测试程序的灵活性。
在一个具体的例子中,如图2所示,步骤104中包括以下步骤1041至1043:
1041、测试程序判断加载结果是否满足预期加载结果,若满足预期加载结果,则执行步骤1042;若不满足预期加载结果,则执行步骤1043;
1042、提示测试成功;
1043、提示测试失败。
在一个具体的例子中,在步骤1042之后,上述远程mock测试方法还可包括图2中未示出的步骤105:
105、测试程序删除用于mock对象的程序文件。
上述实施例中的远程mock测试方法,将用于mock对象的程序文件删除就不会影响接口服务的其他调用结果。测试中对于测试程序而言,mock的动作和单元测试相同,不需要关心接口服务如何调用。接口服务也不需要了解测试程序的执行情况,只要按照mock文件的逻辑执行就可以。
在一个具体的例子中,步骤102,包括:
测试程序通过http请求调用部署在本地服务器的虚拟机上的远程服务程序。
上述实施例中的远程mock测试方法,虽然双方是通过http请求的方式进行调用服务,但是通过底层文件***实现了控制。
举例来说,远程服务程序为接口服务程序A,A的功能是返回员工的详细信息,当测试程序B发送A的接口请求时,B需要将员工x的ID作为参数,A收到请求时,会调用代码的一个方法getInfoByID去查询数据库,将查出的员工x的详细信息返回给B。
举例来说,测试程序B需要测试一个异常情况,即当数据库连接有问题时,接口服务程序A返回一个错误消息,比如“connectdatabase fail”。则B在发送请求前,生成一个mock的代码文件到A指定的目录下,B再发送请求,A收到请求加载mock的代码文件执行,mock出新的方法getInfoByID让它返回一个模拟的数据库的连接错误。A返回“connect database fail”的错误信息给B,B收到结果后判断符合预期,测试成功,删除刚才生成的mock文件,结束测试。
如图3所示,本实施例公开一种远程mock测试装置,所述装置部署在本地服务器中,所述装置可包括:创建单元31、调用单元32、接收单元33以及判断单元34。
创建单元31,用于根据预设的测试内容,创建用于mock对象的程序文件;
调用单元32,用于调用部署在本地服务器的虚拟机上的远程服务程序,以使远程服务程序加载用于mock对象的程序文件;
接收单元33,用于接收远程服务器程序返回的加载结果;
判断单元34,用于判断接收单元33接收到的加载结果是否满足预期加载结果。
在一个具体的例子中,创建单元31,具体用于:
根据预设的测试内容,通过本地服务器的文件***,在本地服务器的虚拟机的文件访问路径上或在指定路径上,创建用于mock对象的程序文件,其中,指定路径为所述远程服务程序加载程序的路径。
在一个具体的例子中,上述远程mock测试装置还可包括图3中未示出的提示单元35;
所述提示单元35,用于在判断单元34判定加载结果满足预期加载结果之后,提示测试成功以及在判断单元34判定加载结果不满足预期加载结果之后,提示测试失败。
在一个具体的例子中,上述远程mock测试装置还可包括图3中未示出的删除单元36,用于在提示单元35提示测试成功之后,删除用于mock对象的程序文件。
在一个具体的例子中,调用单元32,具体用于:通过http请求调用部署在本地服务器的虚拟机上的远程服务程序。
本领域技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是互相排斥之处,可以采用任何组合对本说明书中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本公开的范围之内并且形成不同的实施例。
本公开的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本公开实施例的一种浏览器终端的设备中的一些或者全部部件的一些或者全部功能。本公开还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本公开的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
虽然结合附图描述了本公开的实施方式,但是本领域技术人员可以在不脱离本公开的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种远程mock测试方法,其特征在于,包括:
部署在本地服务器上的测试程序根据预设的测试内容,创建用于mock对象的程序文件;
所述测试程序调用部署在所述本地服务器的虚拟机上的远程服务程序,以使所述远程服务程序加载所述用于mock对象的程序文件;
所述测试程序接收所述远程服务程序返回的加载结果;
所述测试程序判断所述加载结果是否满足预期加载结果,以实现远程mock测试。
2.根据权利要求1所述的方法,其特征在于,所述部署在本地服务器上的测试程序根据预设的测试内容,创建用于mock对象的程序文件,包括:
部署在本地服务器上的测试程序根据预设的测试内容,通过所述本地服务器的文件***,在所述本地服务器的虚拟机的文件访问路径上或在指定路径上,创建用于mock对象的程序文件,其中,所述指定路径为所述远程服务程序加载程序的路径。
3.根据权利要求1或2所述的方法,其特征在于,所述测试程序判断所述加载结果是否满足预期加载结果,以实现远程mock测试,包括:
若满足预期加载结果,则提示测试成功;
若不满足预期加载结果,则提示测试失败。
4.根据权利要求3所述的方法,其特征在于,在提示测试成功的步骤之后,所述方法还包括:
所述测试程序删除所述用于mock对象的程序文件。
5.根据权利要求1或2所述的方法,其特征在于,所述测试程序调用部署在所述本地服务器的虚拟机上的远程服务程序,包括:
所述测试程序通过http请求调用部署在所述本地服务器的虚拟机上的远程服务程序。
6.一种远程mock测试装置,其特征在于,所述装置部署在本地服务器中,所述装置包括:
创建单元,用于根据预设的测试内容,创建用于mock对象的程序文件;
调用单元,用于调用部署在所述本地服务器的虚拟机上的远程服务程序,以使所述远程服务程序加载所述用于mock对象的程序文件;
接收单元,用于接收所述远程服务程序返回的加载结果;
判断单元,用于判断所述接收单元接收到的加载结果是否满足预期加载结果。
7.根据权利要求6所述的装置,其特征在于,所述创建单元,具体用于:
根据预设的测试内容,通过所述本地服务器的文件***,在所述本地服务器的虚拟机的文件访问路径上或在指定路径上,创建用于mock对象的程序文件,其中,所述指定路径为所述远程服务程序加载程序的路径。
8.根据权利要求6或7所述的装置,其特征在于,所述装置还包括:提示单元,用于在所述判断单元判定加载结果满足预期加载结果时,提示测试成功;
所述提示单元,还用于在所述判断单元判定加载结果不满足预期加载结果时,提示测试失败。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:删除单元,用于:
在所述提示单元提示测试成功之后,删除所述用于mock对象的程序文件。
10.根据权利要求6或7所述的装置,其特征在于,所述调用单元,具体用于:
通过http请求调用部署在所述本地服务器的虚拟机上的远程服务程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510317203.8A CN104899142B (zh) | 2015-06-10 | 2015-06-10 | 一种远程mock测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510317203.8A CN104899142B (zh) | 2015-06-10 | 2015-06-10 | 一种远程mock测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104899142A true CN104899142A (zh) | 2015-09-09 |
CN104899142B CN104899142B (zh) | 2018-04-27 |
Family
ID=54031817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510317203.8A Active CN104899142B (zh) | 2015-06-10 | 2015-06-10 | 一种远程mock测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104899142B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528400A (zh) * | 2016-09-22 | 2017-03-22 | 深圳峰创智诚科技有限公司 | Mock测试方法和装置 |
CN106970873A (zh) * | 2017-01-10 | 2017-07-21 | 阿里巴巴集团控股有限公司 | 线上mock测试方法、装置及*** |
CN107203465A (zh) * | 2016-03-18 | 2017-09-26 | 阿里巴巴集团控股有限公司 | ***接口测试方法及装置 |
CN108427644A (zh) * | 2018-03-27 | 2018-08-21 | 深圳市买买提信息科技有限公司 | 服务测试方法、服务测试***及服务测试装置 |
CN108536578A (zh) * | 2017-03-06 | 2018-09-14 | 阿里巴巴集团控股有限公司 | 一种测试方法及装置 |
CN108563572A (zh) * | 2018-04-13 | 2018-09-21 | 唐山新质点科技有限公司 | 一种回归测试方法、装置及服务器 |
CN108733527A (zh) * | 2017-04-24 | 2018-11-02 | 北京京东尚科信息技术有限公司 | 用于测试服务器功能的***、方法和装置 |
CN109634605A (zh) * | 2018-12-05 | 2019-04-16 | 苏州思必驰信息科技有限公司 | 用于web前端的模拟数据生成方法及*** |
CN109901983A (zh) * | 2017-12-07 | 2019-06-18 | 北京京东尚科信息技术有限公司 | 自动化测试方法及装置、存储介质、电子设备 |
CN106909505B (zh) * | 2017-02-19 | 2021-03-02 | 苏州浪潮智能科技有限公司 | 基于java的服务器操作***的远程测试方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103297475A (zh) * | 2012-03-01 | 2013-09-11 | 阿里巴巴集团控股有限公司 | Mock服务***及Mock服务的处理方法 |
CN103617120A (zh) * | 2013-12-05 | 2014-03-05 | 北京奇虎科技有限公司 | 一种单元测试方法和装置 |
CN103885873A (zh) * | 2012-12-20 | 2014-06-25 | 上海明想电子科技有限公司 | 一种自动化集成测试的方法 |
US20140331204A1 (en) * | 2013-05-02 | 2014-11-06 | Microsoft Corporation | Micro-execution for software testing |
-
2015
- 2015-06-10 CN CN201510317203.8A patent/CN104899142B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103297475A (zh) * | 2012-03-01 | 2013-09-11 | 阿里巴巴集团控股有限公司 | Mock服务***及Mock服务的处理方法 |
CN103885873A (zh) * | 2012-12-20 | 2014-06-25 | 上海明想电子科技有限公司 | 一种自动化集成测试的方法 |
US20140331204A1 (en) * | 2013-05-02 | 2014-11-06 | Microsoft Corporation | Micro-execution for software testing |
CN103617120A (zh) * | 2013-12-05 | 2014-03-05 | 北京奇虎科技有限公司 | 一种单元测试方法和装置 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107203465A (zh) * | 2016-03-18 | 2017-09-26 | 阿里巴巴集团控股有限公司 | ***接口测试方法及装置 |
CN106528400A (zh) * | 2016-09-22 | 2017-03-22 | 深圳峰创智诚科技有限公司 | Mock测试方法和装置 |
CN106970873A (zh) * | 2017-01-10 | 2017-07-21 | 阿里巴巴集团控股有限公司 | 线上mock测试方法、装置及*** |
CN106970873B (zh) * | 2017-01-10 | 2021-07-09 | 创新先进技术有限公司 | 线上mock测试方法、装置及*** |
CN106909505B (zh) * | 2017-02-19 | 2021-03-02 | 苏州浪潮智能科技有限公司 | 基于java的服务器操作***的远程测试方法及装置 |
CN108536578A (zh) * | 2017-03-06 | 2018-09-14 | 阿里巴巴集团控股有限公司 | 一种测试方法及装置 |
CN108733527A (zh) * | 2017-04-24 | 2018-11-02 | 北京京东尚科信息技术有限公司 | 用于测试服务器功能的***、方法和装置 |
CN108733527B (zh) * | 2017-04-24 | 2021-10-01 | 北京京东尚科信息技术有限公司 | 用于测试服务器功能的***、方法和装置 |
CN109901983A (zh) * | 2017-12-07 | 2019-06-18 | 北京京东尚科信息技术有限公司 | 自动化测试方法及装置、存储介质、电子设备 |
CN108427644A (zh) * | 2018-03-27 | 2018-08-21 | 深圳市买买提信息科技有限公司 | 服务测试方法、服务测试***及服务测试装置 |
CN108563572A (zh) * | 2018-04-13 | 2018-09-21 | 唐山新质点科技有限公司 | 一种回归测试方法、装置及服务器 |
CN109634605A (zh) * | 2018-12-05 | 2019-04-16 | 苏州思必驰信息科技有限公司 | 用于web前端的模拟数据生成方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN104899142B (zh) | 2018-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104899142A (zh) | 一种远程mock测试方法及装置 | |
CN107133180B (zh) | 动态页面的测试方法、测试装置及存储介质 | |
CN105955878A (zh) | 服务器端的测试方法及*** | |
CN104219316A (zh) | 一种分布式***中的调用请求处理方法及装置 | |
CN105303112B (zh) | 组件调用漏洞的检测方法及装置 | |
CN110765024A (zh) | 模拟测试方法、装置、电子设备和计算机可读存储介质 | |
CN104636254A (zh) | 生成测试用例的方法和装置、测试方法和设备 | |
CN110659202A (zh) | 客户端自动化测试方法及装置 | |
CN104899136A (zh) | 一种用于生成测试用例的方法和装置 | |
CN103530565A (zh) | 基于web的网站程序漏洞扫描方法及扫描装置 | |
CN104994060A (zh) | 一种用于为用户登录提供验证的方法和装置 | |
CN109558320A (zh) | ***测试方法、装置、***、设备及计算机可读存储介质 | |
CN110928770B (zh) | 软件测试的方法、装置、***、存储介质和电子设备 | |
CN108108296B (zh) | 一种云测试方法、服务器及客户端 | |
CN105468433A (zh) | 一种虚拟机磁盘数据的获取方法及*** | |
CN107621963B (zh) | 一种软件部署方法、软件部署***及电子设备 | |
CN103716356A (zh) | 基于web的存储过程操作方法、装置和*** | |
CN105701000A (zh) | 业务测试方法及装置 | |
CN105224457A (zh) | 一种测试框架实现方法和装置 | |
CN108390786B (zh) | 一种业务运维方法、装置及电子设备 | |
CN105049505A (zh) | 一种适配多种云存储接口的方法及*** | |
CN113392028A (zh) | 一种分布式测试***及控制方法 | |
CN115129574A (zh) | 一种代码测试方法和装置 | |
CN117520195A (zh) | 测试接口的方法、装置、设备、存储介质及程序产品 | |
CN105426272A (zh) | 应用程序备份方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |