CN104899142B - 一种远程mock测试方法及装置 - Google Patents
一种远程mock测试方法及装置 Download PDFInfo
- Publication number
- CN104899142B CN104899142B CN201510317203.8A CN201510317203A CN104899142B CN 104899142 B CN104899142 B CN 104899142B CN 201510317203 A CN201510317203 A CN 201510317203A CN 104899142 B CN104899142 B CN 104899142B
- Authority
- CN
- China
- Prior art keywords
- program
- test
- mock
- home server
- deployed
- 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.)
- Active
Links
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (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返回一个错误消息,比如“connect database fail”。则B在发送请求前,生成一个mock的代码文件到A指定的目录下,B再发送请求,A收到请求加载mock的代码文件执行,mock出新的方法getInfoByID让它返回一个模拟的数据库的连接错误。A返回“connectdatabase 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对象的程序文件加载后的执行的结果;
所述测试程序判断所述加载结果是否满足预期加载结果,以实现远程mock测试。
2.根据权利要求1所述的方法,其特征在于,所述部署在本地服务器上的测试程序根据预设的测试内容,创建用于mock对象的程序文件,包括:
部署在本地服务器上的测试程序根据预设的测试内容,通过所述本地服务器的文件系统,在所述本地服务器的虚拟机的文件访问路径上或在指定路径上,创建用于mock对象的程序文件,其中,所述指定路径为所述远程服务程序加载程序的路径。
3.根据权利要求1或2所述的方法,其特征在于,所述测试程序判断所述加载结果是否满足预期加载结果,以实现远程mock测试,包括:
若满足预期加载结果,则提示测试成功;
若不满足预期加载结果,则提示测试失败。
4.根据权利要求3所述的方法,其特征在于,在提示测试成功的步骤之后,所述方法还包括:
所述测试程序删除所述用于mock对象的程序文件。
5.根据权利要求1或2所述的方法,其特征在于,所述测试程序调用部署在所述本地服务器的虚拟机上的远程服务程序,包括:
所述测试程序通过http请求调用部署在所述本地服务器的虚拟机上的远程服务程序。
6.一种远程mock测试装置,其特征在于,所述装置部署在本地服务器中,所述装置包括:
创建单元,用于根据预设的测试内容,创建用于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 CN104899142A (zh) | 2015-09-09 |
CN104899142B true 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) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107203465B (zh) * | 2016-03-18 | 2020-11-03 | 创新先进技术有限公司 | 系统接口测试方法及装置 |
CN106528400A (zh) * | 2016-09-22 | 2017-03-22 | 深圳峰创智诚科技有限公司 | 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 | 阿里巴巴集团控股有限公司 | 一种测试方法及装置 |
CN108733527B (zh) * | 2017-04-24 | 2021-10-01 | 北京京东尚科信息技术有限公司 | 用于测试服务器功能的系统、方法和装置 |
CN109901983B (zh) * | 2017-12-07 | 2022-09-06 | 北京京东尚科信息技术有限公司 | 自动化测试方法及装置、存储介质、电子设备 |
CN108427644A (zh) * | 2018-03-27 | 2018-08-21 | 深圳市买买提信息科技有限公司 | 服务测试方法、服务测试系统及服务测试装置 |
CN108563572A (zh) * | 2018-04-13 | 2018-09-21 | 唐山新质点科技有限公司 | 一种回归测试方法、装置及服务器 |
CN109634605B (zh) * | 2018-12-05 | 2021-11-02 | 思必驰科技股份有限公司 | 用于web前端的模拟数据生成方法及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103297475B (zh) * | 2012-03-01 | 2017-03-01 | 阿里巴巴集团控股有限公司 | Mock服务系统及Mock服务的处理方法 |
CN103885873A (zh) * | 2012-12-20 | 2014-06-25 | 上海明想电子科技有限公司 | 一种自动化集成测试的方法 |
US9552285B2 (en) * | 2013-05-02 | 2017-01-24 | Microsoft Technology Licensing, Llc | Micro-execution for software testing |
CN103617120A (zh) * | 2013-12-05 | 2014-03-05 | 北京奇虎科技有限公司 | 一种单元测试方法和装置 |
-
2015
- 2015-06-10 CN CN201510317203.8A patent/CN104899142B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN104899142A (zh) | 2015-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104899142B (zh) | 一种远程mock测试方法及装置 | |
CN107133180B (zh) | 动态页面的测试方法、测试装置及存储介质 | |
CN110765024B (zh) | 模拟测试方法、装置、电子设备和计算机可读存储介质 | |
CN105303112B (zh) | 组件调用漏洞的检测方法及装置 | |
CN106294179A (zh) | 应用程序开发过程中的模拟测试方法及服务器 | |
CN105389263B (zh) | 应用软件权限监控方法、系统及设备 | |
US9329961B2 (en) | Testing development using real-time traffic | |
CN104536890A (zh) | 测试系统、方法和装置 | |
CN103677898A (zh) | 服务器侧审核加载的扩展和/或插件的方法及服务器 | |
CN104994060A (zh) | 一种用于为用户登录提供验证的方法和装置 | |
CN109669859A (zh) | 服务测试方法、装置、计算机设备和存储介质 | |
CN102437998A (zh) | 应用商店系统及使用该应用商店系统进行开发的方法 | |
CN107209711A (zh) | 用于测试在测试网络中的计算机系统的计算机的测试系统 | |
CN103716356A (zh) | 基于web的存储过程操作方法、装置和系统 | |
US20200371903A1 (en) | Automatic generation of unit tests while running an application | |
CN112650689A (zh) | 测试方法、装置、电子设备及存储介质 | |
CN107145439A (zh) | 一种测试请求处理方法及装置 | |
KR20170133781A (ko) | 가상 인프라 스트럭처의 시험 및 진단 장치 및 방법 | |
CN112104715A (zh) | 一种基于微服务日志链路跟踪方法及系统 | |
CN109739492B (zh) | 一种生成脚本代码的方法、终端、设备和介质 | |
CN110941559B (zh) | 自动测试方法及系统 | |
KR102111392B1 (ko) | 테스트 통합 관리시스템 및 그 제어방법 | |
CN103312554A (zh) | 一种多服务器交互业务的测试方法及系统 | |
US12039473B2 (en) | Software development project infrastructure builder tool | |
CN113419952B (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 |