CN111382058A - 一种服务的测试方法、装置,服务器及存储介质 - Google Patents

一种服务的测试方法、装置,服务器及存储介质 Download PDF

Info

Publication number
CN111382058A
CN111382058A CN201811643754.3A CN201811643754A CN111382058A CN 111382058 A CN111382058 A CN 111382058A CN 201811643754 A CN201811643754 A CN 201811643754A CN 111382058 A CN111382058 A CN 111382058A
Authority
CN
China
Prior art keywords
test
service
data
request
upstream
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
CN201811643754.3A
Other languages
English (en)
Other versions
CN111382058B (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.)
Beijing ByteDance Network Technology Co Ltd
Original Assignee
Beijing ByteDance Network 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 Beijing ByteDance Network Technology Co Ltd filed Critical Beijing ByteDance Network Technology Co Ltd
Priority to CN201811643754.3A priority Critical patent/CN111382058B/zh
Publication of CN111382058A publication Critical patent/CN111382058A/zh
Application granted granted Critical
Publication of CN111382058B publication Critical patent/CN111382058B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/3684Test management for test design, e.g. generating new test cases

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

一种服务的测试方法、装置,服务器及存储介质
技术领域
本公开实施例涉及测试技术领域,尤其涉及一种服务的测试方法、装置,服务器及存储介质。
背景技术
由于目前业务系统上线频繁、业务需求多、迭代周期短,多次出现代码变更容易导致的线上事故,因此需要在上线前对服务进行测试。
现有的对服务进行测试都是根据人工指定的测试用例比较预期输出和实际输出,判断上线的接口是否存在问题。然而,测试用例由人工指定需要耗费大量的人力物力,且可能存在测试用例覆盖不全的情况,导致系统的维护成本过高。
发明内容
本公开实施例提供一种服务的测试方法、装置,服务器及存储介质,能够根据服务运行时实际数据生成的测试用例对被测试服务进行测试,相对传统的人工编写测试用例的方式,覆盖面更广,同时也提高系统的易用性,降低维护成本。
第一方面,本公开实施例提供了一种服务的测试方法,包括:
从第一数据库中获取测试用例,测试用例包括上游服务请求数据,以及与上游服务请求数据对应的服务请求响应范式;
根据上游服务请求数据,生成并向在线服务器发送用于测试被测试服务的测试请求,以由在线服务器基于测试请求生成测试数据对,被测试服务运行在在线服务器上;
接收在线服务器发送的测试数据对,并判断测试数据对是否满足服务请求响应范式。
可选的,测试请求携带有测试标识。
可选的,服务请求响应范式包括上游服务响应范式、下游服务请求范式和下游服务响应范式中的至少一个,测试数据对包括上游测试请求数据,以及上游测试响应数据、下游测试请求数据和下游测试响应数据中的至少一个;
判断测试数据对是否满足服务请求响应范式包括如下至少一个:
判断上游测试响应数据是否满足上游服务响应范式;
判断下游测试请求数据是否满足下游服务请求范式;
判断下游测试响应数据是否满足下游服务响应范式。
可选的,在从第一数据库中获取测试用例前,还包括:
接收线上服务管理平台发送的线上服务测试指令。
可选的,还包括:
根据上游服务请求数据,生成并向在线服务器发送重放请求,以由在线服务器基于重放请求生成重放数据对;
接收在线服务器发送的重放数据对,并将重放数据对存储在第二数据库中。
可选的,测试用例是由学习服务器根据被测试服务运行时的多个服务数据对聚类生成的;或者,
测试用例是由学习服务器根据被测试服务运行时的多个服务数据对,以及多个重放数据对聚类生成的。
可选的,被测试服务包括多个被测试方法,测试用例与被测试方法对应,测试用例、测试数据对、服务数据对和测试请求具有相同的被测服务标识、被测试方法标识和服务请求标识;或者,测试用例、测试数据对、重放数据对、服务数据对和测试请求具有相同的被测服务标识、被测试方法标识和服务请求标识。
第二方面,本公开实施例提供了一种服务的测试方法,包括:
接收测试服务器发送的用于测试被测试服务的测试请求,测试请求是测试服务器基于测试用例生成的,测试用例包括上游服务请求数据,以及与上游服务请求数据对应的服务请求响应范式;
基于测试请求生成测试数据对;
向测试服务器发送测试数据对,以由测试服务器判断测试数据对是否满足服务请求响应范式。
可选的,测试请求携带有测试标识。
可选的,测试数据对包括上游测试请求数据,以及上游测试响应数据、下游测试请求数据和下游测试响应数据中的至少一个;基于测试请求生成测试数据对包括:
通过第一中间件获取上游测试请求数据和上游测试响应数据;
通过第二中间件获取下游测试请求数据和下游测试响应数据。
可选的,在接收测试服务器发送的用于测试被测试服务的测试请求前,还包括:
获取被测试服务运行时的多个服务数据对,每个服务数据对包括上游服务请求数据,以及与上游服务请求数据对应的服务请求响应数据;
将多个服务数据对存储在第二数据库中。
可选的,服务请求响应数据包括被测试服务基于上游服务请求数据获得的上游服务响应数据、下游服务请求数据和下游服务响应数据中的至少一个;
获取被测试服务运行时的多个交互数据对包括:
通过第一中间件获取上游服务请求数据和上游服务响应数据;
通过第二中间件获取下游服务请求数据和下游服务响应数据。
可选的,还包括:
接收测试服务器基于上游服务请求数据生成并发送的重放请求,并基于重放请求生成重放数据对;
向测试服务器或第二数据库发送重放数据对,以由学习服务器根据服务数据对聚类生成测试用例;或者,由学习服务器根据服务数据对,以及重放数据对共同聚类生成测试用例。
可选的,重放数据对包括上游重放请求数据,以及基于上游重放请求数据获得的上游重放响应数据、下游重放请求数据和下游重放响应数据中的至少一个;
基于重放请求生成重放数据对包括:
通过第一中间件获取上游重放请求数据和上游重放响应数据;
通过第二中间件获取下游重放请求数据和下游重放响应数据。
可选的,还包括:
在第二中间件获取到下游测试请求数据后进行截断处理,并从测试服务器获取下游服务响应数据作为下游测试响应数据;和/或,
在第二中间件获取到下游重放请求数据后进行截断处理,并从测试服务器获取下游服务响应数据作为下游重放响应数据。
可选的,被测试服务包括多个被测试方法,测试用例与被测试方法对应,测试用例、测试数据对、服务数据对和测试请求具有相同的被测服务标识、被测试方法标识和服务请求标识;或者,测试用例、测试数据对、重放数据对、服务数据对和测试请求具有相同的被测服务标识、被测试方法标识和服务请求标识。
第三方面,本公开实施例提供了一种服务的测试装置,包括:接收模块,生成模块,发送模块和判断模块;
接收模块,用于从第一数据库中获取测试用例,测试用例包括上游服务请求数据,以及与上游服务请求数据对应的服务请求响应范式;
生成模块,用于根据上游服务请求数据,生成用于测试被测试服务的测试请求;
发送模块,用于向在线服务器发送测试请求,以由在线服务器基于测试请求生成测试数据对,被测试服务运行在在线服务器上;
接收模块,还用于接收在线服务器发送的测试数据对;
判断模块,用于判断测试数据对是否满足服务请求响应范式。
可选的,测试请求携带有测试标识。
可选的,服务请求响应范式包括上游服务响应范式、下游服务请求范式和下游服务响应范式中的至少一个,测试数据对包括上游测试请求数据,以及上游测试响应数据、下游测试请求数据和下游测试响应数据中的至少一个;
判断模块,具体用于判断上游测试响应数据是否满足上游服务响应范式;和/或,判断下游测试请求数据是否满足下游服务请求范式;和/或,判断下游测试响应数据是否满足下游服务响应范式。
可选的,接收模块,还用于在从第一数据库中获取测试用例前,接收线上服务管理平台发送的线上服务测试指令。
可选的,生成模块,还用于根据上游服务请求数据,生成重放请求;
发送模块,还用于向在线服务器发送重放请求,以由在线服务器基于重放请求生成重放数据对;
接收模块,还用于接收在线服务器发送的重放数据对;
发送模块,还用于将重放数据对发送至第二数据库存储。
可选的,测试用例是由学习服务器根据被测试服务运行时的多个服务数据对聚类生成的;或者,
测试用例是由学习服务器根据被测试服务运行时的多个服务数据对,以及多个重放数据对聚类生成的。
可选的,被测试服务包括多个被测试方法,测试用例与被测试方法对应,测试用例、测试数据对、服务数据对和测试请求具有相同的被测服务标识、被测试方法标识和服务请求标识;或者,测试用例、测试数据对、重放数据对、服务数据对和测试请求具有相同的被测服务标识、被测试方法标识和服务请求标识。
第四方面,本公开实施例提供了一种服务的测试装置,包括:接收模块,生成模块和发送模块;
接收模块,用于接收测试服务器发送的用于测试被测试服务的测试请求,测试请求是测试服务器基于测试用例生成的,测试用例包括上游服务请求数据,以及与上游服务请求数据对应的服务请求响应范式;
生成模块,用于基于测试请求生成测试数据对;
发送模块,用于向测试服务器发送测试数据对,以由测试服务器判断测试数据对是否满足服务请求响应范式。
可选的,测试请求携带有测试标识。
可选的,测试数据对包括上游测试请求数据,以及上游测试响应数据、下游测试请求数据和下游测试响应数据中的至少一个;
生成模块,具体用于通过第一中间件获取上游测试请求数据和上游测试响应数据;通过第二中间件获取下游测试请求数据和下游测试响应数据。
可选的,生成模块,用于在接收模块接收测试服务器发送的用于测试被测试服务的测试请求前,获取被测试服务运行时的多个服务数据对,每个服务数据对包括上游服务请求数据,以及与上游服务请求数据对应的服务请求响应数据;
发送模块,还用于将多个服务数据对发送至第二数据库存储。
可选的,服务请求响应数据包括被测试服务基于上游服务请求数据获得的上游服务响应数据、下游服务请求数据和下游服务响应数据中的至少一个;
生成模块,具体用于通过第一中间件获取上游服务请求数据和上游服务响应数据;通过第二中间件获取下游服务请求数据和下游服务响应数据。
可选的,接收模块,还用于接收测试服务器基于上游服务请求数据生成并发送的重放请求;
生成模块,还用于基于重放请求生成重放数据对;
发送模块,还用于向测试服务器或第二数据库发送重放数据对,以由学习服务器根据服务数据对聚类生成测试用例;或者,由学习服务器根据服务数据对,以及重放数据对共同聚类生成测试用例。
可选的,重放数据对包括上游重放请求数据,以及基于上游重放请求数据获得的上游重放响应数据、下游重放请求数据和下游重放响应数据中的至少一个;
生成模块,具体用于通过第一中间件获取上游重放请求数据和上游重放响应数据;通过第二中间件获取下游重放请求数据和下游重放响应数据。
可选的,还包括:处理模块;
处理模块,用于在第二中间件获取到下游测试请求数据后进行截断处理,并从测试服务器获取下游服务响应数据作为下游测试响应数据;和/或,在第二中间件获取到下游重放请求数据后进行截断处理,并从测试服务器获取下游服务响应数据作为下游重放响应数据。
可选的,被测试服务包括多个被测试方法,测试用例与被测试方法对应,测试用例、测试数据对、服务数据对和测试请求具有相同的被测服务标识、被测试方法标识和服务请求标识;或者,测试用例、测试数据对、重放数据对、服务数据对和测试请求具有相同的被测服务标识、被测试方法标识和服务请求标识。
第五方面,本公开实施例还提供了一种服务器,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中任一的服务的测试方法。
第六方面,本公开实施例还提供了一种服务器,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第二方面中任一的服务的测试方法。
第七方面,本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面或第二方面中任一的服务的测试方法。
本公开实施例通过在第一数据库中存储了根据服务运行时实际数据生成的测试用例,测试用例包括上游服务请求数据,以及与上游服务请求数据对应的服务请求响应范式,使得测试服务器能够在发起测试请求后,接收在线服务器发送的测试数据对,并判断测试数据对是否满足服务请求响应范式,相对传统的人工编写测试用例的方式,覆盖面更广,同时也提高了系统的易用性,降低了维护成本,另外,其中的测试用例可以由学习服务器根据被测试服务运行时的多个服务数据对聚类生成,或者根据多个服务数据对和多个所述重放数据对聚类生成,从而可自动进行测试用例的收集、更新,以及使用测试用例进行测试,无需人工参与。通过第二中间件在接收到下游测试请求数据和/或下游重放请求数据后进行截断处理,进而能够对不可重入接口进行测试,解决传统测试方法无法对该类接口进行测试的问题。
附图说明
图1是本公开实施例提供的一种服务的测试系统的结构示意图;
图2是本公开实施例提供的一种测试用例的生成方法的流程示意图;
图3是本公开实施例提供的另一种测试用例的生成方法的流程示意图;
图4是本公开实施例提供的一种服务的测试方法的流程示意图;
图5是本公开实施例提供的另一种服务的测试方法的流程示意图;
图6是本公开实施例提供的又一种服务的测试方法的流程示意图;
图7是本公开实施例提供的再一种服务的测试方法的流程示意图;
图8是本公开实施例提供的还一种服务的测试方法的流程示意图;
图9是本公开实施例提供的一种服务的测试装置的结构示意图;
图10是本公开实施例提供的另一种服务的测试装置的结构示意图;
图11是本公开实施例提供的又一种服务的测试装置的结构示意图;
图12是本公开实施例提供的一种服务器的结构示意图。
具体实施方式
下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本公开,而非对本公开的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本公开相关的部分而非全部结构。
需要说明的是,本公开中术语“系统”和“网络”在本文中常被可互换使用。本公开实施例中提到的“和/或”是指”包括一个或更多个相关所列项目的任何和所有组合。本公开的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于限定特定顺序。
还需要说明是,本公开下述各个实施例可以单独执行,各个实施例之间也可以相互结合执行,本公开实施例对此不作具体限制。
本公开实施例提供一种服务的测试方法、装置,服务器及存储介质,能够根据服务运行时实际数据生成的测试用例对被测试服务进行测试,提高系统的易用性,降低维护成本。
图1为本公开实施例提供的一种服务的测试系统的结构示意图。从图1可以看出,该测试系统分为在线测试部分和离线测试部分;其中,在线测试部分至少包括在线服务器,离线测试部分至少包括测试服务器、学习服务器、线上服务管理平台、第一数据库和第二数据库。
在线服务器可以接收正常的用户流量和测试服务器发送的测试流量。在线服务器中装载有第一中间件和第二中间件,第一中间件和第二中间件是一种插件,其中,第一中间件负责收集被测试服务的输入和输出,第二中间件负责收集上线被测试服务调用rpc依赖和非rpc依赖时的输入和输出,第一中间件和第二中间件收集到的输入和输出均可以通过Databus发送至该测试系统的离线测试部分。上述第一中间件和第二中间件在检测到被测试服务在处于小流量环境时自动开启式,或者,也可以进一步的给第一中间件和第二中间件增加一个启动开关,并由外部管理平台控制开启与关闭。具体的,rpc依赖是一种采用kite框架开发的上游服务,Databus是一个低延迟、可靠的、支持事务的、保持一致性的数据变更抓取系统。
第一数据库中存储有测试用例。测试用例是学习服务器从第二数据库中获取到的多个服务数据对聚类生成的,或者是学习服务器从第二数据库中获取到的多个服务数据对以及多个重放数据对共同聚类生成的。线上服务管理平台用于向测试服务器发送线上服务测试指令,以使得测试服务器向在线服务器发送用于测试被测试服务的测试请求。其中,第二数据库中可以包括用于处理数据的Kafka和用于存储数据的Redis,具体的,Kafka是一个开源流处理平台,由Scala和Java编写,是一种高吞吐量的分布式发布订阅消息系统,可以处理消费者规模的网站中的所有动作流数据;Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的应用程序编程接口(Application Programming Interface,API)。
下面,对服务的测试方法、装置,及其技术效果进行详细描述。
首先介绍学习服务器是如何聚类生成测试用例的。具体的,学习服务器聚类生成测试用例的方法可以包括如下两种情况中的任意一种:
情况一、学习服务器根据多个服务数据对聚类生成测试用例。
情况二、学习服务器根据多个服务数据对,以及多个重放数据对共同聚类生成测试用例。
对于上述情况一,图2为本公开实施例提供的一种测试用例的生成方法的流程示意图,本公开实施例公开的方法主要适用于图1所示的学习服务器,如图2所示,该方法具体包括如下步骤:
S101、学习服务器获取被测试服务运行时的多个服务数据对,每个服务数据对包括上游服务请求数据,以及与上游服务请求数据对应的服务请求响应数据。
具体的,学习服务器可以从第二数据库中获取服务数据对,其中,服务数据对是由在线服务器在被测试服务运行时获取、并发送给第二数据库的。
被测试服务可以包括多个被测试方法,测试用例与被测试方法对应,服务数据对、重放数据对和测试用例均包括相同的被测服务标识、被测试方法标识和服务请求标识。
需要补充的是,第二数据库中的数据可以按照预定的格式存储,如预定的字段或者预定的名称等格式存储。
S102、学习服务器根据与上游服务请求数据对应的服务请求响应数据进行聚类生成服务请求响应范式。
具体的,服务请求响应数据包括上游服务响应数据、下游服务请求数据和下游服务响应数据中的至少一种;相应的,学习服务器根据与上游服务请求数据对应的服务请求响应数据进行聚类生成服务请求响应范式的方法可以包括如下至少一个:
学习服务器根据上游服务响应数据进行聚类生成上游服务响应范式;
学习服务器根据下游服务请求数据进行聚类生成下游服务请求范式;
学习服务器根据下游服务响应数据进行聚类生成下游服务响应范式。
S103、学习服务器生成测试用例,测试用例包括上游服务请求数据,及其对应的服务请求响应范式。
学习服务器生成测试用例后,学习服务器可以将测试用例存储至第一数据库。
对于上述情况二,图3为本公开实施例提供的另一种测试用例的生成方法的流程示意图,本公开实施例公开的方法主要适用于图1所示的学习服务器,如图3所示,该方法具体包括如下步骤:
S201、学习服务器获取被测试服务运行时的多个服务数据对,每个服务数据对包括上游服务请求数据,以及与上游服务请求数据对应的服务请求响应数据。
具体的,学习服务器可以从第二数据库中获取服务数据对,其中,服务数据对是由在线服务器在被测试服务运行时获取、并发送给第二数据库的。
被测试服务可以包括多个被测试方法,测试用例与被测试方法对应,服务数据对、重放数据对和测试用例均包括相同的被测服务标识、被测试方法标识和服务请求标识。
需要补充的是,第二数据库中的数据可以按照预定的格式存储,如预定的字段或者预定的名称等格式存储。
S202、学习服务器获取被测试服务执行重放时的重放数据对,每个重放数据对包括上游重放请求数据,以及与上游重放请求数据对应的重放请求响应数据。
具体的,学习服务器获取被测试服务执行重放时的重放数据对的方法可以包括如下两种方法中的任意一种:
方法1、学习服务器从第二数据库中获取被测试服务执行重放时的重放数据对,重放数据对由在线服务器在被测试服务执行重放时获取、并发送给第二数据库。
方法2、学习服务器从第二数据库中获取测试服务器发送的被测试服务执行重放时的重放数据对。
上述两种方法的区别在于,在方法1中,重放数据对由在线服务器在被测试服务执行重放时获取、并直接发送给第二数据库。在方法2中,重放数据对由在线服务器在被测试服务执行重放时获取、并发送至测试服务器,随后测试服务器发送重放数据对给第二数据库。
S203、学习服务器根据与上游服务请求数据对应的服务请求响应数据,以及与上游重放请求数据对应的重放请求响应数据进行聚类生成服务请求响应范式。
具体的,服务请求响应数据包括上游服务响应数据、下游服务请求数据和下游服务响应数据中的至少一种;重放请求响应数据包括上游重放响应数据、下游重放请求数据和下游重放响应数据中的至少一种;相应的,学习服务器根据与上游服务请求数据对应的服务请求响应数据,以及与上游重放请求数据对应的重放请求响应数据进行聚类生成服务请求响应范式的方法可以包括如下至少一个:
学习服务器根据上游服务响应数据和上游重放响应数据进行聚类生成上游服务响应范式;
学习服务器根据下游服务请求数据和下游重放请求数据进行聚类生成下游服务请求范式;
学习服务器根据下游服务响应数据和下游重返响应数据进行聚类生成下游服务响应范式。
S204、学习服务器生成测试用例,测试用例包括上游服务请求数据,及其对应的服务请求响应范式。
学习服务器生成测试用例后,学习服务器可以将测试用例存储至第一数据库。具体的,本公开实施例的步骤S202中可以进行多次重放,以获取多种可能的重放请求响应数据,使得聚类得到的范式能够尽可能全面的覆盖各种情况。本公开实施例中的范式包括但不限于各个重返请求响应数据所要包括的字段、各字段的类型和各字段的取值范围等内容。例如在服务数据对中获取到上游服务响应数据的字段为{“a”:1,“b”:2,“c”:3},根据执行重放步骤,获取到上游重放响应数据的字段为{“a”:1,“b”:2,“c”:4},由此,可以看到两次只有c字段的值不一样,则可以认为c字段是噪音字段,可以忽略,并进而得到上游服务响应数据的范式{a必须出现,b必须出现}。
另外,对于上述情况一和情况二,由于下游接口的功能,或者被测试服务的内部逻辑等发生变化,都可以使得被测试服务运行时,与上游服务请求数据对应的服务请求响应数据发生变化,例如,在第一时间段内某下游接口的功能是获取地址列表,被测试服务运行时的下游服务响应数据必然包括一系列的地址,然而在第二时间段内该下游接口的功能发生变化,不再是获取地址列表了,被测试服务运行时的下游服务响应数据对也必然发生变化。或者是,上游服务请求为获取微博数据的请求,第一时间段内按照被测试服务的内部逻辑是每次反馈10条微博数据,因此上游服务响应数据中会包括上述10条微博数据,然而第二时间段内被测试服务的内容逻辑发生了变化,每次反馈50条微博数据,则被测试服务运行时的上游服务响应数据也必然发生变化。因此,学习服务器可以根据预设条件重新执行上述情况一和情况二的方法,更新测试用例。
可选的,学习服务器可以按照预设时间阈值,重新执行上述的情况一和情况二的步骤,以周期性更新测试用例。例如,学习服务器可以每天更新测试用例,若接口的功能没有发生变化,学习服务器可以将更新的测试用例添加至第一数据库中即可;若接口的功能发生变化,学习服务器则删除第一数据库中原有的测试用例,仅保留更新的测试用例。
又可选的,学习服务器可以根据更新指令更新测试用例。例如,外部管理平台可以定期查看下游接口的功能是否发生变化,若下游接口的功能发生变化,外部管理平台生成更新指令至学习服务器,以使得学习服务器重新执行上述情况一或情况二的方式,更新测试用例,并删除第一数据库中原有的测试用例,仅保留更新的测试用例。
本公开实施例提供一种测试用例的生成方法。由于在第二数据库中存储了被测试服务运行时的多个服务数据对,使得学习服务器可以根据多个服务数据对自主生成测试用例,以使得测试服务能够利用测试用例对服务进行测试,无需人工参与,节省了人工编辑测试用例的时间,而测试用例的覆盖面也更广,并提高了系统的易用性,降低了维护成本。
其次,介绍测试服务器是如何对服务进行测试的。图4为本公开实施例提供的一种服务的测试方法的流程示意图,本公开实施例公开的方法主要适用于图1所示的测试服务器,如图4所示,该方法具体包括如下步骤:
S300、测试服务器接收线上服务管理平台发送的线上服务测试指令。
可选的,线上服务测试指令可以是被测试服务在上线时线上服务管理平台自动生成,并向测试服务器发送的。
S301、测试服务器从第一数据库中获取测试用例,测试用例包括上游服务请求数据,以及与上游服务请求数据对应的服务请求响应范式。
测试用例可以是学习服务器生成的。具体的,学习服务器生成测试用例的方法可以参照上述图2和/或图3所示的测试用例的生成方法,为了简洁,此处不再赘述。
学习服务器生成测试用例后,将测试用例存储在第一数据库中。第一数据库用于存储测试用例。
测试服务器在接收到线上服务管理平台发送的线上服务测试指令后,可以直接从第一数据库中获取测试用例,得到上游服务请求数据,以及与上游服务请求数据对应的服务请求响应范式。
S302、测试服务器根据上游服务请求数据,生成用于测试被测试服务的测试请求。
其中,测试请求携带有测试标识,以使得在线服务器能够识别出当前接收的流量是正常的用户流量还是测试服务器发送的测试流量。
测试标识可以占一个标识位。可选的,该标识位可以取“0”或“1”,当该标识位为“0”时,表示该请求为其他请求,如正常的用户流量;当该标识位为“1”时,表示该请求为测试请求。或者,该标识位还可以以是否携带测试标识来判断请求是否为测试请求,本公开实施例对此不作具体限制。
S303、测试服务器向在线服务器发送测试请求,以由在线服务器基于测试请求生成测试数据对。
S304、测试服务器接收在线服务器发送的测试数据对。
由于上述测试请求携带有测试标识,那么相应的,在线服务器基于测试请求生成测试数据对也携带有该测试标识。
S305、测试服务器判断测试数据对是否满足服务请求响应范式。
具体的,测试数据对包括上游测试请求数据,以及上游测试响应数据、下游测试请求数据和下游测试响应数据中的至少一个。可选的,上游测试请求数据与上游服务请求数据是相同的数据。
另外,服务请求响应范式包括上游服务响应范式、下游服务请求范式和下游服务响应范式中的至少一个,测试服务器判断测试数据对是否满足服务请求响应范式的方法可以包括下述三种方法中的任意一种或者多种的组合:
测试服务器判断上游测试响应数据是否满足上游服务响应范式。
测试服务器判断下游测试请求数据是否满足下游服务请求范式。
测试服务器判断下游测试响应数据是否满足下游服务响应范式。
当上游测试响应数据满足上游服务响应范式,和/或下游测试请求数据满足下游服务请求范式,和/或下游测试响应数据满足下游服务响应范式时,表示测试通过;当上游测试响应数据不满足上游服务响应范式,且下游测试请求数据不满足下游服务请求范式,且下游测试响应数据不满足下游服务响应范式时,表示测试不通过。
在本公开上述实施例的基础上,图5为本公开实施例提供的另一种服务的测试方法的流程示意图,如图5所示,除包括上述实施例中的步骤S300-步骤S305外,还包括:
S306、测试服务器根据上游服务请求数据,生成并向在线服务器发送重放请求,以由在线服务器基于重放请求生成重放数据对。
S307、测试服务器接收在线服务器发送的重放数据对,并将重放数据对存储在第二数据库中。
重放数据对包括上游重放请求数据,以及与上游重放请求数据对应的重放请求响应数据。重放请求响应数据可以包括被测试服务基于上游重放请求数据获得的上游重放响应数据、下游重放请求数据和下游重放响应数据。可选的,上游重放请求数据与上游服务请求数据是相同的数据。
需要说明的是,上述步骤S306和S307可以在步骤S300执行之前执行,也可以在步骤S305执行之后执行,本公开实施例对此不作具体限制。
还需要说明的是,被测试服务运行在在线服务器上,被测试服务可以包括多个被测试方法,测试用例与被测试方法对应,测试用例、测试数据对、服务数据对和测试请求具有相同的被测服务标识、被测试方法标识和服务请求标识;或者,测试用例、测试数据对、重放数据对、服务数据对和测试请求具有相同的被测服务标识、被测试方法标识和服务请求标识。
另外,由于第二数据库中的数据都是按照预定的格式存储的,因此测试请求和重放请求的格式也是统一的,如Json string格式。被测试服务可以分为http服务和rpc服务两种类型,每个rpc服务的接口对数据格式要求严格,因此存在测试请求和重放请求的格式与被测试服务的接口格式不一致的情况,因此,可以给rpc服务配置一个http接口,以满足数据格式的兼容性。
本公开实施例提供了一种服务的测试方法。通过在第一数据库中存储了根据服务运行时实际数据生成的测试用例,测试用例包括上游服务请求数据,以及与上游服务请求数据对应的服务请求响应范式,使得测试服务器能够在发起测试请求后,接收在线服务器发送的测试数据对,并判断测试数据对是否满足服务请求响应范式。实现了自动使用测试用例进行测试,无需人工干预,提高了系统的易用性,降低了维护成本。
最后,介绍在线服务器是如何对服务进行测试的。图6为本公开实施例提供的又一种服务的测试方法的流程示意图,本公开实施例公开的方法主要适用于图1所示的在线服务器,如图6所示,该方法具体包括如下步骤:
S401、在线服务器接收测试服务器发送的用于测试被测试服务的测试请求,测试请求是测试服务器基于从第一数据库中获取的测试用例生成的,测试用例包括上游服务请求数据,以及与上游服务请求数据对应的服务请求响应范式。
测试用例可以是学习服务器生成的。具体的,学习服务器生成测试用例的方法可以参照上述图2和/或图3所示的测试用例的生成方法,为了简洁,此处不再赘述。
学习服务器生成测试用例后,将测试用例存储在第一数据库中。第一数据库用于存储测试用例。
其中,测试请求携带有测试标识,以使得在线服务器能够识别出当前接收的流量是正常的用户流量还是测试服务器发送的测试流量。
测试标识可以占一个标识位。可选的,该标识位可以取“0”或“1”,当该标识位为“0”时,表示该请求为其他请求,如正常的用户流量;当该标识位为“1”时,表示该请求为测试请求。或者,该标识位还可以以是否携带测试标识来判断请求是否为测试请求,本公开实施例对此不作具体限制,测试标识可以通过被测试服务透传到下游,以体现在下游测试请求数据和下游测试响应数据中。
S402、在线服务器基于测试请求生成测试数据对。
由于上述测试请求携带有测试标识,那么相应的,在线服务器基于测试请求生成测试数据对也携带有该测试标识。
测试数据对包括上游测试请求数据,以及上游测试响应数据、下游测试请求数据和下游测试响应数据中的至少一个。
在线服务器基于测试请求生成测试数据对的方法可以包括:在线服务器通过第一中间件获取上游测试请求数据和上游测试响应数据;在线服务器通过第二中间件获取下游测试请求数据和下游测试响应数据。
可选的,在第二中间件获取到下游测试请求数据后在线服务器进行截断处理,并从测试服务器获取下游服务响应数据作为下游测试响应数据。如此,能够使本公开实施例提供的服务的测试方法适用于一些不可重入的接口的测试。
S403、在线服务器向测试服务器发送测试数据对,以由测试服务器判断测试数据对是否满足服务请求响应范式。
另外,服务请求响应范式包括上游服务响应范式、下游服务请求范式和下游服务响应范式中的至少一个,测试服务器判断测试数据对是否满足服务请求响应范式的方法可以包括下述三种方法中的任意一种或者多种的组合:
测试服务器判断上游测试响应数据是否满足上游服务响应范式。
测试服务器判断下游测试请求数据是否满足下游服务请求范式。
测试服务器判断下游测试响应数据是否满足下游服务响应范式。
当上游测试响应数据满足上游服务响应范式,和/或下游测试请求数据满足下游服务请求范式,和/或下游测试响应数据满足下游服务响应范式时,表示测试通过;当上游测试响应数据不满足上游服务响应范式,且下游测试请求数据不满足下游服务请求范式,且下游测试响应数据不满足下游服务响应范式时,表示测试不通过。
在本公开上述实施例的基础上,图7为本公开实施例提供的再一种服务的测试方法的流程示意图,如图7所示,除包括上述实施例中的步骤S401-步骤S403外,在执行步骤S401前,还包括:
S400、在线服务器获取被测试服务运行时的多个服务数据对,每个服务数据对包括上游服务请求数据,以及与上游服务请求数据对应的服务请求响应数据。
服务请求响应数据包括被测试服务基于上游服务请求数据获得的上游服务响应数据、下游服务请求数据和下游服务响应数据中的至少一个。
具体的,在线服务器获取被测试服务运行时的多个交互数据对的方法可以包括:在线服务器通过第一中间件获取上游服务请求数据和上游服务响应数据;在线服务器通过第二中间件获取下游服务请求数据和下游服务响应数据。
S400、在线服务器将多个服务数据对存储在第二数据库中。
在线服务器将多个服务数据对存储在第二数据库中,以使学习服务器根据多个服务数据对生成测试用例。学习服务器生成测试用例的方法可以参照上述图2和/或图3所示的测试用例的生成方法,为了简洁,此处不再赘述。
在本公开上述实施例的基础上,图8为本公开实施例提供的还一种服务的测试方法的流程示意图,如图8所示,除包括上述实施例中的步骤S400-步骤S403外,还包括:
S404、在线服务器接收测试服务器基于上游服务请求数据生成并发送的重放请求。
S405、在线服务器基于重放请求生成重放数据对。
重放数据对包括上游重放请求数据,以及与上游重放请求数据对应的重放请求响应数据;重放请求响应数据包括被测试服务基于上游重放请求数据获得的上游重放响应数据、下游重放请求数据和下游重放响应数据中的至少一个。
具体的,在线服务器基于重放请求生成重放数据对的方法可以包括:在线服务器通过第一中间件获取上游重放请求数据和上游重放响应数据;在线服务器通过第二中间件获取下游重放请求数据和下游重放响应数据。
可选的,在第二中间件获取到下游重放请求数据后在线服务器进行截断处理,并从测试服务器获取下游服务响应数据作为下游重放响应数据。如此,能够使本公开实施例提供的服务的测试方法适用于一些不可重入的接口的测试,解决传统测试方法无法对该类接口进行测试的问题。
S406、在线服务器向测试服务器或第二数据库发送重放数据对,以由学习服务器根据服务数据对聚类生成测试用例;或者,由学习服务器根据服务数据对,以及重放数据对共同聚类生成测试用例。
将重放数据对存储在第二数据库中,以使得学习服务器根据多个服务数据对和多个重放数据对生成测试用例。学习服务器生成测试用例的方法可以参照上述图2和/或图3所示的测试用例的生成方法,为了简洁,此处不再赘述。
需要说明的是,上述步骤S404-S406可以在步骤S401执行之前执行,也可以在步骤S403执行之后执行,本公开实施例对此不作具体限制。
还需要说明的是,被测试服务运行在在线服务器上,被测试服务可以包括多个被测试方法,测试用例与被测试方法对应,测试用例、测试数据对、服务数据对和测试请求具有相同的被测服务标识、被测试方法标识和服务请求标识;或者,测试用例、测试数据对、重放数据对、服务数据对和测试请求具有相同的被测服务标识、被测试方法标识和服务请求标识。
另外,由于第二数据库中的数据都是按照预定的格式存储的,因此测试请求和重放请求的格式也是统一的,如Json string格式。被测试服务可以分为http服务和rpc服务两种类型,每个rpc服务的接口对数据格式要求严格,因此存在测试请求和重放请求的格式与被测试服务的接口格式不一致的情况,因此,可以给rpc服务配置一个http接口,以满足数据格式的兼容性。
本公开实施例提供了一种服务的测试方法。通过在第一数据库中存储了根据服务运行时实际数据生成的测试用例,测试用例包括上游服务请求数据,以及与上游服务请求数据对应的服务请求响应范式,使得测试服务器能够在发起测试请求后,接收在线服务器发送的测试数据对,并判断测试数据对是否满足服务请求响应范式,从而提高了系统的易用性,降低了维护成本。
图9为本公开实施例提供的一种服务的测试装置的结构示意图,具体的,该装置可以配置于测试服务器中,包括:接收模块10,生成模块11,发送模块12和判断模块13。
接收模块10,用于从第一数据库中获取测试用例,测试用例包括上游服务请求数据,以及与上游服务请求数据对应的服务请求响应范式;
生成模块11,用于根据上游服务请求数据,生成用于测试被测试服务的测试请求;
发送模块12,用于向在线服务器发送测试请求,以由在线服务器基于测试请求生成测试数据对,被测试服务运行在在线服务器上;
接收模块10,还用于接收在线服务器发送的测试数据对;
判断模块13,用于判断测试数据对是否满足服务请求响应范式。
可选的,测试请求携带有测试标识。
可选的,服务请求响应范式包括上游服务响应范式、下游服务请求范式和下游服务响应范式中的至少一个,测试数据对包括上游测试请求数据,以及上游测试响应数据、下游测试请求数据和下游测试响应数据中的至少一个;
判断模块13,具体用于判断上游测试响应数据是否满足上游服务响应范式;和/或,判断下游测试请求数据是否满足下游服务请求范式;和/或,判断下游测试响应数据是否满足下游服务响应范式。
可选的,接收模块10,还用于在从第一数据库中获取测试用例前,接收线上服务管理平台发送的线上服务测试指令。
可选的,生成模块11,还用于根据上游服务请求数据,生成重放请求;
发送模块12,还用于向在线服务器发送重放请求,以由在线服务器基于重放请求生成重放数据对;
接收模块10,还用于接收在线服务器发送的重放数据对;
发送模块12,还用于将重放数据对发送至第二数据库存储。
可选的,测试用例是由学习服务器根据被测试服务运行时的多个服务数据对聚类生成的;或者,
测试用例是由学习服务器根据被测试服务运行时的多个服务数据对,以及多个重放数据对聚类生成的。
可选的,被测试服务包括多个被测试方法,测试用例与被测试方法对应,测试用例、测试数据对、服务数据对和测试请求具有相同的被测服务标识、被测试方法标识和服务请求标识;或者,测试用例、测试数据对、重放数据对、服务数据对和测试请求具有相同的被测服务标识、被测试方法标识和服务请求标识。
本公开实施例提供的以上服务的测试装置,可执行本公开方法实施例所提供的服务的测试方法中测试服务器所执行的步骤,具备执行方法相应的功能模块和有益效果。
图10为本公开实施例提供的另一种服务的测试装置的结构示意图,具体的,该装置可以配置于在线服务器中,包括:接收模块20,生成模块21和发送模块22。
接收模块20,用于接收测试服务器发送的用于测试被测试服务的测试请求,测试请求是测试服务器基于测试用例生成的,测试用例包括上游服务请求数据,以及与上游服务请求数据对应的服务请求响应范式;
生成模块21,用于基于测试请求生成测试数据对;
发送模块22,用于向测试服务器发送测试数据对,以由测试服务器判断测试数据对是否满足服务请求响应范式。
可选的,测试请求携带有测试标识。
可选的,测试数据对包括上游测试请求数据,以及上游测试响应数据、下游测试请求数据和下游测试响应数据中的至少一个;
生成模块21,具体用于通过第一中间件获取上游测试请求数据和上游测试响应数据;通过第二中间件获取下游测试请求数据和下游测试响应数据。
可选的,生成模块21,用于在接收模块20接收测试服务器发送的用于测试被测试服务的测试请求前,获取被测试服务运行时的多个服务数据对,每个服务数据对包括上游服务请求数据,以及与上游服务请求数据对应的服务请求响应数据;
发送模块22,还用于将多个服务数据对发送至第二数据库存储。
可选的,服务请求响应数据包括被测试服务基于上游服务请求数据获得的上游服务响应数据、下游服务请求数据和下游服务响应数据中的至少一个;
生成模块21,具体用于通过第一中间件获取上游服务请求数据和上游服务响应数据;通过第二中间件获取下游服务请求数据和下游服务响应数据。
可选的,接收模块20,还用于接收测试服务器基于上游服务请求数据生成并发送的重放请求;
生成模块21,还用于基于重放请求生成重放数据对;
发送模块22,还用于向测试服务器或第二数据库发送重放数据对,以由学习服务器根据服务数据对聚类生成测试用例;或者,由学习服务器根据服务数据对,以及重放数据对共同聚类生成测试用例。
可选的,重放数据对包括上游重放请求数据,以及基于上游重放请求数据获得的上游重放响应数据、下游重放请求数据和下游重放响应数据中的至少一个;
生成模块21,具体用于通过第一中间件获取上游重放请求数据和上游重放响应数据;通过第二中间件获取下游重放请求数据和下游重放响应数据。
可选的,结合图10,图11为本公开实施例提供的又一种服务的测试装置的结构示意图,还包括:处理模块23。
处理模块23,用于在第二中间件获取到下游测试请求数据后进行截断处理,并从测试服务器获取下游服务响应数据作为下游测试响应数据;和/或,在第二中间件获取到下游重放请求数据后进行截断处理,并从测试服务器获取下游服务响应数据作为下游重放响应数据。
可选的,被测试服务包括多个被测试方法,测试用例与被测试方法对应,测试用例、测试数据对、服务数据对和测试请求具有相同的被测服务标识、被测试方法标识和服务请求标识;或者,测试用例、测试数据对、重放数据对、服务数据对和测试请求具有相同的被测服务标识、被测试方法标识和服务请求标识。
本公开实施例提供的以上服务的测试装置,可执行本公开方法实施例所提供的服务的测试方法中在线服务器所执行的步骤,具备执行方法相应的功能模块和有益效果。
图12为本公开实施例提供的一种服务器的结构示意图,如图12所示,其示出了适于用来实现本公开实施例的服务器的结构示意图。图12示出的服务器仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图12所示,服务器800可以包括处理器(例如中央处理器、图形处理器等)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储装置808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有服务器800操作所需的各种程序和数据。处理器801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
通常,以下装置可以连接至I/O接口805:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置806;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置807;包括例如磁带、硬盘等的存储装置808;以及通信装置809。通信装置809可以允许服务器800与其他设备进行无线或有线通信以交换数据。虽然图12示出了具有各种装置的服务器800,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置从网络上被下载和安装,或者从存储器被安装。在该计算机程序被处理器30执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:从第一数据库中获取测试用例,测试用例包括上游服务请求数据,以及与上游服务请求数据对应的服务请求响应范式;根据上游服务请求数据,生成并向在线服务器发送用于测试被测试服务的测试请求,以由在线服务器基于测试请求生成测试数据对,被测试服务运行在在线服务器上;接收在线服务器发送的测试数据对,并判断测试数据对是否满足服务请求响应范式。
或者,上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:接收测试服务器发送的用于测试被测试服务的测试请求,测试请求是测试服务器基于测试用例生成的,测试用例包括上游服务请求数据,以及与上游服务请求数据对应的服务请求响应范式;基于测试请求生成测试数据对;向测试服务器发送测试数据对,以由测试服务器判断测试数据对是否满足服务请求响应范式。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该模块本身的限定,例如,接收模块10还可以被描述为“从第一数据库中获取测试用例的模块”。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (20)

1.一种服务的测试方法,其特征在于,包括:
从第一数据库中获取测试用例,所述测试用例包括上游服务请求数据,以及与所述上游服务请求数据对应的服务请求响应范式;
根据所述上游服务请求数据,生成并向在线服务器发送用于测试被测试服务的测试请求,以由所述在线服务器基于所述测试请求生成测试数据对,所述被测试服务运行在所述在线服务器上;
接收所述在线服务器发送的所述测试数据对,并判断所述测试数据对是否满足所述服务请求响应范式。
2.根据权利要求1所述的方法,其特征在于,所述测试请求携带有测试标识。
3.根据权利要求1所述的方法,其特征在于,所述服务请求响应范式包括上游服务响应范式、下游服务请求范式和下游服务响应范式中的至少一个,所述测试数据对包括上游测试请求数据,以及上游测试响应数据、下游测试请求数据和下游测试响应数据中的至少一个;
所述判断所述测试数据对是否满足所述服务请求响应范式包括如下至少一个:
判断所述上游测试响应数据是否满足所述上游服务响应范式;
判断所述下游测试请求数据是否满足所述下游服务请求范式;
判断所述下游测试响应数据是否满足所述下游服务响应范式。
4.根据权利要求1所述的方法,其特征在于,在从第一数据库中获取测试用例前,还包括:
接收线上服务管理平台发送的线上服务测试指令。
5.根据权利要求1所述的方法,其特征在于,还包括:
根据所述上游服务请求数据,生成并向在线服务器发送重放请求,以由所述在线服务器基于所述重放请求生成重放数据对;
接收所述在线服务器发送的所述重放数据对,并将所述重放数据对存储在第二数据库中。
6.根据权利要求5所述的方法,其特征在于,所述测试用例是由学习服务器根据所述被测试服务运行时的多个服务数据对聚类生成的;或者,
所述测试用例是由所述学习服务器根据所述被测试服务运行时的多个服务数据对,以及多个所述重放数据对聚类生成的。
7.根据权利要求6所述的方法,其特征在于,所述被测试服务包括多个被测试方法,所述测试用例与所述被测试方法对应,所述测试用例、所述测试数据对、所述服务数据对和所述测试请求具有相同的被测服务标识、被测试方法标识和服务请求标识;或者,所述测试用例、所述测试数据对、所述重放数据对、所述服务数据对和所述测试请求具有相同的被测服务标识、被测试方法标识和服务请求标识。
8.一种服务的测试方法,其特征在于,包括:
接收测试服务器发送的用于测试被测试服务的测试请求,所述测试请求是所述测试服务器基于测试用例生成的,所述测试用例包括上游服务请求数据,以及与所述上游服务请求数据对应的服务请求响应范式;
基于所述测试请求生成测试数据对;
向所述测试服务器发送所述测试数据对,以由所述测试服务器判断所述测试数据对是否满足所述服务请求响应范式。
9.根据权利要求8所述的方法,其特征在于,所述测试请求携带有测试标识。
10.根据权利要求8所述的方法,其特征在于,所述测试数据对包括上游测试请求数据,以及上游测试响应数据、下游测试请求数据和下游测试响应数据中的至少一个;所述基于所述测试请求生成测试数据对包括:
通过第一中间件获取上游测试请求数据和上游测试响应数据;
通过第二中间件获取下游测试请求数据和下游测试响应数据。
11.根据权利要求10所述的方法,其特征在于,在接收测试服务器发送的用于测试被测试服务的测试请求前,还包括:
获取所述被测试服务运行时的多个服务数据对,每个所述服务数据对包括上游服务请求数据,以及与所述上游服务请求数据对应的服务请求响应数据;
将所述多个服务数据对存储在第二数据库中。
12.根据权利要求11所述的方法,其特征在于,所述服务请求响应数据包括所述被测试服务基于所述上游服务请求数据获得的上游服务响应数据、下游服务请求数据和下游服务响应数据中的至少一个;
所述获取所述被测试服务运行时的多个交互数据对包括:
通过所述第一中间件获取所述上游服务请求数据和所述上游服务响应数据;
通过所述第二中间件获取所述下游服务请求数据和所述下游服务响应数据。
13.根据权利要求10所述的方法,其特征在于,还包括:
接收所述测试服务器基于所述上游服务请求数据生成并发送的重放请求,并基于所述重放请求生成重放数据对;
向所述测试服务器或第二数据库发送所述重放数据对,以由学习服务器根据所述服务数据对聚类生成测试用例;或者,由所述学习服务器根据所述服务数据对,以及所述重放数据对共同聚类生成所述测试用例。
14.根据权利要求13所述的方法,其特征在于,所述重放数据对包括上游重放请求数据,以及基于所述上游重放请求数据获得的上游重放响应数据、下游重放请求数据和下游重放响应数据中的至少一个;
所述基于所述重放请求生成重放数据对包括:
通过所述第一中间件获取所述上游重放请求数据和所述上游重放响应数据;
通过所述第二中间件获取所述下游重放请求数据和所述下游重放响应数据。
15.根据权利要求14所述的方法,其特征在于,还包括:
在所述第二中间件获取到所述下游测试请求数据后进行截断处理,并从所述测试服务器获取下游服务响应数据作为所述下游测试响应数据;和/或,
在所述第二中间件获取到所述下游重放请求数据后进行截断处理,并从所述测试服务器获取下游服务响应数据作为所述下游重放响应数据。
16.根据权利要求15所述的方法,其特征在于,所述被测试服务包括多个被测试方法,所述测试用例与所述被测试方法对应,所述测试用例、所述测试数据对、所述服务数据对和所述测试请求具有相同的被测服务标识、被测试方法标识和服务请求标识;或者,所述测试用例、所述测试数据对、所述重放数据对、所述服务数据对和所述测试请求具有相同的被测服务标识、被测试方法标识和服务请求标识。
17.一种服务的测试装置,其特征在于,包括:接收模块,生成模块,发送模块和判断模块;
所述接收模块,用于从第一数据库中获取测试用例,所述测试用例包括上游服务请求数据,以及与所述上游服务请求数据对应的服务请求响应范式;
所述生成模块,用于根据所述上游服务请求数据,生成用于测试被测试服务的测试请求;
所述发送模块,用于向在线服务器发送所述测试请求,以由所述在线服务器基于所述测试请求生成测试数据对,所述被测试服务运行在所述在线服务器上;
所述接收模块,还用于接收所述在线服务器发送的所述测试数据对;
所述判断模块,用于判断所述测试数据对是否满足所述服务请求响应范式。
18.一种服务的测试装置,其特征在于,包括:接收模块,生成模块和发送模块;
所述接收模块,用于接收测试服务器发送的用于测试被测试服务的测试请求,所述测试请求是所述测试服务器基于测试用例生成的,所述测试用例包括上游服务请求数据,以及与所述上游服务请求数据对应的服务请求响应范式;
所述生成模块,用于基于所述测试请求生成测试数据对;
所述发送模块,用于向所述测试服务器发送所述测试数据对,以由所述测试服务器判断所述测试数据对是否满足所述服务请求响应范式。
19.一种服务器,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的服务的测试方法,或者如权利要求8-16中任一所述的服务的测试方法。
20.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-16中任一所述的服务的测试方法。
CN201811643754.3A 2018-12-29 2018-12-29 一种服务的测试方法、装置,服务器及存储介质 Active CN111382058B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811643754.3A CN111382058B (zh) 2018-12-29 2018-12-29 一种服务的测试方法、装置,服务器及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811643754.3A CN111382058B (zh) 2018-12-29 2018-12-29 一种服务的测试方法、装置,服务器及存储介质

Publications (2)

Publication Number Publication Date
CN111382058A true CN111382058A (zh) 2020-07-07
CN111382058B CN111382058B (zh) 2024-02-02

Family

ID=71222384

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811643754.3A Active CN111382058B (zh) 2018-12-29 2018-12-29 一种服务的测试方法、装置,服务器及存储介质

Country Status (1)

Country Link
CN (1) CN111382058B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116561013A (zh) * 2023-07-04 2023-08-08 建信金融科技有限责任公司 基于目标服务框架的测试方法、装置、电子设备和介质
CN117724986A (zh) * 2024-02-08 2024-03-19 云账户技术(天津)有限公司 一种在用例执行中自动操作kafka的方法及装置

Citations (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060010426A1 (en) * 2004-07-09 2006-01-12 Smartware Technologies, Inc. System and method for generating optimized test cases using constraints based upon system requirements
US20060174162A1 (en) * 2005-02-03 2006-08-03 Satyam Computer Services Ltd. System and method for self-testing of mobile wireless devices
US7996818B1 (en) * 2006-12-29 2011-08-09 Amazon Technologies, Inc. Method for testing using client specified references
US8001422B1 (en) * 2008-06-30 2011-08-16 Amazon Technologies, Inc. Shadow testing services
WO2011144165A1 (zh) * 2010-11-18 2011-11-24 华为技术有限公司 基于业务递送平台的应用测试方法和业务递送平台
US20110302454A1 (en) * 2010-06-07 2011-12-08 Salesforce.Com, Inc. Performing asynchronous testing of an application occasionally connected to an online services system
CN102622296A (zh) * 2012-02-21 2012-08-01 百度在线网络技术(北京)有限公司 搜索引擎模块的测试方法、系统及其装置
US20140059199A1 (en) * 2012-08-21 2014-02-27 Microsoft Corporation Transaction-level health monitoring of online services
CN103888506A (zh) * 2012-12-20 2014-06-25 国际商业机器公司 提取监控请求-响应对的规则的计算机实现方法和系统
CN104156313A (zh) * 2014-08-12 2014-11-19 南京大学 一种Web服务测试用例自动生成方法
US8977903B1 (en) * 2012-05-08 2015-03-10 Amazon Technologies, Inc. Scalable testing in a production system with autoshutdown
CN104951399A (zh) * 2015-06-19 2015-09-30 北京齐尔布莱特科技有限公司 一种软件测试系统和方法
US20150278523A1 (en) * 2014-03-31 2015-10-01 Intuit Inc. Method and system for testing cloud based applications and services in a production environment using segregated backend systems
CN105224446A (zh) * 2014-05-26 2016-01-06 腾讯科技(深圳)有限公司 一种测试用例筛选方法及装置、服务器
CN105320598A (zh) * 2015-11-24 2016-02-10 广州华多网络科技有限公司 软件测试方法及装置
US9329915B1 (en) * 2012-05-08 2016-05-03 Amazon Technologies, Inc. System and method for testing in a production environment
US9459980B1 (en) * 2013-04-17 2016-10-04 Amazon Technologies, Inc. Varying cluster sizes in a predictive test load while testing a productive system
CN106095688A (zh) * 2016-06-23 2016-11-09 微梦创科网络科技(中国)有限公司 一种软件性能测试方法及装置
US20170024307A1 (en) * 2015-07-21 2017-01-26 Successfactors, Inc. Debugging in a Production Environment
US20170085460A1 (en) * 2015-09-22 2017-03-23 Facebook, Inc. Benchmarking servers based on production data
CN106878108A (zh) * 2017-03-01 2017-06-20 广州唯品会信息科技有限公司 网络流量回放测试方法及装置
CN106886492A (zh) * 2017-02-13 2017-06-23 北京趣拿软件科技有限公司 基于数据回放的测试方法和测试装置
US20170277616A1 (en) * 2016-03-25 2017-09-28 Linkedin Corporation Replay-suitable trace recording by service container
CN107222368A (zh) * 2017-06-29 2017-09-29 北京奇艺世纪科技有限公司 一种数据重放方法及装置
CN107395464A (zh) * 2017-09-11 2017-11-24 北京奇艺世纪科技有限公司 一种服务器测试方法、装置及api网关
US9836388B1 (en) * 2013-09-26 2017-12-05 Amazon Technologies, Inc. Software testing environment that includes a duplicating proxy service
CN107609401A (zh) * 2017-08-03 2018-01-19 百度在线网络技术(北京)有限公司 自动测试方法及装置
US20180173617A1 (en) * 2016-12-20 2018-06-21 Google Inc. System and method for testing program using user interaction replay
CN108319547A (zh) * 2017-01-17 2018-07-24 阿里巴巴集团控股有限公司 测试用例生成方法、装置和系统
CN108388508A (zh) * 2018-01-29 2018-08-10 华南理工大学 一种基于用户会话和层次聚类算法的测试用例选择方法
CN108763071A (zh) * 2018-05-17 2018-11-06 平安科技(深圳)有限公司 一种网页测试方法及终端设备
US20180349254A1 (en) * 2017-05-31 2018-12-06 Oracle International Corporation Systems and methods for end-to-end testing of applications using dynamically simulated data

Patent Citations (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060010426A1 (en) * 2004-07-09 2006-01-12 Smartware Technologies, Inc. System and method for generating optimized test cases using constraints based upon system requirements
US20060174162A1 (en) * 2005-02-03 2006-08-03 Satyam Computer Services Ltd. System and method for self-testing of mobile wireless devices
US7996818B1 (en) * 2006-12-29 2011-08-09 Amazon Technologies, Inc. Method for testing using client specified references
US8001422B1 (en) * 2008-06-30 2011-08-16 Amazon Technologies, Inc. Shadow testing services
US20110302454A1 (en) * 2010-06-07 2011-12-08 Salesforce.Com, Inc. Performing asynchronous testing of an application occasionally connected to an online services system
WO2011144165A1 (zh) * 2010-11-18 2011-11-24 华为技术有限公司 基于业务递送平台的应用测试方法和业务递送平台
CN102622296A (zh) * 2012-02-21 2012-08-01 百度在线网络技术(北京)有限公司 搜索引擎模块的测试方法、系统及其装置
US8977903B1 (en) * 2012-05-08 2015-03-10 Amazon Technologies, Inc. Scalable testing in a production system with autoshutdown
US9329915B1 (en) * 2012-05-08 2016-05-03 Amazon Technologies, Inc. System and method for testing in a production environment
US20140059199A1 (en) * 2012-08-21 2014-02-27 Microsoft Corporation Transaction-level health monitoring of online services
CN103888506A (zh) * 2012-12-20 2014-06-25 国际商业机器公司 提取监控请求-响应对的规则的计算机实现方法和系统
JP2014123198A (ja) * 2012-12-20 2014-07-03 International Business Maschines Corporation リクエストおよびレスポンスのペアを監視するためのルールを抽出するためのコンピュータ実装方法、プログラム、および、システム
US9459980B1 (en) * 2013-04-17 2016-10-04 Amazon Technologies, Inc. Varying cluster sizes in a predictive test load while testing a productive system
US9836388B1 (en) * 2013-09-26 2017-12-05 Amazon Technologies, Inc. Software testing environment that includes a duplicating proxy service
US20150278523A1 (en) * 2014-03-31 2015-10-01 Intuit Inc. Method and system for testing cloud based applications and services in a production environment using segregated backend systems
CN105224446A (zh) * 2014-05-26 2016-01-06 腾讯科技(深圳)有限公司 一种测试用例筛选方法及装置、服务器
CN104156313A (zh) * 2014-08-12 2014-11-19 南京大学 一种Web服务测试用例自动生成方法
CN104951399A (zh) * 2015-06-19 2015-09-30 北京齐尔布莱特科技有限公司 一种软件测试系统和方法
US20170024307A1 (en) * 2015-07-21 2017-01-26 Successfactors, Inc. Debugging in a Production Environment
US20170085460A1 (en) * 2015-09-22 2017-03-23 Facebook, Inc. Benchmarking servers based on production data
CN105320598A (zh) * 2015-11-24 2016-02-10 广州华多网络科技有限公司 软件测试方法及装置
US20170277616A1 (en) * 2016-03-25 2017-09-28 Linkedin Corporation Replay-suitable trace recording by service container
CN106095688A (zh) * 2016-06-23 2016-11-09 微梦创科网络科技(中国)有限公司 一种软件性能测试方法及装置
US20180173617A1 (en) * 2016-12-20 2018-06-21 Google Inc. System and method for testing program using user interaction replay
CN108319547A (zh) * 2017-01-17 2018-07-24 阿里巴巴集团控股有限公司 测试用例生成方法、装置和系统
CN106886492A (zh) * 2017-02-13 2017-06-23 北京趣拿软件科技有限公司 基于数据回放的测试方法和测试装置
CN106878108A (zh) * 2017-03-01 2017-06-20 广州唯品会信息科技有限公司 网络流量回放测试方法及装置
US20180349254A1 (en) * 2017-05-31 2018-12-06 Oracle International Corporation Systems and methods for end-to-end testing of applications using dynamically simulated data
CN107222368A (zh) * 2017-06-29 2017-09-29 北京奇艺世纪科技有限公司 一种数据重放方法及装置
CN107609401A (zh) * 2017-08-03 2018-01-19 百度在线网络技术(北京)有限公司 自动测试方法及装置
CN107395464A (zh) * 2017-09-11 2017-11-24 北京奇艺世纪科技有限公司 一种服务器测试方法、装置及api网关
CN108388508A (zh) * 2018-01-29 2018-08-10 华南理工大学 一种基于用户会话和层次聚类算法的测试用例选择方法
CN108763071A (zh) * 2018-05-17 2018-11-06 平安科技(深圳)有限公司 一种网页测试方法及终端设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
翟亚娟;赵会群;: "Web Service自动化测试方法的研究", 计算机与现代化, no. 08 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116561013A (zh) * 2023-07-04 2023-08-08 建信金融科技有限责任公司 基于目标服务框架的测试方法、装置、电子设备和介质
CN116561013B (zh) * 2023-07-04 2023-09-26 建信金融科技有限责任公司 基于目标服务框架的测试方法、装置、电子设备和介质
CN117724986A (zh) * 2024-02-08 2024-03-19 云账户技术(天津)有限公司 一种在用例执行中自动操作kafka的方法及装置
CN117724986B (zh) * 2024-02-08 2024-05-07 云账户技术(天津)有限公司 一种在用例执行中自动操作kafka的方法及装置

Also Published As

Publication number Publication date
CN111382058B (zh) 2024-02-02

Similar Documents

Publication Publication Date Title
CN111177617A (zh) 基于运维管理系统的web直接运维方法、装置及电子设备
CN107205041B (zh) 音频设备的升级方法、音频设备及智能音箱
CN110362488B (zh) 一种页面测试方法、装置、电子设备及存储介质
CN111367516B (zh) 应用界面生成方法、装置及电子设备
CN109471647B (zh) 一种数据的更新方法、装置、电子设备及可读介质
US20160147633A1 (en) Generation of software test code
US11934287B2 (en) Method, electronic device and computer program product for processing data
CN112597047A (zh) 测试方法、装置、电子设备和计算机可读介质
CN110059064B (zh) 日志文件处理方法、装置和计算机可读存储介质
CN111382058A (zh) 一种服务的测试方法、装置,服务器及存储介质
CN112954056B (zh) 监控数据处理方法、装置、电子设备及存储介质
CN111625291B (zh) 数据处理模型自动迭代方法、装置及电子设备
CN111382057B (zh) 测试用例生成方法,测试方法及装置,服务器及存储介质
CN111382056B (zh) 一种服务的测试方法、装置,服务器及存储介质
CN114925066A (zh) 数据处理方法、装置、电子设备和存储介质
CN111382038B (zh) 上报业务数据的方法、装置、电子设备及存储介质
CN110633182B (zh) 用于监控服务器稳定性的系统、方法和装置
CN111381813B (zh) 前端页面调试方法、装置、计算机设备和存储介质
CN109960659B (zh) 用于检测应用程序的方法和装置
CN108632456B (zh) 信息处理方法及信息处理系统
CN111625326A (zh) 任务管线执行方法、装置及电子设备
CN111273967A (zh) 适用于Android系统的远程钩子设置方法、装置及电子设备
CN111324386A (zh) 分身应用程序的启动方法、装置、电子设备及存储介质
CN112084115B (zh) 软件缺陷的流程化操作方法和装置
US10516767B2 (en) Unifying realtime and static data for presenting over a web service

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
GR01 Patent grant
GR01 Patent grant