CN111382057B - 测试用例生成方法,测试方法及装置,服务器及存储介质 - Google Patents

测试用例生成方法,测试方法及装置,服务器及存储介质 Download PDF

Info

Publication number
CN111382057B
CN111382057B CN201811643733.1A CN201811643733A CN111382057B CN 111382057 B CN111382057 B CN 111382057B CN 201811643733 A CN201811643733 A CN 201811643733A CN 111382057 B CN111382057 B CN 111382057B
Authority
CN
China
Prior art keywords
data
service
test
upstream
service request
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
Application number
CN201811643733.1A
Other languages
English (en)
Other versions
CN111382057A (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 CN201811643733.1A priority Critical patent/CN111382057B/zh
Publication of CN111382057A publication Critical patent/CN111382057A/zh
Application granted granted Critical
Publication of CN111382057B publication Critical patent/CN111382057B/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/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • 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)

Abstract

本公开实施例公开了测试用例生成方法,测试方法及装置,服务器及存储介质。该方法包括:获取被测试服务运行时的多个服务数据对,每个服务数据对包括上游服务请求数据,以及与上游服务请求数据对应的服务请求响应数据;根据与上游服务请求数据对应的服务请求响应数据进行聚类生成服务请求响应范式;生成测试用例,测试用例包括上游服务请求数据,及其对应的服务请求响应范式。本公开实施例公开的技术方案能够生成测试用例,节省了人工输入测试用例的时间,相对传统的人工编写测试用例的方式,覆盖面更广,同时也提高了系统的易用性,降低了维护成本。

Description

测试用例生成方法,测试方法及装置,服务器及存储介质
技术领域
本公开实施例涉及测试技术领域,尤其涉及测试用例生成方法,测试方法及装置,服务器及存储介质。
背景技术
由于目前业务系统上线频繁、业务需求多、迭代周期短,多次出现代码变更容易导致的线上事故,因此需要在上线前对服务进行测试。
现有的对服务进行测试都是根据人工指定的测试用例比较预期输出和实际输出,判断上线的接口是否存在问题。然而,测试用例由人工指定需要耗费大量的人力物力,且可能存在测试用例覆盖不全的情况,导致系统的维护成本过高。
发明内容
本公开实施例提供一种测试用例生成方法,测试方法及装置,服务器及存储介质,能够生成测试用例,节省了人工输入测试用例的时间,相对传统的人工编写测试用例的方式,覆盖面更广,同时也提高了系统的易用性,降低了维护成本。
第一方面,本公开实施例提供了一种测试用例生成方法,包括:
获取被测试服务运行时的多个服务数据对,每个服务数据对包括上游服务请求数据,以及与上游服务请求数据对应的服务请求响应数据;
根据与上游服务请求数据对应的服务请求响应数据进行聚类生成服务请求响应范式;
生成测试用例,测试用例包括上游服务请求数据,及其对应的服务请求响应范式。
可选的,服务请求响应数据包括上游服务响应数据、下游服务请求数据和下游服务响应数据中的至少一种;
根据与上游服务请求数据对应的服务请求响应数据进行聚类生成服务请求响应范式包括如下至少一个:
根据上游服务响应数据进行聚类生成上游服务响应范式;
根据下游服务请求数据进行聚类生成下游服务请求范式;
根据下游服务响应数据进行聚类生成下游服务响应范式。
可选的,还包括:
获取被测试服务执行重放时的重放数据对,每个重放数据对包括上游重放请求数据,以及与上游重放请求数据对应的重放请求响应数据;
根据与上游服务请求数据对应的服务请求响应数据进行聚类生成服务请求响应范式包括:
根据与上游服务请求数据对应的服务请求响应数据,以及与上游重放请求数据对应的重放请求响应数据进行聚类生成服务请求响应范式。
可选的,重放请求响应数据包括上游重放响应数据、下游重放请求数据和下游重放响应数据中的至少一种;
根据上游服务响应数据进行聚类生成上游服务响应范式包括:
根据上游服务响应数据和上游重放响应数据进行聚类生成上游服务响应范式;
根据下游服务请求数据进行聚类生成下游服务请求范式包括:
根据下游服务请求数据和下游重放请求数据进行聚类生成下游服务请求范式;
根据下游服务响应数据进行聚类生成下游服务响应范式包括:
根据下游服务响应数据和下游重返响应数据进行聚类生成下游服务响应范式。
可选的,获取被测试服务运行时的多个服务数据对包括:
从第二数据库中获取服务数据对,服务数据对由在线服务器在被测试服务运行时获取、并发送给第二数据库;
获取被测试服务执行重放时的重放数据对包括:
从第二数据库中获取被测试服务执行重放时的重放数据对,重放数据对由在线服务器在被测试服务执行重放时获取、并发送给第二数据库;或者,
从第二数据库中获取测试服务器发送的被测试服务执行重放时的重放数据对。
可选的,被测试服务包括多个被测试方法,测试用例与被测试方法对应,服务数据对、重放数据对和测试用例均包括相同的被测服务标识、被测试方法标识和服务请求标识。
可选的,根据预设条件执行如下步骤,以获取更新的测试用例:
获取被测试服务运行时的多个服务数据对,每个服务数据对包括上游服务请求数据,以及与上游服务请求数据对应的服务请求响应数据;
根据与上游服务请求数据对应的服务请求响应数据进行聚类生成服务请求响应范式;
生成测试用例,测试用例包括上游服务请求数据,及其对应的服务请求响应范式。
可选的,预设条件为预设时间阈值或者接收到更新指令。
第二方面,本公开实施例提供一种利用如第一方面中任一生成的测试用例进行测试的方法,包括:
根据测试用例中的上游服务请求数据生成用于测试被测试服务的测试请求;
将测试请求发送给运行被测试服务的在线服务器;
接收在线服务器发送的测试数据对,并判断测试数据对是否满足测试用例中的与上游服务请求数据对应的服务请求响应范式。
第三方面,本公开实施例提供了一种测试用例的生成装置,包括:获取模块,聚类模块和生成模块;
获取模块,用于获取被测试服务运行时的多个服务数据对,每个服务数据对包括上游服务请求数据,以及与上游服务请求数据对应的服务请求响应数据;
聚类模块,用于根据与上游服务请求数据对应的服务请求响应数据进行聚类生成服务请求响应范式;
生成模块,用于生成测试用例,测试用例包括上游服务请求数据,及其对应的服务请求响应范式。
可选的,服务请求响应数据包括上游服务响应数据、下游服务请求数据和下游服务响应数据中的至少一种;
聚类模块,具体用于根据上游服务响应数据进行聚类生成上游服务响应范式;和/或,根据下游服务请求数据进行聚类生成下游服务请求范式;和/或,根据下游服务响应数据进行聚类生成下游服务响应范式。
可选的,获取模块,还用于获取被测试服务执行重放时的重放数据对,每个重放数据对包括上游重放请求数据,以及与上游重放请求数据对应的重放请求响应数据;
聚类模块,具体用于根据与上游服务请求数据对应的服务请求响应数据,以及与上游重放请求数据对应的重放请求响应数据进行聚类生成服务请求响应范式。
可选的,重放请求响应数据包括上游重放响应数据、下游重放请求数据和下游重放响应数据中的至少一种;
聚类模块,具体用于根据上游服务响应数据和上游重放响应数据进行聚类生成上游服务响应范式;和/或,根据下游服务请求数据和下游重放请求数据进行聚类生成下游服务请求范式;和/或,根据下游服务响应数据和下游重返响应数据进行聚类生成下游服务响应范式。
可选的,获取模块,具体用于从第二数据库中获取服务数据对,服务数据对由在线服务器在被测试服务运行时获取、并发送给第二数据库;从第二数据库中获取被测试服务执行重放时的重放数据对,重放数据对由在线服务器在被测试服务执行重放时获取、并发送给第二数据库;或者,从第二数据库中获取测试服务器发送的被测试服务执行重放时的重放数据对。
可选的,被测试服务包括多个被测试方法,测试用例与被测试方法对应,服务数据对、重放数据对和测试用例均包括相同的被测服务标识、被测试方法标识和服务请求标识。
可选的,根据预设条件执行如下步骤,以获取更新的测试用例:
获取模块,用于获取被测试服务运行时的多个服务数据对,每个服务数据对包括上游服务请求数据,以及与上游服务请求数据对应的服务请求响应数据;
聚类模块,用于根据与上游服务请求数据对应的服务请求响应数据进行聚类生成服务请求响应范式;
生成模块,用于生成测试用例,测试用例包括上游服务请求数据,及其对应的服务请求响应范式。
可选的,预设条件为预设时间阈值或者接收到更新指令。
第四方面,本公开实施例提供了一种利用如第一方面中任一生成的测试用例进行测试的装置,包括:生成模块,发送模块,接收模块和判断模块;
生成模块,用于根据测试用例中的上游服务请求数据生成用于测试被测试服务的测试请求;
发送模块,用于将测试请求发送给运行被测试服务的在线服务器;
接收模块,用于接收在线服务器发送的测试数据对;
判断模块,用于判断测试数据对是否满足测试用例中的与上游服务请求数据对应的服务请求响应范式。
第五方面,本公开实施例还提供了一种服务器,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中任一的测试用例生成方法。
第六方面,本公开实施例还提供了一种服务器,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第二方面中任一的利用测试用例进行测试的方法。
第七方面,本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面中任一的测试用例生成方法,或者如第二方面中任一的利用测试用例进行测试的方法。
本公开实施例由于在第二数据库中存储了被测试服务运行时的多个服务数据对,使得学习服务器可以根据多个服务数据对自主生成测试用例,以使得测试服务能够利用测试用例对服务进行测试,节省了人工输入测试用例的时间,相对传统的人工编写测试用例的方式,覆盖面更广,同时也提高了系统的易用性,降低了维护成本。
附图说明
图1是本公开实施例提供的一种服务的测试系统的结构示意图;
图2是本公开实施例提供的一种测试用例生成方法的流程示意图;
图3是本公开实施例提供的另一种测试用例生成方法的流程示意图;
图4是本公开实施例提供的一种服务的测试方法的流程示意图;
图5是本公开实施例提供的另一种服务的测试方法的流程示意图;
图6是本公开实施例提供的又一种服务的测试方法的流程示意图;
图7是本公开实施例提供的再一种服务的测试方法的流程示意图;
图8是本公开实施例提供的还一种服务的测试方法的流程示意图;
图9是本公开实施例提供的一种测试用例的生成装置的结构示意图;
图10是本公开实施例提供了一种利用测试用例进行测试的装置的结构示意图;
图11是本公开实施例提供的一种服务器的结构示意图。
具体实施方式
下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本公开,而非对本公开的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本公开相关的部分而非全部结构。
需要说明的是,本公开中术语“系统”和“网络”在本文中常被可互换使用。本公开实施例中提到的“和/或”是指”包括一个或更多个相关所列项目的任何和所有组合。本公开的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于限定特定顺序。
还需要说明是,本公开下述各个实施例可以单独执行,各个实施例之间也可以相互结合执行,本公开实施例对此不作具体限制。
本公开实施例提供一种服务的测试方法、装置,服务器及存储介质,能够根据服务运行时实际数据生成的测试用例对被测试服务进行测试,提高系统的易用性,降低维护成本。
图1为本公开实施例提供的一种服务的测试系统的结构示意图。从图1可以看出,该测试系统分为在线测试部分和离线测试部分;其中,在线测试部分至少包括在线服务器,离线测试部分至少包括测试服务器、学习服务器、线上服务管理平台、第一数据库和第二数据库。
在线服务器可以接收正常的用户流量和测试服务器发送的测试流量。在线服务器中装载有第一中间件和第二中间件,第一中间件和第二中间件是一种插件,其中,第一中间件负责收集被测试服务的输入和输出,第二中间件负责收集上线被测试服务调用rpc依赖和非rpc服务时的输入和输出,第一中间件和第二中间件收集到的输入和输出均可以通过Databus发送至该测试系统的离线测试部分。上述第一中间件和第二中间件在检测到被测试服务在处于小流量环境时自动开启式,或者,也可以进一步的给第一中间件和第二中间件增加一个启动开关,并由外部管理平台控制开启与关闭。具体的,rpc依赖是一种采用kite框架开发的上游服务,Databus是一个低延迟、可靠的、支持事务的、保持一致性的数据变更抓取系统。
第一数据库中存储有测试用例。测试用例是学习服务器从第二数据库中获取到的多个服务数据对聚类生成的,或者是学习服务器从第二数据库中获取到的多个服务数据对以及多个重放数据对共同聚类生成的。线上服务管理平台用于向测试服务器发送线上服务测试指令,以使得测试服务器向在线服务器发送用于测试被测试服务的测试请求。其中,第二数据库中可以包括用于处理数据的Kafka和用于存储数据的Redis,具体的,Kafka是一个开源流处理平台,由Scala和Java编写,是一种高吞吐量的分布式发布订阅消息系统,可以处理消费者规模的网站中的所有动作流数据;Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、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。
获取模块10,用于获取被测试服务运行时的多个服务数据对,每个服务数据对包括上游服务请求数据,以及与上游服务请求数据对应的服务请求响应数据;
聚类模块11,用于根据与上游服务请求数据对应的服务请求响应数据进行聚类生成服务请求响应范式;
生成模块12,用于生成测试用例,测试用例包括上游服务请求数据,及其对应的服务请求响应范式。
可选的,服务请求响应数据包括上游服务响应数据、下游服务请求数据和下游服务响应数据中的至少一种;
聚类模块11,具体用于根据上游服务响应数据进行聚类生成上游服务响应范式;和/或,根据下游服务请求数据进行聚类生成下游服务请求范式;和/或,根据下游服务响应数据进行聚类生成下游服务响应范式。
可选的,获取模块10,还用于获取被测试服务执行重放时的重放数据对,每个重放数据对包括上游重放请求数据,以及与上游重放请求数据对应的重放请求响应数据;
聚类模块11,具体用于根据与上游服务请求数据对应的服务请求响应数据,以及与上游重放请求数据对应的重放请求响应数据进行聚类生成服务请求响应范式。
可选的,重放请求响应数据包括上游重放响应数据、下游重放请求数据和下游重放响应数据中的至少一种;
聚类模块11,具体用于根据上游服务响应数据和上游重放响应数据进行聚类生成上游服务响应范式;和/或,根据下游服务请求数据和下游重放请求数据进行聚类生成下游服务请求范式;和/或,根据下游服务响应数据和下游重返响应数据进行聚类生成下游服务响应范式。
可选的,获取模块10,具体用于从第二数据库中获取服务数据对,服务数据对由在线服务器在被测试服务运行时获取、并发送给第二数据库;从第二数据库中获取被测试服务执行重放时的重放数据对,重放数据对由在线服务器在被测试服务执行重放时获取、并发送给第二数据库;或者,从第二数据库中获取测试服务器发送的被测试服务执行重放时的重放数据对。
可选的,被测试服务包括多个被测试方法,测试用例与被测试方法对应,服务数据对、重放数据对和测试用例均包括相同的被测服务标识、被测试方法标识和服务请求标识。
可选的,根据预设条件执行如下步骤,以获取更新的测试用例:
获取模块10,用于获取被测试服务运行时的多个服务数据对,每个服务数据对包括上游服务请求数据,以及与上游服务请求数据对应的服务请求响应数据;
聚类模块11,用于根据与上游服务请求数据对应的服务请求响应数据进行聚类生成服务请求响应范式;
生成模块12,用于生成测试用例,测试用例包括上游服务请求数据,及其对应的服务请求响应范式。
可选的,预设条件为预设时间阈值或者接收到更新指令。
本公开实施例提供的以上测试用例的生成装置,可执行本公开方法实施例所提供的测试用例生成方法中学习服务器所执行的步骤,具备执行方法相应的功能模块和有益效果。
图10为本公开实施例提供了一种利用测试用例进行测试的装置的结构示意图,具体的,该装置可以配置于测试服务器中,包括:生成模块20,发送模块21,接收模块22和判断模块23。
生成模块20,用于根据测试用例中的上游服务请求数据生成用于测试被测试服务的测试请求;
发送模块21,用于将测试请求发送给运行被测试服务的在线服务器;
接收模块22,用于接收在线服务器发送的测试数据对;
判断模块23,用于判断测试数据对是否满足测试用例中的与上游服务请求数据对应的服务请求响应范式。
本公开实施例提供的以上利用测试用例进行测试的装置,可执行本公开方法实施例所提供的利用测试用例进行测试的方法中测试服务器所执行的步骤,具备执行方法相应的功能模块和有益效果。
图11为本公开实施例提供的一种服务器的结构示意图,如图11所示,其示出了适于用来实现本公开实施例的服务器的结构示意图。图11示出的服务器仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图11所示,服务器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与其他设备进行无线或有线通信以交换数据。虽然图11示出了具有各种装置的服务器800,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置从网络上被下载和安装,或者从存储器被安装。在该计算机程序被处理器30执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取被测试服务运行时的多个服务数据对,每个服务数据对包括上游服务请求数据,以及与上游服务请求数据对应的服务请求响应数据;根据与上游服务请求数据对应的服务请求响应数据进行聚类生成服务请求响应范式;生成测试用例,测试用例包括上游服务请求数据,及其对应的服务请求响应范式。
或者,上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:根据测试用例中的上游服务请求数据生成用于测试被测试服务的测试请求;将测试请求发送给运行被测试服务的在线服务器;接收在线服务器发送的测试数据对,并判断测试数据对是否满足测试用例中的与上游服务请求数据对应的服务请求响应范式。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该模块本身的限定,例如,获取模块10还可以被描述为“获取被测试服务运行时的多个服务数据对的模块”。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (12)

1.一种测试用例生成方法,其特征在于,所述方法适用于学习服务器,包括:
获取被测试服务运行时的多个服务数据对,每个所述服务数据对包括上游服务请求数据,以及与所述上游服务请求数据对应的服务请求响应数据;
根据与所述上游服务请求数据对应的所述服务请求响应数据进行聚类生成服务请求响应范式;
生成测试用例,所述测试用例包括所述上游服务请求数据,及其对应的服务请求响应范式,所述测试用例由测试服务器利用来生成测试请求对服务进行测试;
获取所述被测试服务执行重放时的重放数据对,每个所述重放数据对包括上游重放请求数据,以及与所述上游重放请求数据对应的重放请求响应数据;
所述根据与所述上游服务请求数据对应的所述服务请求响应数据进行聚类生成服务请求响应范式包括:
根据与所述上游服务请求数据对应的所述服务请求响应数据,以及与所述上游重放请求数据对应的所述重放请求响应数据进行聚类生成服务请求响应范式。
2.根据权利要求1所述的方法,其特征在于,所述服务请求响应数据包括上游服务响应数据、下游服务请求数据和下游服务响应数据中的至少一种;
所述根据与所述上游服务请求数据对应的所述服务请求响应数据进行聚类生成服务请求响应范式包括如下至少一个:
根据所述上游服务响应数据进行聚类生成上游服务响应范式;
根据所述下游服务请求数据进行聚类生成下游服务请求范式;
根据所述下游服务响应数据进行聚类生成下游服务响应范式。
3.根据权利要求2所述的方法,其特征在于,所述重放请求响应数据包括上游重放响应数据、下游重放请求数据和下游重放响应数据中的至少一种;
所述根据所述上游服务响应数据进行聚类生成上游服务响应范式包括:
根据所述上游服务响应数据和所述上游重放响应数据进行聚类生成所述上游服务响应范式;
所述根据所述下游服务请求数据进行聚类生成下游服务请求范式包括:
根据所述下游服务请求数据和所述下游重放请求数据进行聚类生成所述下游服务请求范式;
所述根据所述下游服务响应数据进行聚类生成下游服务响应范式包括:
根据所述下游服务响应数据和所述下游重放响应数据进行聚类生成所述下游服务响应范式。
4.根据权利要求1所述的方法,其特征在于,所述获取被测试服务运行时的多个服务数据对包括:
从第二数据库中获取所述服务数据对,所述服务数据对由在线服务器在所述被测试服务运行时获取、并发送给所述第二数据库;
所述获取所述被测试服务执行重放时的重放数据对包括:
从第二数据库中获取所述被测试服务执行重放时的重放数据对,所述重放数据对由所述在线服务器在所述被测试服务执行重放时获取、并发送给所述第二数据库;或者,
从第二数据库中获取测试服务器发送的所述被测试服务执行重放时的重放数据对。
5.根据权利要求4所述的方法,其特征在于,所述被测试服务包括多个被测试方法,所述测试用例与所述被测试方法对应,所述服务数据对、所述重放数据对和所述测试用例均包括相同的被测服务标识、被测试方法标识和服务请求标识。
6.根据权利要求1所述的方法,其特征在于,根据预设条件执行如下步骤,以获取更新的测试用例:
获取被测试服务运行时的多个服务数据对,每个所述服务数据对包括上游服务请求数据,以及与所述上游服务请求数据对应的服务请求响应数据;
根据与所述上游服务请求数据对应的所述服务请求响应数据进行聚类生成服务请求响应范式;
生成测试用例,所述测试用例包括所述上游服务请求数据,及其对应的服务请求响应范式。
7.根据权利要求6所述的方法,其特征在于,所述预设条件为预设时间阈值或者接收到更新指令。
8.一种利用权利要求1-7中任一生成的测试用例进行测试的方法,其特征在于,所述方法适用于测试服务器,包括:
根据测试用例中的上游服务请求数据生成用于测试被测试服务的测试请求;
将所述测试请求发送给运行所述被测试服务的在线服务器;
接收所述在线服务器发送的测试数据对,并判断所述测试数据对是否满足所述测试用例中的与所述上游服务请求数据对应的服务请求响应范式;
所述方法还包括:
根据上游服务请求数据,生成并向所述在线服务器发送重放请求,以由所述在线服务器基于所述重放请求生成重放数据对,所述重放数据对包括上游重放请求数据,以及与所述上游重放请求数据对应的重放请求响应数据;
接收所述在线服务器发送的所述重放数据对;
所述测试用例中的与所述上游服务请求数据对应的服务请求响应范式,是学习服务器根据与所述上游服务请求数据对应的服务请求响应数据,以及与所述上游重放请求数据对应的所述重放请求响应数据进行聚类生成的。
9.一种测试用例的生成装置,其特征在于,所述装置配置于学习服务器中,包括:获取模块,聚类模块和生成模块;
所述获取模块,用于获取被测试服务运行时的多个服务数据对,每个所述服务数据对包括上游服务请求数据,以及与所述上游服务请求数据对应的服务请求响应数据;
所述获取模块,还用于获取被测试服务执行重放时的重放数据对,每个重放数据对包括上游重放请求数据,以及与上游重放请求数据对应的重放请求响应数据;
所述聚类模块,用于根据与所述上游服务请求数据对应的所述服务请求响应数据进行聚类生成服务请求响应范式;
所述聚类模块,具体用于根据与所述上游服务请求数据对应的所述服务请求响应数据,以及与所述上游重放请求数据对应的重放请求响应数据进行聚类生成服务请求响应范式;
所述生成模块,用于生成测试用例,所述测试用例包括所述上游服务请求数据,及其对应的服务请求响应范式,所述测试用例由测试服务器利用来生成测试请求对服务进行测试。
10.一种利用权利要求1-7中任一生成的测试用例进行测试的装置,其特征在于,所述装置配置于测试服务器中,包括:生成模块,发送模块,接收模块和判断模块;
所述生成模块,用于根据测试用例中的上游服务请求数据生成用于测试被测试服务的测试请求;
所述生成模块,还用于根据所述上游服务请求数据,生成对应的重放请求;所述发送模块,用于将所述测试请求发送给运行所述被测试服务的在线服务器;
所述发送模块,还用于将所述重放请求发送给所述在线服务器;
所述接收模块,用于接收所述在线服务器发送的测试数据对;
所述接收模块,还用于接收所述在线服务器发送的重放数据对,所述重放数据对包括上游重放请求数据,以及与所述上游重放请求数据对应的重放请求响应数据;
所述判断模块,用于判断所述测试数据对是否满足所述测试用例中的与所述上游服务请求数据对应的服务请求响应范式;
所述测试用例中的与所述上游服务请求数据对应的服务请求响应范式,是学习服务器根据与所述上游服务请求数据对应的服务请求响应数据,以及与所述上游重放请求数据对应的所述重放请求响应数据进行聚类生成的。
11.一种服务器,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的测试用例生成方法,或者如权利要求8所述的利用权利要求1-7中任一生成的测试用例进行测试的方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-7中任一所述的测试用例生成方法,或者如权利要求8所述的利用权利要求1-7中任一生成的测试用例进行测试的方法。
CN201811643733.1A 2018-12-29 2018-12-29 测试用例生成方法,测试方法及装置,服务器及存储介质 Active CN111382057B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811643733.1A CN111382057B (zh) 2018-12-29 2018-12-29 测试用例生成方法,测试方法及装置,服务器及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811643733.1A CN111382057B (zh) 2018-12-29 2018-12-29 测试用例生成方法,测试方法及装置,服务器及存储介质

Publications (2)

Publication Number Publication Date
CN111382057A CN111382057A (zh) 2020-07-07
CN111382057B true CN111382057B (zh) 2024-02-02

Family

ID=71216712

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811643733.1A Active CN111382057B (zh) 2018-12-29 2018-12-29 测试用例生成方法,测试方法及装置,服务器及存储介质

Country Status (1)

Country Link
CN (1) CN111382057B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114328172A (zh) * 2020-10-09 2022-04-12 腾讯科技(深圳)有限公司 一种服务测试方法、装置、计算机设备和存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102004691A (zh) * 2010-11-12 2011-04-06 中兴通讯股份有限公司 执行测试用例的方法及系统
CN103888506A (zh) * 2012-12-20 2014-06-25 国际商业机器公司 提取监控请求-响应对的规则的计算机实现方法和系统
US8990778B1 (en) * 2012-09-14 2015-03-24 Amazon Technologies, Inc. Shadow test replay service
CN104965784A (zh) * 2015-06-16 2015-10-07 广州华多网络科技有限公司 自动测试方法及装置
US9459980B1 (en) * 2013-04-17 2016-10-04 Amazon Technologies, Inc. Varying cluster sizes in a predictive test load while testing a productive system
CN107395420A (zh) * 2017-07-26 2017-11-24 携程计算机技术(上海)有限公司 服务端性能测试方法、系统、电子装置及存储介质
CN107609401A (zh) * 2017-08-03 2018-01-19 百度在线网络技术(北京)有限公司 自动测试方法及装置
CN107766250A (zh) * 2017-11-02 2018-03-06 百度在线网络技术(北京)有限公司 广告样式的测试方法、装置、服务器和存储介质
CN107769836A (zh) * 2017-09-13 2018-03-06 长光卫星技术有限公司 卫星通用自动化测试平台及其数据交互方法
CN108897691A (zh) * 2018-06-29 2018-11-27 百度在线网络技术(北京)有限公司 基于接口模拟服务的数据处理方法、装置、服务器和介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9977821B2 (en) * 2014-11-26 2018-05-22 Wipro Limited Method and system for automatically generating a test artifact
US10372596B2 (en) * 2017-03-24 2019-08-06 International Business Machines Corporation Distributed system test device

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102004691A (zh) * 2010-11-12 2011-04-06 中兴通讯股份有限公司 执行测试用例的方法及系统
US8990778B1 (en) * 2012-09-14 2015-03-24 Amazon Technologies, Inc. Shadow test replay service
CN103888506A (zh) * 2012-12-20 2014-06-25 国际商业机器公司 提取监控请求-响应对的规则的计算机实现方法和系统
US9459980B1 (en) * 2013-04-17 2016-10-04 Amazon Technologies, Inc. Varying cluster sizes in a predictive test load while testing a productive system
CN104965784A (zh) * 2015-06-16 2015-10-07 广州华多网络科技有限公司 自动测试方法及装置
CN107395420A (zh) * 2017-07-26 2017-11-24 携程计算机技术(上海)有限公司 服务端性能测试方法、系统、电子装置及存储介质
CN107609401A (zh) * 2017-08-03 2018-01-19 百度在线网络技术(北京)有限公司 自动测试方法及装置
CN107769836A (zh) * 2017-09-13 2018-03-06 长光卫星技术有限公司 卫星通用自动化测试平台及其数据交互方法
CN107766250A (zh) * 2017-11-02 2018-03-06 百度在线网络技术(北京)有限公司 广告样式的测试方法、装置、服务器和存储介质
CN108897691A (zh) * 2018-06-29 2018-11-27 百度在线网络技术(北京)有限公司 基于接口模拟服务的数据处理方法、装置、服务器和介质

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Web服务测试研究;白晓颖;赵冲冲;戴桂兰;;计算机科学(第02期);全文 *
应用服务器Parlay API接口测试平台的设计与实现;熊文剑, 邹华, 杨放春;高技术通讯(第07期);全文 *
服务接口测试自动化工具的研究;卓欣欣;白晓颖;许静;李恩鹏;刘喻;康介恢;宋文莉;;计算机研究与发展(第02期);全文 *
生产原型交易回放测试设计及实践;曾立环;;中国金融电脑(第05期);全文 *

Also Published As

Publication number Publication date
CN111382057A (zh) 2020-07-07

Similar Documents

Publication Publication Date Title
CN109582310B (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
CN111177617A (zh) 基于运维管理系统的web直接运维方法、装置及电子设备
CN110865898B (zh) 崩溃调用栈聚合的方法、装置、介质和设备
CN108337314B (zh) 分布式系统、用于主服务器的信息处理方法和装置
CN111367516B (zh) 应用界面生成方法、装置及电子设备
CN110390493B (zh) 任务管理方法、装置、存储介质及电子设备
CN110389796A (zh) 编辑操作处理方法、装置及电子设备
CN111382058B (zh) 一种服务的测试方法、装置,服务器及存储介质
CN110059064B (zh) 日志文件处理方法、装置和计算机可读存储介质
CN112954056B (zh) 监控数据处理方法、装置、电子设备及存储介质
CN111382057B (zh) 测试用例生成方法,测试方法及装置,服务器及存储介质
CN111274104B (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
CN111382056B (zh) 一种服务的测试方法、装置,服务器及存储介质
CN111273967A (zh) 适用于Android系统的远程钩子设置方法、装置及电子设备
CN111241368B (zh) 数据处理方法、装置、介质和设备
CN111625326B (zh) 任务管线执行方法、装置及电子设备
CN112084115B (zh) 软件缺陷的流程化操作方法和装置
CN114925066A (zh) 数据处理方法、装置、电子设备和存储介质
CN110633182B (zh) 用于监控服务器稳定性的系统、方法和装置
CN109614137B (zh) 软件版本控制方法、装置、设备和介质
CN111381813B (zh) 前端页面调试方法、装置、计算机设备和存储介质
CN111324386A (zh) 分身应用程序的启动方法、装置、电子设备及存储介质
CN112306516B (zh) 用于更新代码的方法和装置
CN111641692B (zh) 会话数据处理方法、装置及电子设备
CN111857879B (zh) 数据处理方法、装置、电子设备和计算机可读介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant