CN106776313A - 一种模拟服务的方法、装置及集中管理平台 - Google Patents

一种模拟服务的方法、装置及集中管理平台 Download PDF

Info

Publication number
CN106776313A
CN106776313A CN201611152472.4A CN201611152472A CN106776313A CN 106776313 A CN106776313 A CN 106776313A CN 201611152472 A CN201611152472 A CN 201611152472A CN 106776313 A CN106776313 A CN 106776313A
Authority
CN
China
Prior art keywords
service
simulator
request
stake
simulation
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
Application number
CN201611152472.4A
Other languages
English (en)
Other versions
CN106776313B (zh
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.)
Vipshop Guangzhou Software Co Ltd
Original Assignee
Guangzhou Vipshop Information And Technology 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 Guangzhou Vipshop Information And Technology Co Ltd filed Critical Guangzhou Vipshop Information And Technology Co Ltd
Priority to CN201611152472.4A priority Critical patent/CN106776313B/zh
Publication of CN106776313A publication Critical patent/CN106776313A/zh
Application granted granted Critical
Publication of CN106776313B publication Critical patent/CN106776313B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/3664Environments for testing or debugging software
    • 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

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)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开一种模拟服务的方法,包括步骤:模拟外部服务行为启动模拟器初始化操作,在初始化后的模拟器的桩匹配器中编辑模拟匹配条件及预设响应;与被测服务同一IP的模拟器启动的监听链路拦截由被测服务发出的请求;解析所拦截的请求并将解析后的请求传送至模拟器的桩匹配器;模拟器的桩匹配器接收解析后的请求,根据模拟匹配条件执行匹配命令;若匹配成功,模拟器的桩匹配器发送预设响应至被测服务。本发明还公开了一种模拟服务的装置及集中管理平台,本发明旨在简化测试人员的联调测试、开发联调、异常场景及复杂测场景的模拟服务,简化压测数据和测试环境,以提高模拟服务的工作效率。

Description

一种模拟服务的方法、装置及集中管理平台
技术领域
本发明涉及测试领域,特别涉及一种模拟服务的方法、装置及集中管理平台。
背景技术
随着社会科学技术的发展,企业的管理内部服务的***涉及到的业务场景和联调测试数据非常复杂,企业应用的***很少孤立存在,大部分***都是依赖于不同软件供应商提供的服务拼装到一起。而现有多种服务模拟框架或者***基本都是需要编写代码而且主要是研发仅限于单元测试或者集成测试,且只支持HTTP、SOCKS等通用协议的模拟。而对于测试人员主要做是是黑盒测试,但编码能力有限制和业务压力,其要编写一个mock去模拟外部服务困难重重,非常影响工作效率。特别是,一些大型互联网公司,一个***往往是依赖多个外部***,涉及到的业务场景和联调测试数据非常复杂,常常会遇到以下几种情况:1、A服务调B服务,B服务由于某些原因不可用或不稳定(例如登陆页面调一个登陆的passport.api,但是passport.api连不上导致无法登陆);2、A服务调B服务,B服务的数据或场景难以构造(例如登陆页面调一个登陆的passport.api,passport.api会在某些极端情况下返回一些错误码;3、自动化测试时,A服务调B服务,由于B服务不可控,数据经常变动导致测试数据经常变化。
因为以上原因,导致因依赖外部服务而无法进行服务操作,影响工作效率。
发明内容
本发明的主要目的是提出一种模拟服务的方法、装置及集中管理平台,旨在提高模拟服务的工作效率。
为实现上述目的,本发明提出的一种模拟服务的方法,包括步骤:
模拟外部服务行为启动模拟器初始化操作,在初始化后的模拟器的桩匹配器中编辑模拟匹配条件及预设响应;
模拟器启动的与被测服务同一IP的监听链路拦截由被测服务发出的请求;
解析所拦截的请求并将解析后的请求传送至模拟器的桩匹配器;
模拟器的桩匹配器接收解析后的请求,根据模拟匹配条件执行匹配命令。
优选地,所述模拟外部服务行为启动模拟器初始化操作,在初始化后的模拟器的桩匹配器中编辑模拟匹配条件及预设响应的步骤包括:
根据被测服务的请求选择模拟测试架构,且在所选择的模拟测试架构中,模拟外部服务行为启动一个或多个不同协议服务的模拟器;
根据被测服务的当前协议服务请求选择模拟器当前协议链路的配置,将被测服务请求的IP修改为模拟器的IP,以将被测服务的请求指向模拟器启动的监听链路的端口;
根据模拟外部服务行为的意图,在模拟器的桩匹配器中编辑模拟匹配条件及预设响应为桩,参数化桩生成桩参数。
优选地,所述根据被测服务的当前协议服务请求选择模拟器当前协议链路的配置的步骤包括:若被测服务的当前协议服务为通用协议服务,则修改DNS配置,把被测服务请求的IP指向模拟器的IP,配置Nginx,利用Nginx的端口映射,把被测服务的请求指向模拟器启动的监听链路的端口;若被测服务的当前协议服务为自定义协议服务,通过OSP的静态路由的IP和端口,把被测服务请求的IP直接指向模拟器的IP和对应OSP链路的监听链路的端口。
优选地,所述解析拦截的请求并将解析后的请求传送至模拟器的桩匹配器的步骤包括:解析所拦截的请求生成请求参数;将请求参数转换为统一的封装不同协议的请求对象;传送请求对象至模拟器的桩匹配器。
优选地,所述模拟器的桩匹配器接收解析后的请求,根据模拟匹配条件执行匹配命令的步骤包括:桩匹配器接收解析后的请求;调用桩参数;解析桩参数,以释放模拟匹配条件和预设响应;调用模拟匹配条件,执行匹配命令。
优选地,所述模拟器的桩匹配器接收解析后的请求,根据模拟匹配条件执行匹配命令的步骤之后包括:若匹配成功,模拟器的桩匹配器发送预设响应至被测服务;若匹配失败,模拟器的桩匹配器转发解析后的请求至外部服务,并接收外部服务发出的对请求的真实响应,传送至被测服务。
优选地,在所述模拟器的监听链路拦截由同一IP的被测服务发出的请求的步骤和所述解析拦截的请求并将解析后的请求传送至模拟器的桩匹配器的步骤之间还包括:模拟器的监听链路监测所拦截的请求;若监测所拦截的请求不需要返回预设响应时,暂停所述监听链路,直接转发被测服务发出的请求至外部服务,并接收外部服务对请求的真实响应返回至被测服务;若监测所拦截的请求不需要使用模拟器时,停止所述监听链路,模拟服务关闭监听端口,返回报错信息。
优选地,所述模拟外部服务行为启动模拟器初始化操作,在初始化后的模拟器的桩匹配器中编辑模拟匹配条件及预设响应的步骤之前包括:呈现解耦依赖的执行情况时,执行解耦依赖。
本申请还提供了一种模拟服务的装置,包括:初始化模块,用于模拟外部服务行为启动模拟器初始化操作,在初始化后的模拟器的桩匹配器中编辑模拟匹配条件及预设响应;监听模块,用于与被测服务同一IP的模拟器启动的监听链路拦截由被测服务发出的请求;报文解析模块,用于解析所拦截的请求并将解析后的请求传送至模拟器的桩匹配器;执行模块,用于模拟器的桩匹配器接收解析后的请求,根据模拟匹配条件执行匹配命令。
优选地,还包括响应模块,用于若匹配成功,模拟器的桩匹配器发送预设响应至被测服务;还用于若匹配失败,接收外部服务发出的对请求的真实响应,传送至被测服务;转发模块,用于若匹配失败,模拟器的桩匹配器转发解析后的请求至外部服务;解耦依赖模块,用于呈现解耦依赖的执行情况时,执行解耦依赖;监测模块,用于模拟器的监听链路监测所拦截的请求;监测执行模块,用于若监测所拦截的请求不需要返回预设响应时,暂停模拟器的链路,直接转发被测服务发出的请求至外部服务,并接收外部服务对请求的真实响应返回至被测服务;还用于若监测所拦截的请求不需要使用模拟器时,停止模拟器的链路,模拟服务关闭监听端口,返回报错信息。
优选地,所述初始化模块包括:模拟测试架构单元,用于根据被测服务的请求选择模拟测试架构,且在在所选择的模拟测试架构中,模拟外部服务行为启动一个或多个不同协议服务的模拟器;模拟多种协议服务单元,用于模拟外部服务行为启动一个或多个不同协议服务的模拟器;服务端口配置单元,用于根据被测服务的当前协议服务请求选择模拟器当前协议链路的配置,以修改被测服务请求的IP为模拟器的IP,将被测服务的请求指向模拟器启动的监听链路的端口;桩单元,用于根据模拟外部服务行为的意图,在模拟器的桩匹配器中编辑模拟匹配条件及预设响应为桩,参数化桩生成桩参数。
优选地,所述服务端口配置单元包括:通用协议配置子单元,用于若被测服务的当前协议服务为通用协议服务,则修改DNS配置,把被测服务请求的IP指向模拟器的IP,配置Nginx,利用Nginx的端口映射,把被测服务的请求指向模拟器启动的监听链路的端口;自定义协议配置子单元,用于若被测服务的当前协议服务为自定义协议服务,通过OSP的静态路由的IP和端口,把被测服务请求的IP直接指向模拟器的IP和对应OSP链路的监听链路的端口。
优选地,所述报文解析模块包括:解析单元,用于解析所拦截的请求生成请求参数;封装单元,用于将请求参数转换为统一的封装不同协议的请求对象;传送单元,用于传送请求对象至模拟器的桩匹配器。
优选地,所述执行模块包括:接收单元,用于桩匹配器接收解析后的请求;调用单元,用于调用桩参数;释放单元,用于解析桩参数,以释放模拟匹配条件和预设响应;执行单元,用于调用模拟匹配条件,执行匹配命令。
本发明还公开了一种模拟服务的集中管理平台,包括:一个或多个不同协议的如上所述的模拟服务的装置;及UI交互模块,用于建立UI交互测试模型及交互规范,编辑静态HTML,以负责所有模拟服务的交互对接;及日志管理模块,用于提供日志管理功能,可对模拟测试的结果进行日志的记录、查看、下载及清理;及模拟数据库,用于存储模拟服务的所有数据。
在本发明中,通过采用简单的配置操作,如NGINX配置、模拟器的多种协议链路配置及桩配置,和丰富智能匹配规则,如包含、相等、正则表达式匹配和外部传参等完成模拟服务的自动化配置,实现了一种智能化匹配,简化工作程序,提高模拟服务的工作效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术配置,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1为本发明模拟服务的方法第一实施例的流程示意图;
图2为本发明一实施例中模拟外部服务行为启动模拟器初始化操作,在初始化后的模拟器的桩匹配器中编辑模拟匹配条件及预设响应的流程示意图;
图3为本发明一实施例中根据被测服务的当前协议服务请求选择模拟器当前协议链路的配置的流程示意图;
图4为本发明一实施例中解析拦截的请求并将解析后的请求传送至模拟器的桩匹配器的步流程示意图;
图5为本发明一实施例中模拟器的桩匹配器接收解析后的请求,根据模拟匹配条件执行匹配命令的流程示意图;
图6为本发明模拟服务的方法第二实施例的流程示意图;
图7为本发明模拟服务的方法第三实施例的流程示意图;
图8为本发明模拟服务的装置的第一实施例的功能模块示意图;
图9为本发明模拟服务的装置的第二实施例的功能模块示意图
图10为本发明一实施例中初始化模块的细化功能模块示意图;
图11为本发明一实施例中服务端口配置单元的细化功能模块示意图;
图12为本发明一实施例中报文解析模块的细化功能模块示意图;
图13为本发明一实施例中执行模块的细化功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术配置进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明,若本发明实施例中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
参照图1,图1为本申请实施例提供的一种模拟服务的方法的流程示意图,本发明提供了一种模拟服务的方法,步骤如下:
步骤S10,模拟外部服务行为启动模拟器初始化操作,在初始化后的模拟器的桩匹配器中编辑模拟匹配条件及预设响应;
在步骤S10中,模拟器初始化操作需要完成两个方面的预备,第一,需要部署测试环境(主要指硬件环境),以为模拟器的模拟服务提供稳定而可控的环境,提高模拟器的工作质量和效率。预先运行构建或部署与被测服务和外部服务之间网络通信服务接口的对接、建立WEB UI交互测试模型、构建多种测试类型框架、封装有不同协议的链路配置,根据被测服务的协议服务部署被测服务的服务端口配置及呈现解耦依赖情况时,执行解耦依赖,以绕开所依赖的外部服务的端口。而这些测试环境的部署均有一个集中管理数个模拟器的模拟服务平台来完成,首先建立模拟器与被测服务和外部服务之间的网络通信;接着建立WEB UI界面交互测试模型及交互规范,以下的步骤均在界面操作,而无需编码;再针对被测服务的需求构建多种测试类型的框架,比如:单元测试、集成测试、自动化测试、功能测试及压力测试,每种测试类型的框架内存储有模拟外部服务行为的测试用例的测试模块;根据不同协议服务给每个模拟器封装不同协议的链路配置;根据被测服务的协议服务修改被测服务的目标服务端口配置,被测的A服务(即被测服务)原来是依赖外部的B服务(即外部服务),现在A服务的目标服务不指向B服务而改为指向模拟器。第二,需要部署测试服务(主要指软件环境),以为本发明的测试方法提供测试对象。测试服务包括测试管理单元和测试执行单元,模拟器等同于测试管理单元,所述模拟器管理单次模拟测试的运行,而模拟器中虚拟一个桩匹配器(Stub Matcher)等同于测试执行单元,所述桩匹配器实行模拟测试执行控制,具体来说是,模拟器中的测试模块存储模拟外部服务行为的测试用例,桩匹配器用于模拟测试模块的调用条件的元件,以代替测试模块的接口,接受或传递测试模块的数据,其中,所述测试模块的调用条件即为在桩匹配器中编辑的模拟匹配条件,或者是,通过注册自定义服务事件的API函数编辑自定义服务的模拟测试匹配条件。桩匹配器根据模拟测试匹配条件实行测试控制。
特别说明地是,构建功能测试框架时,是单独启动的平台提供的压测包,所述的压测包支持通用协议和自定义协议,通用协议如HTTP协议(超文本传输协议)和自定义协议如OSP协议(一种网域间授权、路由和计费的国际标准协议),场景事例:OSP协议的压测服务模拟,而且压测包也是使用Web界面指定链路的桩设置,无需重复配置。步骤为:首先一键下载平台提供的压测包,启动压测模拟器,进行压力模拟测试,通过界面直接查看测试结果。
本申请模拟器的初始化还包括创建模拟器,所述模拟器用于模拟与被测的A服务进行真实交互的外部B服务。所述模拟器可以采用JETTY服务器,该JETTY服务器为一个开源的servelet容器(servelet是用JAVA编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态WEB内容),是基于JAVA的WEB容器。JETTY服务器可以作为嵌入式服务器使用,JETTY服务器的运行速度较快,而且是轻量级的,JETTY服务器是使用Java语言编写的,它的API以一组JAR包的形式发布。JAR包(JAVA的封装包)管理用于RPC协议模拟(RemoteProcedure Call Protocol--远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议),统一管理客户端的JAR包,可以理解地,JAR包可用于解析不同协议服务。则测试中当被测的A服务通过接口调用外部的B服务进行交互时,改为调用模拟器模拟该交互,即把原本被测的A服务请求修改指向,不再指向B服务而改为指向模拟器。
步骤S20,模拟器启动的与被测服务同一IP的监听链路拦截由被测服务发出的请求;
在步骤S20中,模拟器的初始化完成后会启动所有的链路监听,当模拟器启动的监听链路监听到与被测服务同一IP的请求,才会拦截该所监听到的请求,即裭测服务的发出的请求。本申请中的“IP”即为IP地址(Internet Protocol Address,又译为网际协议地址)。
步骤S30,解析所拦截的请求并将解析后的请求传送至模拟器的桩匹配器;
在步骤S30中,对所拦截的请求进行报文解析,将请求的报文数据按照***内定义规则解析,解析后的请求生成请求的相关数据,再将请求的相关数据传送至模拟器的桩匹配器。所述步骤S30实际是模拟器普通模拟匹配执行之前被测服务请求接收的过程
步骤S40,模拟器的桩匹配器接收解析后的请求,根据模拟匹配条件执行匹配命令。
在步骤S40中,所述模拟器的桩匹配器接收解析后的请求的步骤应该理解地是模拟器的桩匹配一旦接收请求就意味着模拟匹配的启动执行,所述桩匹配器开始实行模拟测试执行控制。所述模拟测试执行控制包括模拟匹配条件的调用、模拟匹配的运行判断及判断后的响应执行等。所述的步骤S40实际是模拟器普通模拟匹配执行之前的桩参数化相呼应的解参过程,
参照图2,具体地,在本实施例中,步骤S10包括:
步骤S101,根据被测服务的请求选择模拟测试架构,且在所选择的模拟测试架构中,模拟外部服务行为启动一个或多个不同协议服务的模拟器;
在步骤S101中,外部服务行为可能是一种协议服务的测试用例,也可能是多种协议服务的测试用例,而一个被测服务可能同时依赖多个不同的外部服务,预先存储模拟所述外部服务行为的测试用例于测试管理单元——模拟器,所以模拟器的初始化操作的启动时,需要启动一个或多个与外部服务相对应的模拟器。
所述模拟测试架构是提供模拟测试用例的模拟测试分析工具,它包括模拟测试的测试模块、管理模块和统计分析模块,所述测试模块用于执行不同测试类型的模拟匹配命令时,提供所调用的模拟测试用例,且所述的模拟测试用例是可反复使用的;所述管理模块用于管理不同模拟测试类型的模拟测试用例的调用;所述统计分析模块用于统计且分析所述模拟测试的结果。所述模拟测试架构根据模拟测试预期的不同区分为不同的测试类型,再模拟不同的测试类型建立的模拟测试架构,所述模拟测试架构包括单元测试架构、集成测试架构、功能测试架构和压力测试架构,每种所述模拟测试架构是提取每种测试类型的共性部分组成的独立的体系结构。
步骤S102,根据被测服务的当前协议服务请求选择模拟器当前协议链路的配置,以修改被测服务请求的IP为模拟器的IP,将被测服务的请求指向模拟器启动的监听链路的端口;
在步骤S102中,模拟服务的集中管理平台接收请求后,获取请求URL(UniformResource Locator,统一资源定位符)地址上的协议类型,转交给适配协议类型的模拟器进行处理,应该理解地是,模拟服务的集中管理平台有模拟通用协议服务和模拟自定义协议服务之分,所以服务端口配置单元根据不同协议服务修改被测服务、外部服务和模拟器的端口配置,以便模拟器进入代理服务器的角色。
步骤S103,根据模拟外部服务行为的意图,在模拟器的桩匹配器中编辑模拟匹配条件及预设响应为桩,参数化桩生成桩参数。
在步骤S103中,所述根据模拟外部服务行为的意图,即为模拟外部服务行为的测试用例的调用条件,也就是说,所述调用条件与所述外部服务行为的意图是相对应。而在计算机***中,将所述调用条件函数化生成为模拟匹配条件。所述函数化即把模拟匹配条件由***内定规则定义为函数式,而预设响定义为函数式的返回值,而由模拟匹配条件及预设响应编辑成的桩即为由两者组成的计算式。所述参数化桩生成桩参数,又是计算机运行中另一技巧,所述参数化桩就是在函数定义时候传入形参,而相对地,解析参数就是调用函数时传入实参。桩参数化的过程是:配置桩的参数的格式,添加桩参数,完成参数化,生成桩参数。桩的参数化用以适配多种协议的不同外部服务。应该理解地是,桩函数可以自动生成,也可自定义,但自动生成的桩函数与自定义的桩函数其主要差别在于:自定义的桩函数调用优先级别高于原函数,原函数的优先级别高于自动生成的桩函数。举个例子,假定在代码中能够找到某个函数的原本定义,此时自动生成的桩函数是无效的,因为原函数优先级别高于自动生成的桩函数。而自定义桩函数可以带来的好处在于:调用原函数可能其返回值为一个固定值,不能返回一个期望值,以使得测试不同的代码分支。而桩函数的返回值,可由用户自由控制,因而具备更大的灵活性。
所述的模拟匹配具有丰富的匹配规则,桩的匹配条件逻辑上支持多个桩之间的AND,OR和NOT关系;匹配的操作符支持equals(值相等),contains(值包含),regex(值正则表达式匹配)。而所述的预设响应根据不同的模拟匹配条件,通过beanshel(一种JAVA源码解释器)动态生成。
需要说明的是,桩根据测试用例数据中的特定数据的不同,而区分为公共桩和私有桩,所述公共桩即可在该链路里新建并被调用,也可以是抓取redis(redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API)的数据自动生成,可被与公共桩关联于同一个IP下的链路调用,所述私有桩只能在该链路里新建,并只为该链路私有。这里所说的新建桩包括自定义桩函数和原函数。
特别需要说明地是,公共桩还具有录制规则,所述公共桩的录制途径有两种:1、从外部服务***抓取流量进行录制,场景:平台与ApiTester(接口测试平台)和DCT(造数据平台)对接时,因为ApiTester和DCT的测试时,所有正常的接口请求和响应会发送一个公共的redis做缓存,平台会定时从redis提取这些数据自动生成公共桩;2、当模拟器不匹配请求时,通过桩录制器(Stub Recorder)录制模拟器拦截且不匹配直接转发的请求和响应生成为公共桩。所述公共桩录制规则可以由内部代码预先建立默认规则后自动生成录制规则,也可以在页面人为设置。
而本发明的参数化桩也是智能匹配功能的一种体现。桩的匹配条件和模拟响应也都随之参数化,应该理解地是,如果桩配置的参数格式是${参数名},当设置了参数格式后,桩参数也必须设置,否则被测服务请求均会匹配不成功,只有重新设置了桩参数,让桩参数替换掉匹配条件和模拟响应的格式化参数,这时再请求一次,才可以看到应该得到的响应。
参照图3,在本实施例中,所述步骤S102具体来说包括以下步骤:
步骤S1021,若被测服务的当前协议服务为通用协议服务,则修改DNS配置,把被测服务请求的IP指向模拟器的IP,配置Nginx,利用Nginx的端口映射,把被测服务的请求指向模拟器启动的监听链路的端口;
步骤S1022,若被测服务的当前协议服务为自定义协议服务,通过OSP的静态路由的IP和端口,把被测服务请求的IP直接指向模拟器的IP和对应OSP链路的监听链路的端口。
应该理解地是,本实施例中,把协议服务分为通用协议服务和自定义协议服务,具体地,服务模拟平台针对不同协议服务有以下几种模拟的方案:
1)HTTP/Thrift协议模拟:
用户通过修改DNS配置(全名Domain Name System,域名***,因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串),把B服务的IP指向平台模拟器的IP,通过平台内置的Nginx把A服务的请求指向模拟器启动的监听链路的端口。
2)OSP协议模拟:
用户把B服务的IP通过OSP的静态路由的IP和端口直接指向模拟器的IP和对应OSP链路的监听链路的端口。
需要补充说明的是,Nginx是一个高性能的HTTP和反向代理服务器,本发明只是用了Nginx的端口映射功能,用于HTTP协议或Thrift协议模拟(Thrift是一个服务端和客户端的架构体系,使不同语言开发的***可以通过该框架进行通信),平台内置Nginx,用户无需再使用服务器操作Nginx,只需在页面上配置。如在Nginx配置页面配置是:Server Name:cart.api.vip.com listen Port:80默认监听端口:1234,实际会在Nginx生成一个配置文件内容如下:
表示cart.api.vip.com域的请求并且端口是80的,统一转发到监听端口是1234的链路。例如请求是http://cart.api.vip.com:80/xxx,通过Nginx转发后变为http://127.0.0.1:1234。
Nginx反向代理的原理是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
具体地,参照图4,步骤S30包括:
步骤S301,解析所拦截的请求生成请求参数;
在步骤S301中,所述链路启动的时候会启动一个InboundChannel(InboundChannel专门用于A服务和模拟器间通信的通道),用于监听收到的来自A服务的请求。
步骤S302,将请求参数转换为统一的封装不同协议的请求对象;
在步骤S302中,收到请求后,通过Request Extrator(请求出口)对请求的参数进行提取(如uri,body的参数),转为一个RequestElement(请求对象),如:HTTP,OSP等不同协议的请求内容统一转换为RequestElement(请求对象),即封装有不同协议的请求参数)。
步骤S303,传送请求对象至模拟器的桩匹配器。
在步骤S303中,模拟器再把RequestElement传入桩匹配器(Stub Matcher)与用户预设的桩进行匹配。应该理解地是,整个把请求解析为RequestElement的操作均是由模拟器的内部代码实现。
具体地,参照图5,步骤S40包括:
步骤S401,桩匹配器接收解析后的请求;
步骤S402,调用桩参数;
步骤S403,解析桩参数,以释放模拟匹配条件和预设响应;
步骤S404,调用模拟匹配条件,执行匹配命令。
桩可以是一个常量,也可以是一个变量,这样,把桩定义为一个函数,函数定义时候传入的参数叫形参,而调用函数时传入的参数叫实参,模拟器先替换掉桩里区配条件和预设响应的参数,释放出模拟匹配条件和预设响应的原函数,然后再调用模拟匹配条件,执行匹配命令。
参照图6,在第二实施例中,在步骤S40之后还包括:
步骤S50,若匹配成功,模拟器的桩匹配器发送预设响应至被测服务;
步骤S60,若匹配失败,模拟器的桩匹配器转发解析后的请求至外部服务,并接收外部服务发出的对请求的真实响应,传送至被测服务。
在第二实施例中,步骤S50和步骤S60是步骤S40之后还包括响应措施,即当匹配成功,模拟器的桩匹配器发送预设响应至被测服务;当匹配失败时,模拟器转发请求至外部服务,并接收外部服务发出的对请求的真实响应,传送至被测服务。此时,所述的桩匹配器仅做为一个中转站,转发请求并接收外部服务对请求的真实响应,再转发至被测服务。
参照图7,在第三实施例中,在步骤S20与步骤S30之间还包括:
步骤S70,模拟器的监听链路监测所拦截的请求;
步骤S80,若监测所拦截的请求不需要返回预设响应时,暂停模拟器的链路,直接转发被测服务发出的请求至外部服务,并接收外部服务对请求的真实响应返回至被测服务;
步骤S90,若监测所拦截的请求不需要使用模拟器时,停止模拟器的链路,模拟服务关闭监听端口,返回报错信息。
在本实施例中,考虑到企业用户业务的复杂性,为了满足用户各种业务的需求不同,所述模拟器通过链路状态的控制来完成监测请求的功能,应该理解地是,监测请求的同时是结合业务的需求,如果业务不需要匹配直接转发的时候可以暂停模拟器的链路,如果业务不使用模拟器,可以停止模拟器的链路,模拟服务关闭监听端口,被测服务再发起请求到模拟器,会收到连接失败的报错信息。
在第四实施例中,步骤S10之前还包括:
呈现解耦依赖的情况时,执行解耦依赖,以绕开所依赖外部服务的接口。
在本实施例中,被测的A服务原来是依赖外部的B服务,现在在被测的A服务和外部的B服务之间建立一个开放式的集中管理诸多所述模拟器的平台,而平台通过接口与不同的外部服务器协同交互来处理被测服务的业务。应当理解地是,计算中的耦合偏向于两者或多者的彼此影响,解耦就是要解除这种影响,增强各自的独立存在能力,可以无限降低存在的耦合度,但不能根除,否则就失去了彼此的关联,失去了存在意义。
服务模拟平台的作用是服务解耦,可用于研发或测试人员绕开外部服务单独测试自己负责的服务。服务解耦场景:1)A服务调B服务,B服务由于某些原因不可用或不稳定,例如登陆页面调一个登陆的passport.api,但是passport.api连不上导致无法登陆;2)A服务调B服务,B服务的数据或场景难以构造,例如登陆页面调一个登陆的passport.api,passport.api会在某些极端情况下返回一些错误码;3)自动化测试时,A服务调B服务,由于B服务不可控,数据经常变动导致测试数据经常变化。比如:Jetty可以从test case中控制其运行,从而可以使自动化测试不再依赖外部环境,顺利实现自动化测试。
参照图8,本发明还公开了一种模拟服务的装置,该装置包括:
初始化模块10,用于模拟外部服务行为启动模拟器初始化操作,在初始化后的模拟器的桩匹配器中编辑模拟匹配条件及预设响应;
监听模块20,用于与被测服务同一IP的模拟器启动的监听链路拦截由被测服务发出的请求;
报文解析模块30,用于解析所拦截的请求并将解析后的请求传送至模拟器的桩匹配器;
执行模块40,用于模拟器的桩匹配器接收解析后的请求,根据模拟匹配条件执行匹配命令。
在本实施例中,模拟器初始化操作需要完成两个方面的预备,第一,需要部署测试环境(主要指硬件环境),以为模拟器的模拟服务提供稳定而可控的环境,提高模拟器的工作质量和效率。预先运行构建或部署与被测服务和外部服务之间网络通信服务接口的对接、建立WEB UI交互测试模型、构建多种测试类型框架、封装有不同协议的链路配置,根据被测服务的协议服务部署被测服务的服务端口配置及呈现解耦依赖情况时,执行解耦依赖,以绕开所依赖的外部服务的端口。而这些测试环境的部署均有一个集中管理数个模拟器的模拟服务平台来完成,首先建立模拟器与被测服务和外部服务之间的网络通信;接着建立WEB UI界面交互测试模型及交互规范,以下的步骤均在界面操作,而无需编码;再针对被测服务的需求构建多种测试类型的框架,比如:单元测试、集成测试、自动化测试、功能测试及压力测试;根据不同协议服务给每个模拟器封装不同协议的链路配置;根据被测服务的协议服务修改被测服务的目标服务端口配置,被测的A服务(即被测服务)原来是依赖外部的B服务(即外部服务),现在A服务的目标服务不指向B服务而改为指向模拟器。第二,需要部署测试服务(主要指软件环境),以为本发明的测试方法提供测试对象。测试服务包括测试管理单元和测试执行单元,模拟器等同于测试管理单元,而模拟器中虚拟一个桩匹配器等同于测试执行单元,具体来说是,在模拟器中预先存储模拟外部服务行为的测试用例,在模拟器的桩匹配器中编辑模拟测试的匹配条件及预设响应,或者是,通过注册自定义服务事件的API函数编辑自定义服务的模拟测试匹配条件及预设响应,在模拟器中的桩匹配器里将模拟测试匹配条件及预设响应编辑为桩,且将桩参数化生成桩参数,桩匹配器根据模拟测试匹配条件实行测试控制。
特别说明地是,构建功能测试框架时,是单独启动的平台提供的压测包,所述的压测包支持通用协议,比如HTTP协议和自定义协议,比如OSP协议的压测时的服务模拟,而且压测包也是使用Web界面指定链路的桩设置,无需重复配置。步骤为:首先一键下载平台提供的压测包,启动压测模拟器,进行压力模拟测试,通过界面直接查看测试结果。
本发明所述的方法完全采用WEB UI的可视化操作界面,配置共享,用户使用时无需任何技能,也不需了解技术细节也就是说无需自己编码,就能实现服务的摸拟,大大地提高了联调测试的效率。
本申请模拟器的初始化还包括创建模拟器,所述模拟器用于模拟与被测的A服务进行真实交互的外部B服务。所述模拟器可以采用JETTY服务器,该JETTY服务器为一个开源的servelet容器,是基于JAVA的WEB容器。Jetty可以作为嵌入式服务器使用,Jetty的运行速度较快,而且是轻量级的,Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。JAR包管理用于RPC协议模拟,统一管理客户端的JAR包,可以理解地,JAR包可用于解析不同协议服务。则测试中当被测的A服务通过接口调用外部的B服务进行交互时,改为调用模拟器模拟该交互,即把原本被测的A服务请求修改指向,不再指向B服务而改为指向模拟器。
本申请模拟器启动后,模拟器启动的监听链路的端口开始监听,当监听到具有与模拟器相同IP的请求时,拦截该请求,报文解析请求,并将解析后的请求发送至桩匹配器。桩匹配器接收请求后,根据模拟匹配条件执行匹配命令,桩匹配器开始测试控制,若匹配成功,桩匹配器推出模拟测试的预设响应返回至被测服务。
参照图8,本发明提供的一种模拟服务的装置的第二实施例,所述的模拟服务的装置还包括:
响应模块50,用于若匹配成功,模拟器的桩匹配器发送预设响应至被测服务;还用于接收外部服务发出的对请求的真实响应,传送至被测服务;
转发模块60,用于若匹配失败,模拟器的桩匹配器转发解析后的请求至外部服务;
解耦依赖模块70,用于呈现解耦依赖的执行情况时,执行解耦依赖;
监测模块80,用于模拟器的监听链路监测所拦截的请求;
监测执行模块90,用于若监测所拦截的请求不需要返回预设响应时,暂停模拟器的链路,直接转发被测服务发出的请求至外部服务,并接收外部服务对请求的真实响应返回至被测服务;还用于若监测所拦截的请求不需要使用模拟器时,停止模拟器的链路,模拟服务关闭监听端口,返回报错信息。
在第二实施例中,还包括响应模块50,即当匹配成功,模拟器的桩匹配器发送预设响应至被测服务;当匹配失败时,模拟器转发请求至外部服务,并接收外部服务发出的对请求的真实响应,传送至被测服务。匹配失败时,所述的桩匹配器仅做为一个中转站,转发请求并接收外部服务对请求的真实响应,再转发至被测服务。
在第三实施例中,还包括监测模块80和监测执行模块90,考虑到企业用户业务的复杂性,为了满足用户各种业务的需求不同,所述模拟器通过链路状态的控制来完成监测请求的功能,应该理解地是,监测请求的同时是结合业务的需求,如果业务不需要匹配直接转发的时候可以暂停模拟器的链路,如果业务不使用模拟器,可以停止模拟器的链路,模拟服务关闭监听端口,被测服务再发起请求到模拟器,会收到连接失败的报错信息。
在第四实施例中,还包括解耦依赖模块70,被测的A服务原来是依赖外部的B服务,现在在被测的A服务和外部的B服务之间建立一个开放式的集中管理诸多所述模拟器的平台,而平台通过接口与不同的外部服务器协同交互来处理被测服务的业务。应当理解地是,计算中的耦合偏向于两者或多者的彼此影响,解耦就是要解除这种影响,增强各自的独立存在能力,可以无限降低存在的耦合度,但不能根除,否则就失去了彼此的关联,失去了存在意义。
服务模拟平台的作用是服务解耦,可用于研发或测试人员绕开外部服务单独测试自己负责的服务。服务解耦场景:1)A服务调B服务,B服务由于某些原因不可用或不稳定,例如登陆页面调一个登陆的passport.api,但是passport.api连不上导致无法登陆;2)A服务调B服务,B服务的数据或场景难以构造,例如登陆页面调一个登陆的passport.api,passport.api会在某些极端情况下返回一些错误码;3)自动化测试时,A服务调B服务,由于B服务不可控,数据经常变动导致测试数据经常变化。比如:Jetty可以从test case中控制其运行,从而可以使自动化测试不再依赖外部环境,顺利实现自动化测试。
参照图9,所述初始化模块10包括:
模拟测试架构单元101,用于根据被测服务的请求选择模拟测试架构,且在所选择的模拟测试架构中,模拟外部服务行为启动一个或多个不同协议服务的模拟器;
模拟多种协议服务单元102,用于接收请求后,获取请求URL地址上的协议类型,转交给适配协议类型的模拟服务的装置进行处理,以根据被测服务的当前协议服务请求选择模拟器当前协议链路的配置;
服务端口配置单元103,用于根据被测服务的当前协议服务请求选择模拟器当前协议链路的配置,以修改被测服务请求的IP为模拟器的IP,将被测服务的请求指向模拟器启动的监听链路的端口;
桩单元104,用于根据模拟外部服务行为的意图,在模拟器的桩匹配器中编辑模拟匹配条件及预设响应为桩,参数化桩生成桩参数。
具体地,所述模拟测试架构101是提供模拟测试用例的模拟测试分析工具,它包括模拟测试的测试模块、管理模块和统计分析模块,所述测试模块用于执行不同测试类型的模拟匹配命令时,提供所调用的模拟测试用例,且所述的模拟测试用例是可反复使用的;所述管理模块用于管理不同模拟测试类型的模拟测试用例的调用;所述统计分析模块用于统计且分析所述模拟测试的结果。所述模拟测试架构根据模拟测试预期的不同区分为不同的测试类型,再模拟不同的测试类型建立的模拟测试架构,所述模拟测试架构包括单元测试架构、集成测试架构、功能测试架构和压力测试架构,每种所述模拟测试架构是提取每种测试类型的共性部分组成的独立的体系结构。
所述模拟多种协议服务单元102用于接收请求后,获取请求URL地址上的协议类型,转交给适配协议类型的模拟器进行处理,它又包括模拟通用协议服务和模拟自定义协议服务。
所述服务端口配置单元103用于根据不同协议服务修改被测服务、外部服务和模拟器的端口配置,以便模拟器进入代理服务器的角色。
所述的桩单元104用于模拟测试用例的调用条件的单元,以代替测试用例的接口,接受或者传递测试用例的数据,其中,所述测试模块的调用条件,即为模拟匹配条件。
外部服务行为可能是一种协议服务的测试用例,也可能是多种协议服务的测试用例,而一个被测服务可能同时依赖多个不同的外部服务,预先存储模拟所述外部服务行为的测试用例于测试管理单元——模拟器,所以模拟器的初始化操作的启动时,需要启动一个或多个与外部服务相对应的模拟器。
在模拟器初始化的过程中,模拟器中的桩匹配器用于模拟测试用例的调用条件的元件,以代替测试用例的接口,接受或者传递测试用例的数据,其中,所述测试模块的调用条件,即为模拟匹配条件。判断所调用的测试用例数据的意图,并依据该测试用例数据中的特定数据编辑模拟的匹配条件及预设响应生成为桩;进一步地,为了提高匹配的智能化,所述参数化桩,应该理解的是,外部服务的多变性决定了模拟匹配条件及预设响应的多变,即桩可以是一个常量,也可以是一个变量,这样,把桩理解为一个桩函数,模拟的匹配条件为计算式,预设响应为返回值,而参数化桩就是在函数定义时候传入形参,而相对地,解析参数就是调用函数时传入实参。桩参数化的过程是:配置桩的参数的格式,添加桩参数,完成参数化,生成桩参数。桩的参数化用以适配多种协议的不同外部服务,故桩函数可以自动生成,也可自定义,但自动生的桩函数与自定义的桩函数其主要差别在于:自定义的桩函数调用优先级别高于原函数,原函数的优先级别高于自动生成的桩函数。举个例子,假定在代码中能够找到某个函数的原本定义,此时自动生成的桩函数是无效的,因为原函数优先级别高于自动生成的桩函数。而自定义桩函数可以带来的好处在于:调用原函数可能其返回值为一个固定值,不能返回一个期望值,以使得测试不同的代码分支。而桩函数的返回值,可由用户自由控制,因而具备更大的灵活性。故在本实施例中,这个桩函数的返回值即预设响应,采用beanshell动态生成。
而本发明的参数化桩也是智能匹配功能的一种体现。桩的匹配条件和模拟响应也都随之参数化,应该理解地是,如果桩配置的参数格式是${参数名},当设置了参数格式后,桩参数也必须设置,否则被测服务请求均会匹配不成功,只有重新设置了桩参数,让桩参数替换掉匹配条件和模拟响应的格式化参数,这时再请求一次,才可以看到应该得到的响应。
在本实施例中,需要说明的是桩包括公共桩和私有桩,它们根据测试用例数据中的特定数据的不同而不同,所述公共桩即可在该链路里新建并被调用,也可以是抓取redis的数据自动生成,可被与公共桩关联于同一个IP下的链路调用,所述私有桩只能在该链路里新建,并只为该链路私有。这里所说的新建桩包括自定义桩函数和原函数。
特别需要说明地是,公共桩还具有录制规则,所述公共桩的录制途径有两种:1、从外部服务***抓取流量进行录制,场景:平台与ApiTester(接口测试平台)和DCT(造数据平台)对接时,因为ApiTester和DCT的测试时,所有正常的接口请求和响应会发送一个公共的redis做缓存,平台会定时从redis提取这些数据自动生成公共桩;2、当模拟器不匹配请求时,通过桩录制器(Stub Recorder)录制模拟器拦截且不匹配直接转发的请求和响应生成为公共桩。所述公共桩录制规则可以由内部代码预先建立默认规则后自动生成录制规则,也可以在页面人为设置。
所述的模拟匹配具有丰富的匹配规则,桩的匹配条件逻辑上支持多个桩之间的AND,OR和NOT关系;匹配的操作符支持equals(值相等),contains(值包含),regex(值正则表达式匹配)。而所述的预设响应根据不同的模拟匹配条件,通过beanshell动态生成。
参照图10,所述服务端口配置单元103包括:
通用协议配置子单元1031,用于若被测服务的当前协议服务为通用协议服务,则修改DNS配置,把被测服务请求的IP指向模拟器的IP,配置Nginx,利用Nginx的端口映射,把被测服务的请求指向模拟器启动的监听链路的端口;
自定义协议配置子单元1032,用于若被测服务的当前协议服务为自定义协议服务,通过OSP的静态路由的IP和端口,把被测服务请求的IP直接指向模拟器的IP和对应OSP链路的监听链路的端口。
应该理解地是,本实施例中,把协议服务分为通用协议服务和自定义协议服务,具体地,服务模拟平台针对不同协议服务有以下几种模拟的方案:
1)HTTP/Thrift协议模拟(通用协议模拟):
用户把B服务的IP(通过修改DNS配置)地址指向平台模拟器,通过平台内置的Nginx把A服务的请求指向模拟器启动的监听链路的端口。
2)OSP协议模拟(自定义协议模拟):
用户把B服务的IP通过OSP的静态路由的IP和端口直接指向模拟器的IP和对应OSP链路的监听链路的端口。
需要补充说明的是,Nginx是一个开源的反向代理服务器,平台只是用了Nginx的端口映射功能,用于HTTP协议或Thrift协议模拟,平台内置Nginx,用户无需再使用服务器操作Nginx,只需在页面上配置。如在Nginx配置页面配置是:Server Name:cart.api.vip.com listen Port:80默认监听端口:1234,实际会在Nginx生成一个配置文件内容如下:
表示cart.api.vip.com域的请求并且端口是80的,统一转发到监听端口是1234的链路。例如请求是http://cart.api.vip.com:80/xxx,通过Nginx转发后变为http://127.0.0.1:1234。
Nginx反向代理的原理是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
参照图11,所述报文解析模块30包括:
解析单元301,用于解析所拦截的请求生成请求参数;
封装单元302,用于将请求参数转换为统一的封装不同协议的请求对象;
传送单元303,用于传送请求对象至模拟器的桩匹配器。
在本实施例中,所述报文解析模块实际上完成的是模拟器普通模拟匹配执行之前被测服务请求接收的过程,链路启动的时候会启动一个InboundChannel(InboundChannel专门用于A服务和模拟器间通信的通道),用于监听收到的来自A服务的请求,收到请求后,通过Request Extrator对请求的参数进行提取(如uri,body的参数),转为一个RequestElement请求对象(HTTP,OSP等不同协议的请求内容统一转换为RequestElement请求对象即封装有不同协议的请求参数)。模拟器再把RequestElement传入Stub Matcher(桩匹配器)与用户预设的桩进行匹配。整个把请求解析为RequestElement的操作均是由模拟器的内部代码实现。
参照图12,所述执行模块40包括:
接收单元401,用于桩匹配器接收解析后的请求;
调用单元402,用于调用桩参数;
释放单元403,用于解析桩参数,以释放模拟匹配条件和预设响应;
执行单元404,用于调用模拟匹配条件,执行匹配命令。
在本实施例中,所述执行模块实际上完成的是模拟器普通模拟匹配执行之前的桩参数化相呼应的解参过程,桩可以是一个常量,也可以是一个变量,这样,把桩定义为一个函数,函数定义时候传入的参数叫形参,而调用函数时传入的参数叫实参,模拟器先替换掉桩里区配条件和预设响应的参数,释放出模拟匹配条件和预设响应的原函数,然后再调用模拟匹配条件,执行匹配命令。
本发明还公开了一种模拟服务的集中管理平台,包括:
一个或多个不同协议的如上所述的模拟服务的装置;及
UI交互模块,用于建立UI交互测试模型及交互规范,编辑静态HTML,以负责所有模拟服务的交互对接;及
日志管理模块,用于提供日志管理功能,可对模拟测试的结果进行日志的记录、查看、下载及清理;及
模拟数据库,用于存储模拟服务的所有数据。
在本发明中,所述的模拟服务的集中管理平台完全采用WEB UI的可视化操作界面,配置共享,用户使用时无需任何技能,也不需了解技术细节也就是说无需自己编码,就能实现服务的摸拟,大大地提高了联调测试的效率。
在实际应用中,模拟服务的集中管理平台就是对上述一个或多个不同协议服务的所述模拟器进行集中管理的平台,模拟服务平台的核心原理是一个代理服务平台,为进行模拟服务的模拟器构建适配的测试环境;根据被测服务的请求类型寻找合适的模拟器及不同协议的链路配置,以提供相对应的服务;对多个模拟器的集中管理,配置共享,提高联调测试工作效率;日志记录及数据库提供集中管理的常规服务;呈现解耦依赖情况时,执行解耦依赖,以绕开所依赖外部服务的接口,方便测试人员进行自己负责的测试服务。
所述的模拟服务的集中管理平台使得测试人员的联调测试、开发联调、异常场景及复杂测试场景的测试更趋简化,还使得压测数据及环境的简化
在实际应用中,本发明提供的一种模拟服务的方法及装置的实际操作过程如下:
一、模拟服务的方法
以HTTP协议模拟为例:
1.模拟器自带一个Nginx接收请求,Nginx根据用户的配置的转发端口,Nginx收到请求后,把转发到对应链路启动的监听端口。
2.链路启动的时候会启动一个InboundChannel(InboundChannel专门用于A服务和模拟器间通信的通道),用于监听收到的来自A服务的请求。收到请求后,通过RequestExtrator对请求的参数进行提取(如uri,body的参数),转为一个RequestElement请求对象(HTTP,OSP等不同协议的请求内容统一转换为RequestElement请求对象)。
3.模拟器再把RequestElement传入Stub Matcher(桩匹配器)与用户预设的桩进行匹配。
4.匹配失败就会通过OutboundChannel(OutboundChannel是专门用于模拟器和B服务通信的通道,只在转发时才建立)转发到真实服务并接收响应,并且通过StubRecorder(桩录制器,专门用于把录制模拟器拦截且转发的响应录制为公共桩)录制响应,然后把真实响应通过InBoundChannel返回给请求方(A服务)。
5.匹配成功后,会把预设响应通过InBoundChannel直接返回给请求方(A服务)。
所述的模拟器实现模拟服务的普通匹配过程实际操作流程:
1、模拟器的链路配置,包括:链路ID、链路IP、链路名称、链路监听端口、是否使用匹配、目标服务目标IP、目标服务Host/URL、目标服务端口及协议类型,其中,第一个链路都会起一个监听端口,目标服务设置用户匹配失败后的转发,支持协议类型包括:HTTP、DSP、Thrift等;
2、链路列表及状态控制,链路状态包括:启动、暂停(只转发不匹配使用)和停止;
3、Nginx配置,用于HTTP协议或Thrift协议模拟,平台内置Nginx,用户无需再在服务器上操作Nginx,只需在页面上配置;
4、JAR包管理,用于RPC协议模拟,统一管理客户端的JAR包,便于解析不同协议服务。
5、桩配置,指定模拟匹配规则、预设响应、桩参数等设置,每个链路可设置多个桩;
6、公共桩录制规则设置,公共桩的录制途径有两种:1、从外部服务***抓取流量进行录制;2、当模拟器不匹配请求时,通过桩录制器(Stub Recorder)录制模拟器拦截且不匹配直接转发的请求和响应生成为公共桩。所述公共桩录制规则可以手工设置,如果有不存在的条件,还可以自动生成录制规则;
7、日志记录,模拟匹配失败时记录转发的日志,模拟匹配成功时记录反回预设响应的日志;
8、单独启动的服务压测包进行压力测试,支持HTTP和DSP协议的压测时服务模拟,一键下载压测包,启动压测模拟器,压测模拟器自身进行压力测试,查看测试结果。
二、模拟服务的集中管理平台
所述的模拟服务的集中管理平台就是对所述模拟器进行集中管理的平台,模拟服务平台的核心原理是一个代理服务平台,所述平台的工作内容包括为进行模拟服务的模拟器构建适配的测试环境;根据被测服务的请求类型寻找合适的模拟器及链路配置,以提供相对应的服务;对多个模拟器的集中管理,配置共享,提高联调测试工作效率;日志记录及存储模拟服务的数据等等,平台的操作步骤:
步骤一,建立UI交互测试模型,以使用户所有的操作基本都是从平台的WEB界面进行,无需编码;
步骤二,利用测试模型,生成测试框架,包括:单元测试框架、集成测试框架、功能测试框架及压力测试框架;
步骤三,呈现解耦依赖的情况时执行解耦依赖,以绕开所依赖外部服务的接口;
步骤四,编写测试事件,通过模拟外部服务的测试用例或注册自定义服务事件的API函数,将已编写好的脚本编辑到测试框架中相应的模拟器中;
步骤五,在模拟器中,实施模拟测试匹配,返回相对应的响应;
步骤六,日志记录,可进行日志的记录、查看、下载及清理,若匹配成功,返回预设响应的日志;若匹配失败,返回转发的日志;
步骤七,模拟数据库收集测试数据,存储并管理,
所述测试框架是提供模拟测试用例的模拟测试分析工具,它包括模拟测试的基础模块、管理模块和统计分析模块,所述基础模块用于执行不同测试类型的模拟匹配命令时,提供所调用的模拟测试用例,且所述的模拟测试用例是可重用的;所述管理模块用于管理不同模拟测试类型的模拟测试用例的调用;所述统计分析模块用于统计且分析所述模拟测试的结果。所述测试架构根据模拟测试预期的不同区分为不同的测试类型,再模拟不同的测试类型建立的模拟测试架构,所述模拟测试架构包括单元测试架构、集成测试架构、功能测试架构和压力测试架构,每种所述模拟测试架构是提取每种测试类型的共性部分组成的独立的体系结构。适用场景:
1)功能测试、集成测试和单元测试
测试或研发人员在做功能测试、集成测试、单元测试甚至功能开发的时候,通过把自身服务对接到平台模拟器,可以简单的绕开外部不稳定、不可用、复杂的外部服务服务绕开掉并可以模拟外部服务的任意返回。用户只需要关注自身服务的功能和逻辑从而实现对外部服务的解耦依赖。
2)性能测试
测试人员做压测的时候,把平台提供的压测包下载到压测机上并启动。压测包是可独立启动的高性能模拟服务,和平台本身通过接口对接并在启动时获取桩和链路相关数据。用户压测的时候无需部署外部依赖服务和造大批量外部压测数据,只要简单的把外部依赖改为连接模拟器并关注被测服务本身的性能和压测数据。所述平台提供的压测包,支持通用协议和自定义协议的压测时服务模拟,而且压测包也是使用Web界面指定链路的桩设置,无需重复配置。步骤为:首先一键下载平台提供的压测包,启动压测模拟器,进行压力模拟测试,通过界面直接查看测试结果。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件***的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术配置本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器或者网络设备等电子设备)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。

Claims (15)

1.一种模拟服务的方法,其特征在于,包括步骤:
模拟外部服务行为启动模拟器初始化操作,在初始化后的模拟器的桩匹配器中编辑模拟匹配条件及预设响应;
模拟器启动的与被测服务同一IP的监听链路拦截由被测服务发出的请求;
解析所拦截的请求并将解析后的请求传送至模拟器的桩匹配器;
模拟器的桩匹配器接收解析后的请求,根据模拟匹配条件执行匹配命令。
2.如权利要求1所述的模拟服务的方法,其特征在于,所述模拟外部服务行为启动模拟器初始化操作,在初始化后的模拟器的桩匹配器中编辑模拟匹配条件及预设响应的步骤包括:
根据被测服务的请求选择模拟测试架构,且在所选择的模拟测试架构中,模拟外部服务行为启动一个或多个不同协议服务的模拟器;
根据被测服务的当前协议服务请求选择模拟器当前协议链路的配置,将被测服务请求的IP修改为模拟器的IP,以将被测服务的请求指向模拟器启动的监听链路的端口;
根据模拟外部服务行为的意图,在模拟器的桩匹配器中编辑模拟匹配条件及预设响应为桩,参数化桩生成桩参数。
3.如权利要求2所述的模拟服务的方法,其特征在于,所述根据被测服务的当前协议服务请求选择模拟器当前协议链路的配置的步骤包括:
若被测服务的当前协议服务为通用协议服务,则修改DNS配置,把被测服务请求的IP指向模拟器的IP,配置Nginx,利用Nginx的端口映射,把被测服务的请求指向模拟器启动的监听链路的端口;
若被测服务的当前协议服务为自定义协议服务,通过OSP的静态路由的IP和端口,把被测服务请求的IP直接指向模拟器的IP和对应OSP链路的监听链路的端口。
4.如权利要求1所述的模拟服务的方法,其特征在于,所述解析拦截的请求并将解析后的请求传送至模拟器的桩匹配器的步骤包括:
解析所拦截的请求生成请求参数;
将请求参数转换为统一的封装不同协议的请求对象;
传送请求对象至模拟器的桩匹配器。
5.如权利要求1所述的模拟服务的方法,其特征在于,所述模拟器的桩匹配器接收解析后的请求,根据模拟匹配条件执行匹配命令的步骤包括:
桩匹配器接收解析后的请求;
调用桩参数;
解析桩参数,以释放模拟匹配条件和预设响应;
调用模拟匹配条件,执行匹配命令。
6.如权利要求1所述的模拟服务的方法,其特征在于,所述模拟器的桩匹配器接收解析后的请求,根据模拟匹配条件执行匹配命令的步骤之后包括:
若匹配成功,模拟器的桩匹配器发送预设响应至被测服务;
若匹配失败,模拟器的桩匹配器转发解析后的请求至外部服务,并接收外部服务发出的对请求的真实响应,传送至被测服务。
7.如权利要求1至6任一项所述的模拟服务的方法,其特征在于,在所述模拟器的监听链路拦截由同一IP的被测服务发出的请求的步骤和所述解析拦截的请求并将解析后的请求传送至模拟器的桩匹配器的步骤之间还包括:
模拟器的监听链路监测所拦截的请求;
若监测所拦截的请求不需要返回预设响应时,暂停所述监听链路,直接转发被测服务发出的请求至外部服务,并接收外部服务对请求的真实响应返回至被测服务;
若监测所拦截的请求不需要使用模拟器时,停止所述监听链路,模拟服务关闭监听端口,返回报错信息。
8.如权利要求1至6任一项所述的模拟服务的方法,其特征在于,所述模拟外部服务行为启动模拟器初始化操作,在初始化后的模拟器的桩匹配器中编辑模拟匹配条件及预设响应的步骤之前包括:
呈现解耦依赖的执行情况时,执行解耦依赖。
9.一种模拟服务的装置,其特征在于,包括:
初始化模块,用于模拟外部服务行为启动模拟器初始化操作,在初始化后的模拟器的桩匹配器中编辑模拟匹配条件及预设响应;
监听模块,用于与被测服务同一IP的模拟器启动的监听链路拦截由被测服务发出的请求;
报文解析模块,用于解析所拦截的请求并将解析后的请求传送至模拟器的桩匹配器;
执行模块,用于模拟器的桩匹配器接收解析后的请求,根据模拟匹配条件执行匹配命令。
10.如权利要求9所述的模拟服务的装置,其特征在于,还包括:
响应模块,用于若匹配成功,模拟器的桩匹配器发送预设响应至被测服务;还用于若匹配失败,接收外部服务发出的对请求的真实响应,传送至被测服务;
转发模块,用于若匹配失败,模拟器的桩匹配器转发解析后的请求至外部服务;
解耦依赖模块,用于呈现解耦依赖的执行情况时,执行解耦依赖;
监测模块,用于模拟器的监听链路监测所拦截的请求;
监测执行模块,用于若监测所拦截的请求不需要返回预设响应时,暂停模拟器的链路,直接转发被测服务发出的请求至外部服务,并接收外部服务对请求的真实响应返回至被测服务;还用于若监测所拦截的请求不需要使用模拟器时,停止模拟器的链路,模拟服务关闭监听端口,返回报错信息。
11.如权利要求9所述的模拟服务的装置,其特征在于,所述初始化模块包括:
模拟测试架构单元,用于根据被测服务的请求选择模拟测试架构,且在在所选择的模拟测试架构中,模拟外部服务行为启动一个或多个不同协议服务的模拟器;
模拟多种协议服务单元,用于接收请求后,获取请求URL地址上的协议类型,转交给适配协议类型的模拟服务的装置进行处理,以根据被测服务的当前协议服务请求选择模拟器当前协议链路的配置;
服务端口配置单元,用于所选择模拟器当前协议链路的配置,修改被测服务请求的IP为模拟器的IP,将被测服务的请求指向模拟器启动的监听链路的端口;
桩单元,用于根据模拟外部服务行为的意图,在模拟器的桩匹配器中编辑模拟匹配条件及预设响应为桩,参数化桩生成桩参数。
12.如权利要求11所述的模拟服务的装置,其特征在于,所述服务端口配置单元包括:
通用协议配置子单元,用于若被测服务的当前协议服务为通用协议服务,则修改DNS配置,把被测服务请求的IP指向模拟器的IP,配置Nginx,利用Nginx的端口映射,把被测服务的请求指向模拟器启动的监听链路的端口;
自定义协议配置子单元,用于若被测服务的当前协议服务为自定义协议服务,通过OSP的静态路由的IP和端口,把被测服务请求的IP直接指向模拟器的IP和对应OSP链路的监听链路的端口。
13.如权利要求9所述的模拟服务的装置,其特征在于,所述报文解析模块包括:
解析单元,用于解析所拦截的请求生成请求参数;
封装单元,用于将请求参数转换为统一的封装不同协议的请求对象;
传送单元,用于传送请求对象至模拟器的桩匹配器。
14.如权利要求9所述的模拟服务的装置,其特征在于,所述执行模块包括:
接收单元,用于桩匹配器接收解析后的请求;
调用单元,用于调用桩参数;
释放单元,用于解析桩参数,以释放模拟匹配条件和预设响应;
执行单元,用于调用模拟匹配条件,执行匹配命令。
15.一种模拟服务的集中管理平台,其特征在于,包括:
一个或多个不同协议的如权利要求9-14任一项所述的模拟服务的装置;及
UI交互模块,用于建立UI交互测试模型及交互规范,编辑静态HTML,以负责所有模拟服务的交互对接;及
日志管理模块,用于提供日志管理功能,可对模拟测试的结果进行日志记录、查看、下载及清理;及
模拟数据库,用于存储模拟服务的所有数据。
CN201611152472.4A 2016-12-13 2016-12-13 一种模拟服务的方法、装置及集中管理平台 Active CN106776313B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611152472.4A CN106776313B (zh) 2016-12-13 2016-12-13 一种模拟服务的方法、装置及集中管理平台

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611152472.4A CN106776313B (zh) 2016-12-13 2016-12-13 一种模拟服务的方法、装置及集中管理平台

Publications (2)

Publication Number Publication Date
CN106776313A true CN106776313A (zh) 2017-05-31
CN106776313B CN106776313B (zh) 2020-06-23

Family

ID=58887808

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611152472.4A Active CN106776313B (zh) 2016-12-13 2016-12-13 一种模拟服务的方法、装置及集中管理平台

Country Status (1)

Country Link
CN (1) CN106776313B (zh)

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107579879A (zh) * 2017-09-26 2018-01-12 深圳震有科技股份有限公司 一种网络仿真测试方法、仿真服务器以及存储介质
CN107659455A (zh) * 2017-10-16 2018-02-02 武汉斗鱼网络科技有限公司 一种iOS端Mock数据的方法、存储介质、设备及***
CN107707638A (zh) * 2017-06-01 2018-02-16 云智慧(北京)科技有限公司 一种分布式云压测机资源管理***及方法
CN108268375A (zh) * 2018-01-12 2018-07-10 深圳壹账通智能科技有限公司 应用程序测试方法、装置、计算机设备和存储介质
CN109218297A (zh) * 2018-08-31 2019-01-15 北京创鑫旅程网络技术有限公司 一种请求数据的方法及装置
CN109359036A (zh) * 2018-09-25 2019-02-19 腾讯科技(深圳)有限公司 测试方法、装置、计算机可读存储介质和计算机设备
CN109559583A (zh) * 2017-09-27 2019-04-02 华为技术有限公司 故障模拟方法及其装置
CN109614314A (zh) * 2018-11-01 2019-04-12 北京奇虎科技有限公司 性能测试方法、装置、服务器及可读存储介质
CN109800093A (zh) * 2018-12-27 2019-05-24 四川艾格瑞特模具科技股份有限公司 一种远程定制产品的客户端
CN110032454A (zh) * 2018-01-12 2019-07-19 北京京东尚科信息技术有限公司 远程调用方法、***和相关设备及计算机可读存储介质
CN110046099A (zh) * 2019-04-11 2019-07-23 艾伯资讯(深圳)有限公司 智能化软件测试***及方法
CN111131436A (zh) * 2019-12-20 2020-05-08 广州品唯软件有限公司 快速查找代理方法、装置和可读存储介质
CN111198809A (zh) * 2018-11-16 2020-05-26 北京奇虎科技有限公司 接口自动化测试方法和装置
CN112416786A (zh) * 2020-11-27 2021-02-26 上海达梦数据库有限公司 一种测试方法、装置、设备及存储介质
CN112527637A (zh) * 2020-12-02 2021-03-19 成都新希望金融信息有限公司 数据管理方法、装置、服务器及存储介质
CN112671574A (zh) * 2020-12-18 2021-04-16 深圳赛安特技术服务有限公司 前后端联调方法、装置、代理设备及存储介质
CN112702436A (zh) * 2020-12-29 2021-04-23 广州品唯软件有限公司 流量录制方法、装置、计算机设备和存储介质
CN112732499A (zh) * 2020-12-30 2021-04-30 广州品唯软件有限公司 一种基于微服务架构的测试方法、装置及计算机***
CN112732567A (zh) * 2020-12-31 2021-04-30 平安银行股份有限公司 基于ip的mock数据测试方法、装置、电子设备及存储介质
CN113641579A (zh) * 2021-08-10 2021-11-12 中国平安人寿保险股份有限公司 数据处理方法、装置、设备及存储介质
CN113722020A (zh) * 2020-05-26 2021-11-30 腾讯科技(深圳)有限公司 接口调用方法、装置和计算机可读存储介质
CN113760715A (zh) * 2020-11-12 2021-12-07 北京京东振世信息技术有限公司 一种对***进行测试的方法和装置
CN114553929A (zh) * 2022-01-10 2022-05-27 多点生活(成都)科技有限公司 录制调用动态Mock的录制回放增强方法和装置
CN114706662A (zh) * 2022-06-08 2022-07-05 杭州比智科技有限公司 基于jvm沙箱实现动态模拟业务操作和数据的方法及***
CN115344502A (zh) * 2022-10-18 2022-11-15 中建电子商务有限责任公司 基于真实数据自动生成mock数据及自动加载的方法
CN115454880A (zh) * 2022-10-25 2022-12-09 中邮消费金融有限公司 一种动态生成数据的请求处理组件
CN117478570A (zh) * 2023-12-27 2024-01-30 深圳万物安全科技有限公司 基于容器化技术的设备测试方法、装置及存储介质
CN113760715B (zh) * 2020-11-12 2024-07-16 北京京东振世信息技术有限公司 一种对***进行测试的方法和装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1527559A (zh) * 2003-03-04 2004-09-08 华为技术有限公司 一种向位置服务器查询路由的方法
CN104063325A (zh) * 2014-07-11 2014-09-24 电子科技大学 一种针对嵌入式软件的测试用例自动化生成装置及其方法
US20150012911A1 (en) * 2012-01-31 2015-01-08 United States Government As Represented By The Secretary Of The Navy Interface simulator for test rig in data distribution service
US20150205703A1 (en) * 2008-09-30 2015-07-23 Interactive TKO, Inc. Service Modeling and Virtualization
CN105302721A (zh) * 2015-10-29 2016-02-03 普元信息技术股份有限公司 云计算平台中实现集中模拟服务器集成测试的***及方法
CN105512044A (zh) * 2015-12-25 2016-04-20 北京奇虎科技有限公司 用于关键字驱动测试的对象库的更新方法及***
US20160283363A1 (en) * 2014-07-10 2016-09-29 International Business Machines Corporation Extraction of problem diagnostic knowledge from test cases

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1527559A (zh) * 2003-03-04 2004-09-08 华为技术有限公司 一种向位置服务器查询路由的方法
US20150205703A1 (en) * 2008-09-30 2015-07-23 Interactive TKO, Inc. Service Modeling and Virtualization
US20150012911A1 (en) * 2012-01-31 2015-01-08 United States Government As Represented By The Secretary Of The Navy Interface simulator for test rig in data distribution service
US20160283363A1 (en) * 2014-07-10 2016-09-29 International Business Machines Corporation Extraction of problem diagnostic knowledge from test cases
CN104063325A (zh) * 2014-07-11 2014-09-24 电子科技大学 一种针对嵌入式软件的测试用例自动化生成装置及其方法
CN105302721A (zh) * 2015-10-29 2016-02-03 普元信息技术股份有限公司 云计算平台中实现集中模拟服务器集成测试的***及方法
CN105512044A (zh) * 2015-12-25 2016-04-20 北京奇虎科技有限公司 用于关键字驱动测试的对象库的更新方法及***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ALBERT1017: ""桩模块 stub 和驱动模块driver"", 《博客园》 *

Cited By (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107707638A (zh) * 2017-06-01 2018-02-16 云智慧(北京)科技有限公司 一种分布式云压测机资源管理***及方法
CN107707638B (zh) * 2017-06-01 2022-10-21 云智慧(北京)科技有限公司 一种分布式云压测机资源管理***及方法
CN107579879A (zh) * 2017-09-26 2018-01-12 深圳震有科技股份有限公司 一种网络仿真测试方法、仿真服务器以及存储介质
CN109559583A (zh) * 2017-09-27 2019-04-02 华为技术有限公司 故障模拟方法及其装置
CN107659455A (zh) * 2017-10-16 2018-02-02 武汉斗鱼网络科技有限公司 一种iOS端Mock数据的方法、存储介质、设备及***
CN107659455B (zh) * 2017-10-16 2020-01-03 武汉斗鱼网络科技有限公司 一种iOS端Mock数据的方法、存储介质、设备及***
CN110032454A (zh) * 2018-01-12 2019-07-19 北京京东尚科信息技术有限公司 远程调用方法、***和相关设备及计算机可读存储介质
CN108268375A (zh) * 2018-01-12 2018-07-10 深圳壹账通智能科技有限公司 应用程序测试方法、装置、计算机设备和存储介质
CN109218297A (zh) * 2018-08-31 2019-01-15 北京创鑫旅程网络技术有限公司 一种请求数据的方法及装置
CN109359036A (zh) * 2018-09-25 2019-02-19 腾讯科技(深圳)有限公司 测试方法、装置、计算机可读存储介质和计算机设备
CN109614314A (zh) * 2018-11-01 2019-04-12 北京奇虎科技有限公司 性能测试方法、装置、服务器及可读存储介质
CN109614314B (zh) * 2018-11-01 2024-03-01 北京奇虎科技有限公司 性能测试方法、装置、服务器及可读存储介质
CN111198809A (zh) * 2018-11-16 2020-05-26 北京奇虎科技有限公司 接口自动化测试方法和装置
CN109800093A (zh) * 2018-12-27 2019-05-24 四川艾格瑞特模具科技股份有限公司 一种远程定制产品的客户端
CN110046099A (zh) * 2019-04-11 2019-07-23 艾伯资讯(深圳)有限公司 智能化软件测试***及方法
CN111131436A (zh) * 2019-12-20 2020-05-08 广州品唯软件有限公司 快速查找代理方法、装置和可读存储介质
CN111131436B (zh) * 2019-12-20 2022-08-30 广州品唯软件有限公司 快速查找代理方法、装置和可读存储介质
CN113722020B (zh) * 2020-05-26 2024-06-11 腾讯科技(深圳)有限公司 接口调用方法、装置和计算机可读存储介质
CN113722020A (zh) * 2020-05-26 2021-11-30 腾讯科技(深圳)有限公司 接口调用方法、装置和计算机可读存储介质
CN113760715A (zh) * 2020-11-12 2021-12-07 北京京东振世信息技术有限公司 一种对***进行测试的方法和装置
CN113760715B (zh) * 2020-11-12 2024-07-16 北京京东振世信息技术有限公司 一种对***进行测试的方法和装置
CN112416786A (zh) * 2020-11-27 2021-02-26 上海达梦数据库有限公司 一种测试方法、装置、设备及存储介质
CN112527637A (zh) * 2020-12-02 2021-03-19 成都新希望金融信息有限公司 数据管理方法、装置、服务器及存储介质
CN112671574B (zh) * 2020-12-18 2024-04-16 深圳赛安特技术服务有限公司 前后端联调方法、装置、代理设备及存储介质
CN112671574A (zh) * 2020-12-18 2021-04-16 深圳赛安特技术服务有限公司 前后端联调方法、装置、代理设备及存储介质
CN112702436B (zh) * 2020-12-29 2023-06-20 广州品唯软件有限公司 流量录制方法、装置、计算机设备和存储介质
CN112702436A (zh) * 2020-12-29 2021-04-23 广州品唯软件有限公司 流量录制方法、装置、计算机设备和存储介质
CN112732499A (zh) * 2020-12-30 2021-04-30 广州品唯软件有限公司 一种基于微服务架构的测试方法、装置及计算机***
CN112732567B (zh) * 2020-12-31 2023-06-27 平安银行股份有限公司 基于ip的mock数据测试方法、装置、电子设备及存储介质
CN112732567A (zh) * 2020-12-31 2021-04-30 平安银行股份有限公司 基于ip的mock数据测试方法、装置、电子设备及存储介质
CN113641579A (zh) * 2021-08-10 2021-11-12 中国平安人寿保险股份有限公司 数据处理方法、装置、设备及存储介质
CN114553929B (zh) * 2022-01-10 2024-04-12 多点生活(成都)科技有限公司 录制调用动态Mock的录制回放增强方法和装置
CN114553929A (zh) * 2022-01-10 2022-05-27 多点生活(成都)科技有限公司 录制调用动态Mock的录制回放增强方法和装置
CN114706662B (zh) * 2022-06-08 2022-09-02 杭州比智科技有限公司 基于jvm沙箱实现动态模拟业务操作和数据的方法及***
CN114706662A (zh) * 2022-06-08 2022-07-05 杭州比智科技有限公司 基于jvm沙箱实现动态模拟业务操作和数据的方法及***
CN115344502A (zh) * 2022-10-18 2022-11-15 中建电子商务有限责任公司 基于真实数据自动生成mock数据及自动加载的方法
CN115454880A (zh) * 2022-10-25 2022-12-09 中邮消费金融有限公司 一种动态生成数据的请求处理组件
CN117478570A (zh) * 2023-12-27 2024-01-30 深圳万物安全科技有限公司 基于容器化技术的设备测试方法、装置及存储介质
CN117478570B (zh) * 2023-12-27 2024-03-22 深圳万物安全科技有限公司 基于容器化技术的设备测试方法、装置及存储介质

Also Published As

Publication number Publication date
CN106776313B (zh) 2020-06-23

Similar Documents

Publication Publication Date Title
CN106776313A (zh) 一种模拟服务的方法、装置及集中管理平台
CN106603283B (zh) 一种模拟服务的方法、装置及集中管理平台
US7117411B2 (en) Methods and systems for testing communications network components
US7136913B2 (en) Object oriented communication among platform independent systems across a firewall over the internet using HTTP-SOAP
US8713177B2 (en) Remote management of networked systems using secure modular platform
US6832184B1 (en) Intelligent work station simulation—generalized LAN frame generation simulation structure
CN101420437B (zh) 一种原型***与hla仿真***的接口设备
CN108667807A (zh) 一种基于监控云平台与网关的协议自适应方法及***
CN101502047B (zh) 存储网络管理***中的网络节点的配置信息的方法和***
US11392873B2 (en) Systems and methods for simulating orders and workflows in an order entry and management system to test order scenarios
MXPA04002729A (es) Transmision y recepcion de mensajes a traves de un canal de comunicacion y modelo de programacion adaptable.
CN105794152B (zh) 与楼宇自动化进行基于web的交互的***和方法及装置
CN103178996A (zh) 分布式包交换芯片模型验证***及验证方法
CN101887379A (zh) 一种基于虚拟网卡的无线信道仿真方法
CN104639497B (zh) 远程访问配置方法、远程访问方法、装置和***
CN109391516A (zh) 实现多厂家utn设备集中维护管理的云化第三方网管***
JP3887672B2 (ja) プロトコル・スタック生成装置及び方法
CN110049001A (zh) 一种实现WebService服务的方法、装置、存储介质和服务器
Sheers Hp openview event correlation services
CN110489245B (zh) 基于远程过程调用rpc的故障注入方法及***
CN101997721A (zh) 一种电信网络管理***、方法及相应的装置
CN107273250A (zh) 电子化保单自动承保***的测试方法及装置
CN102594615B (zh) 一种模拟仿真增值业务的方法及***
CN101969442B (zh) 基于进程运行环境感知与迁移的网络模拟框架实现方法
JP2010146551A (ja) ロボットソフトウェアコンポーネントのためのメソッドポート装置及び構成方法

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
TA01 Transfer of patent application right

Effective date of registration: 20171208

Address after: 510000 Guangzhou City, Guangzhou, Guangdong, Fangcun Avenue, one of the 314 self compiled

Applicant after: Guangzhou Pinwei Software Co., Ltd.

Address before: Liwan District Fangcun Huahai street Guangzhou city Guangdong province 510000 No. 20 self 1-5 building (only for office use)

Applicant before: Guangzhou VIPSHOP Information and Technology Co., Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220111

Address after: 510000 Room 601, 128 Dingxin Road, Haizhu District, Guangzhou City, Guangdong Province (office only)

Patentee after: Vipshop (Guangzhou) Software Co.,Ltd.

Address before: 510000 No. 314, Fangcun Avenue, Liwan District, Guangzhou City, Guangdong Province

Patentee before: GUANGZHOU PINWEI SOFTWARE Co.,Ltd.

TR01 Transfer of patent right