CN113377668A - 服务接口的自动化测试方法、装置和计算机设备 - Google Patents
服务接口的自动化测试方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN113377668A CN113377668A CN202110725638.1A CN202110725638A CN113377668A CN 113377668 A CN113377668 A CN 113377668A CN 202110725638 A CN202110725638 A CN 202110725638A CN 113377668 A CN113377668 A CN 113377668A
- Authority
- CN
- China
- Prior art keywords
- service
- test
- interface
- information
- parameters
- 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.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 387
- 238000000034 method Methods 0.000 claims abstract description 43
- 238000012545 processing Methods 0.000 claims abstract description 20
- 238000013515 script Methods 0.000 claims description 41
- 238000004590 computer program Methods 0.000 claims description 25
- 230000002159 abnormal effect Effects 0.000 claims description 13
- 230000006870 function Effects 0.000 claims description 13
- 230000001960 triggered effect Effects 0.000 claims description 12
- 238000010998 test method Methods 0.000 abstract description 3
- 239000003795 chemical substances by application Substances 0.000 description 11
- 230000008569 process Effects 0.000 description 10
- 238000013468 resource allocation Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 8
- 230000003993 interaction Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 2
- 238000007619 statistical method Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test 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
技术领域
本申请涉及自动化测试技术领域,特别是涉及一种服务接口的自动化测试方法、装置、计算机设备和存储介质。
背景技术
自动化测试是软件工程领域中一个非常重要的环节,是保证系统能否成功上线的关键步骤。目前一些软件产品迭代快、功能较多、测试人力少,无法满足软件产品的每个版本的全场景测试。鉴于现有人力及自动化技术考虑,可实现接口自动化,用于回归测试,既可确保版本全场景接口测试,又可减少测试工作量,提升测试效率。
传统的测试工具在实现接口的自动化测试时,只能接收输入的协议请求参数,并不支持动态加载Jar包。然而,当前服务接口的部分接口参数的参数类型为结构体类型,结构体类型的接口参数需要引入参数Jar包。因此,传统的测试工具无法实现服务接口的自动化测试。
发明内容
基于此,有必要针对上述技术问题,提供一种能够应用于服务接口的接口参数包括结构体类型的参数的服务接口的自动化测试方法、装置、计算机设备和存储介质。
一种服务接口的自动化测试方法,包括:接收服务接口的测试请求,从测试请求中获取服务接口的标识信息;根据标识信息获取服务接口的测试案例、测试案例的案例参数、测试环境信息以及服务调用方的标识码;根据测试环境信息以及服务调用方的标识码获取服务接口的配置项信息;根据测试案例、案例参数以及测试环境信息向服务提供方发送服务调用请求,以对服务接口进行接口测试;当接收到服务提供方反馈的服务数据时,根据配置项信息处理服务数据。
在其中一个实施例中,一种服务接口的自动化测试方法,还包括:当接收到服务提供方反馈的服务调用失败的异常信息时,存储异常信息。
在其中一个实施例中,根据测试环境信息以及服务调用方的标识码获取服务接口的配置项信息,包括:从测试环境信息中获取环境变量值;根据环境变量值和服务调用方的标识码加载服务配置文件;从服务配置文件中获取配置参数;根据配置参数从资源配置平台获取服务接口的配置项信息。
在其中一个实施例中,配置参数包括资源配置平台的地址信息以及权限密钥,根据配置参数从资源配置平台获取服务接口的配置项信息,包括:根据资源配置平台的地址信息连接资源配置平台;根据权限密钥以及服务调用方的标识码登录资源配置平台;从资源配置平台获取服务接口的配置项信息。
在其中一个实施例中,一种服务接口的自动化测试方法,还包括:获取环境变量值对应的服务提供方列表;根据负载均衡策略从服务提供方列表中确定出服务提供方。
在其中一个实施例中,根据测试案例、案例参数以及测试环境信息向服务提供方发送服务调用请求,包括:从测试环境信息中获取服务提供方的地址信息;创建服务代理对象;调用服务代理对象中的调用函数,并根据测试案例、测试案例的案例参数以及服务提供方的地址信息向服务提供方发送服务调用请求。
在其中一个实施例中,一种服务接口的自动化测试方法,还包括:设置定时任务的自动化脚本,自动化脚本中包含执行服务接口的自动化测试时间;运行自动化脚本,以使得在自动化测试时间触发服务接口的测试脚本;当服务接口的测试脚本被触发时,进入根据标识信息获取服务接口的接口参数的步骤。
一种服务接口的自动化测试装置,包括:第一获取模块,用于接收服务接口的测试请求,从测试请求中获取服务接口的标识信息;第二获取模块,用于根据标识信息获取服务接口的接口参数,接口参数包括服务接口的测试案例、测试案例的案例参数、测试环境信息以及服务调用方的标识码;第三获取模块,用于根据测试环境信息以及服务调用方的标识码获取服务接口的配置项信息;测试模块,用于根据测试案例、案例参数以及测试环境信息向服务提供方发送服务调用请求,以对服务接口进行接口测试;处理模块,用于当接收到服务提供方反馈的服务数据时,根据配置项信息处理服务数据。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一实施例方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例方法的步骤。
上述服务接口的自动化测试方法、装置、计算机设备和存储介质,接收服务接口的测试请求,从测试请求中获取服务接口的标识信息,根据标识信息获取服务接口的测试案例、测试案例的案例参数、测试环境信息以及服务调用方的标识码,根据测试环境信息以及服务调用方的标识码获取服务接口的配置项信息,根据测试案例、案例参数以及测试环境信息向服务提供方发送服务调用请求,以对服务接口进行接口测试;当接收到服务提供方反馈的服务数据时,根据配置项信息处理服务数据。
因此,自动化测试平台将接口测试的逻辑代码进行封装,得到测试案例。当需要进行服务接口的接口测试时,自动化测试平台通过服务接口的标识信息获取接口测试的相关参数,如测试案例的案例参数、测试环境信息以及服务调用方的标识码等,进而根据相关参数和测试案例实现服务接口的接口测试。由于将接口测试的逻辑代码与接口测试的相关参数进行分离配置,自动化测试平台对接口测试的相关参数的参数类型没有限定,当相关参数为结构体参数时,自动化测试平台仍可根据相关参数和测试案例实现服务接口的接口测试,克服了传统测试工具无法支持结构体参数的服务接口的自动化接口测试的技术问题。
附图说明
图1为一个实施例中一种服务接口的自动化测试方法的应用环境图;
图2为一个实施例中一种服务接口的自动化测试方法的流程示意图;
图3为一个实施例中一种服务接口的自动化测试的定时任务的处理流程示意图;
图4为一个实施例中自动化测试平台的系统架构图;
图5为另一个实施例中一种服务接口的自动化测试方法的流程示意图;
图6为一个实施例中一种服务接口的自动化测试装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的一种服务接口的自动化测试方法,应用于如图1所示的应用环境中。自动化测试平台10用于实现本申请的一种服务接口的自动化测试方法。自动化测试平台10中设置有数据库104和服务器集群102。数据库104用于存储服务接口的接口参数。服务器集群102用于执行服务接口的自动化测试。用户通过终端30配置服务接口的接口参数。自动化测试平台10从终端30采集到服务接口的接口参数后,将接口参数存储到数据库104。其中,接口参数包括测试案例的案例参数,案例参数包括系统名、接口名称、请求方式、服务契约、实现编码、协议类型、方法名、参数列表等。当自动化测试平台10接收到服务接口的测试请求时,从测试请求中获取服务接口的标识信息,根据标识信息从数据库104中获取服务接口的测试案例、测试案例的案例参数、测试环境信息以及服务调用方的标识码,根据测试环境信息以及服务调用方的标识码获取服务接口的配置项信息;根据测试案例、测试案例的案例参数以及测试环境信息向服务提供方20发送服务调用请求,以对服务接口进行接口测试;当接收到服务提供方20反馈的服务数据时,根据配置项信息处理服务数据。因此,实现了服务接口的自动化测试。
在一个实施例中,如图2所示,提供了一种服务接口的自动化测试方法,以该方法应用于图1中的自动化测试平台10为例进行说明,包括以下步骤:
S202,接收服务接口的测试请求,从测试请求中获取服务接口的标识信息。
本实施例中,自动化测试平台为服务接口配置标识信息,标识信息用于唯一标识出服务接口。此外,自动化测试平台中与服务接口的接口测试相关的数据信息均与标识信息绑定,自动化测试平台通过标识信息能够获取到与服务接口相关的数据信息。与服务接口的接口测试相关的数据信息包括服务接口的测试案例可执行状态、测试环境、测试案例的案例参数和appcode。appcode:服务调用方的标识码。服务接口可以是RSF接口。RSF:Remote service framework,是一个基于JAVA构建的相互交换的远程分布式服务框架。
当自动化测试平台接收到服务接口的测试请求时,从测试请求中解析出服务接口的标识信息。其中,标识信息可以是服务接口的接口名称或者服务接口的Id。Id:Identitydocument,身份证标识号。
S204,根据标识信息获取服务接口的测试案例、测试案例的案例参数、测试环境信息以及服务调用方的标识码。
本实施例中,自动化测试平台的数据库存储有服务接口的测试案例、测试案例的案例参数、测试环境信息以及服务调用方的标识码。案例参数包括系统名、接口名称、请求方式、服务契约、实现编码、协议类型、方法名、参数列表等。自动化测试平台的服务器集群根据标识信息能够从数据库中获取服务接口的测试案例、测试案例的案例参数、测试环境信息以及服务调用方的标识码。
具体地,标识信息为服务接口的Id。自动化测试平台的数据库在存储与服务接口的相关的数据信息时,以服务接口的Id作为主键,通过服务接口的Id从数据库读取服务接口的测试案例、测试案例的案例参数、测试环境信息以及服务调用方的标识码。
S206,根据测试环境信息以及服务调用方的标识码获取服务接口的配置项信息。
本实施例中,服务接口的配置项信息用于在对服务接口进行接口测试时对服务提供方反馈的服务数据进行数据处理配置。配置项信息可以包括日志配置信息以及服务数据的缓存配置信息。日志配置信息包括服务数据的输出等级信息、输出字段信息以及日志保留时长信息。缓存配置信息包括服务提供方反馈的服务数据中用于缓存的服务数据的数据类型信息。
不同测试环境下不同服务调用方,其配置项信息都不相同。自动化测试平台根据测试环境信息以及服务调用方的标识码获取服务接口的配置项信息。可以是,服务接口的配置项信息存储在服务配置平台中,自动化测试平台根据测试环境信息以及服务调用方的标识码访问服务配置平台,以获取服务接口的配置项信息。
S208,根据测试案例、案例参数以及测试环境信息向服务提供方发送服务调用请求,以对服务接口进行接口测试。
本实施例中,案例参数可以是业务参数。如,案例参数包括系统名、接口名称、请求方式、服务契约、实现编码、协议类型、方法名、参数列表等。将案例参数输入测试案例中,运行测试案例,可自动化实现服务接口的接口测试。此外,测试环境信息中包含服务提供方的地址信息,自动化测试平台通过测试环境信息可以与服务提供方建立通信连接。进而,基于测试案例向服务提供方发送服务调用请求,以对服务接口进行接口测试。
S210,当接收到服务提供方反馈的服务数据时,根据配置项信息处理服务数据。
本实施例中,在执行服务接口的接口测试时,主要对服务调用方与服务提供方之间的数据交互进行测试。接口测试的测试结果包括服务调用方与服务提供方之间的数据交互。因此,当接收到服务提供方反馈的服务数据时,自动化测试平台根据配置项信息处理服务数据。如,从服务提供方反馈的服务数据中筛选出配置项信息对应的服务数据,并将配置项信息对应的服务数据进行缓存,以实现基于缓存的服务数据检测服务接口的接口测试情况。
上述服务接口的自动化测试方法、装置、计算机设备和存储介质,接收服务接口的测试请求,从测试请求中获取服务接口的标识信息,根据标识信息获取服务接口的测试案例、测试案例的案例参数、测试环境信息以及服务调用方的标识码,根据测试环境信息以及服务调用方的标识码获取服务接口的配置项信息,根据测试案例、案例参数以及测试环境信息向服务提供方发送服务调用请求,以对服务接口进行接口测试;当接收到服务提供方反馈的服务数据时,根据配置项信息处理服务数据。因此,自动化测试平台将接口测试的逻辑代码进行封装,得到测试案例。当需要进行服务接口的接口测试时,自动化测试平台通过服务接口的标识信息获取接口测试的相关参数,如测试案例的案例参数、测试环境信息以及服务调用方的标识码等,进而根据相关参数和测试案例实现服务接口的接口测试。由于将接口测试的逻辑代码与接口测试的相关参数进行分离配置,自动化测试平台对接口测试的相关参数的参数类型没有限定,当相关参数为结构体参数时,自动化测试平台仍可根据相关参数和测试案例实现服务接口的接口测试,克服了传统测试工具无法支持结构体参数的服务接口的自动化接口测试的技术问题。
在一个实施例中,上述根据测试案例、案例参数以及测试环境信息向服务提供方发送服务调用请求的步骤之后,还包括:当接收到服务提供方反馈的服务调用失败的异常信息时,存储异常信息。
该实施例中,在执行服务接口的接口测试时,若服务调用方与服务提供方之间通过服务接口的数据交互正常,则服务提供方向服务调用方反馈服务数据。反之,若服务调用方与服务提供方之间不能通过服务接口进行正常的数据交互,则服务提供方向服务调用方反馈服务调用失败的异常信息,服务调用方存储异常信息。因此,当对服务接口进行接口测试时,根据配置项信息处理服务提供方反馈的服务数据,或存储服务提供方反馈的服务调用失败的异常信息,从而能够完整记录服务接口的接口测试结果。
在一个实施例中,上述根据测试环境信息以及服务调用方的标识码获取服务接口的配置项信息,包括:从测试环境信息中获取环境变量值;根据环境变量值和服务调用方的标识码加载服务配置文件;从服务配置文件中获取配置参数;根据配置参数从资源配置平台获取服务接口的配置项信息。
该实施例中,测试环境信息中包含环境变量值。不同的环境变量值用于区分不同的测试环境,不同测试环境对应不同的网段和路由规则。例如,环境变量值表示逻辑机房,通过环境变量值能够识别出对应的逻辑机房。服务调用方的标识码用于唯一标识出服务调用方。服务配置文件中存储有配置参数,配置参数用于识别出对应的资源配置平台以及从资源配置平台获取服务接口的配置项信息。
一般地,不同的环境变量值和不同的服务调用方的标识码,其所对应的服务配置文件也不一样。自动化测试平台中存储有大量的服务配置文件,在执行服务接口的自动化测试时,根据对应环境变量值和服务调用方的标识码获取对应的服务配置文件,最终基于对应的服务配置文件中的配置参数从资源配置平台获取服务接口的配置项信息。因此,可实现自动化测试平台的多个服务接口以及多平台的自动化测试。
在一个实施例中,配置参数包括资源配置平台的地址信息以及权限密钥。上述根据配置参数从资源配置平台获取服务接口的配置项信息,包括:根据资源配置平台的地址信息连接资源配置平台;根据权限密钥以及服务调用方的标识码登录资源配置平台;从资源配置平台获取服务接口的配置项信息。
该实施例中,资源配置平台的地址信息可以包括一个或多个地址信息,地址信息的数量具体取决于资源配置平台的系统属性。例如,配置参数包括zkServer、scmServer和secretKey。其中,zkServer为zookeeper集群的服务器地址。zookeeper集群为资源配置平台。zookeeper是一个分布式的、开放源码的分布式应用程序协调服务。scmServer配置服务域名,用于远程操作scm配置。scm:Software Configuration Management,软件配置管理。zkServer和scmServer均表示地址信息,两者都可以获取配置服务,两者区别在于应用端的snf-scm-client版本,snf-scm-client版本>=2.2.0不用配置zkServer,而是从scmServer服务端自动获取配置服务,可在scm.properties中删除zkServer属性;snf-scm-client版本<2.2.0采用zkServer地址,从zookeeper服务器获取配置服务。连接zookeeper集群之后,使用appcode和secretKey登录访问scm资源配置平台,获取该appcode的服务接口的相关配置项信息。appcode指的是服务调用方的标识码,secretKey表示权限密钥。其中,服务接口可以是RSF接口。因此,可实现从资源配置平台获取服务接口的配置项信息。
在一个实施例中,上述从测试环境信息中获取环境变量值的步骤之后,还包括:获取环境变量值对应的服务提供方列表;根据负载均衡策略从服务提供方列表中确定出服务提供方。
该实施例中,自动化测试平台中存储有环境变量值对应的服务提供方列表,服务提供方列表中记录有多个服务提供方。自动化测试平台在执行服务接口的自动化测试时,根据负载均衡策略从服务提供方列表中确定出服务提供方,进而确定出服务提供方的标识码。如,自动化测试平台根据标识信息获取测试环境信息,从测试环境信息中获取环境变量值,根据环境变量值确定出服务提供方,进而确定出服务调用方的标识码。自动化测试平台通过负载均衡策略从服务提供方列表中确定出服务提供方,从而能够筛选出载荷较小的服务提供方,以选择载荷较小的服务提供方作为服务调用请求的对象,进而提高自动化测试的效率。
例如,自动化测试平台获取指定环境变量值ldc的服务提供方列表,根据负载均衡策略选取其中一个服务提供方并向其发送服务调用请求,该调用线程会持续阻塞直到服务提供方返回相应结果或抛出异常。
在一个实施例中,上述根据测试案例、测试案例的案例参数以及测试环境信息向服务提供方发送服务调用请求,包括:从测试环境信息中获取服务提供方的地址信息;创建服务代理对象;调用服务代理对象中的调用函数,并根据测试案例、测试案例的案例参数以及服务提供方的地址信息向服务提供方发送服务调用请求。
该实施例中,服务接口为RSF接口,RSF协议属于生产者消费者模式,任何服务调用方均属于服务消费者,因此自动化测试平台作为服务消费者,创建服务代理对象,即ServiceAgent对象,调用ServiceAgent对象中的调用函数,如invoke函数。将测试案例的案例参数附带在invoke函数中,执行测试案例,基于服务提供方的地址信息向服务提供方发送服务调用请求。为了保障调用成功率,设置熔断处理和消费端限流,以根据熔断处理和消费端限流向服务提供方发送服务调用请求。此外,创建ConsumerContext对象,通过ConsumerContext对象存储服务提供方反馈的一些与服务相关的上下文信息。例如,上述根据配置项信息处理服务数据可以是,通过ConsumerContext对象根据配置项信息存储对应的服务数据。具体地,自动化测试平台运行SericeAgent.invoke(),对于日志输出和属性缓存严格按照配置项信息来执行。因此,可实现自动化测试平台对服务接口的自动化测试,并记录服务接口测试过程的结果数据。
在一个实施例中,上述根据标识信息获取服务接口的接口参数的步骤之前,还包括:设置定时任务的自动化脚本,自动化脚本中包含执行服务接口的自动化测试时间;运行自动化脚本,以使得在自动化测试时间触发服务接口的测试脚本;当服务接口的测试脚本被触发时,进入根据标识信息获取服务接口的接口参数的步骤。
该实施例中,自动化测试平台通过设置自动化脚本的方式,实现服务接口的定时测试。具体地,服务接口为RSF接口。为了在周期性时间节点执行RSF接口的接口测试,自动化测试平台根据需求对RSF接口的接口测试的测试脚本编辑组合并通过设置执行频率让测试脚本定时执行,其中使用Quartz API负责自动化脚本的定时任务。如图3所示,实现细节如下:
(1)编写TaskJob类实现Job接口:其中主要重写execute方法,该函数内部是执行自动化测试脚本的定时任务的逻辑代码。程序会读取场景和脚本中接口绑定顺序,依次执行相应接口。
(2)创建JobDetail实例对象:主要是映射执行类和执行方法,设置任务名称,任务数据,任务细节等。
(3)设置Trigger触发器,对于单次执行的任务使用SimpleTrigger,对于复杂定时任务使用CronTrigger。
(4)通过SchedulerFactory工厂创建调度程序实例Scheduler,将JobDetail和Trigger注册到Scheduler,启动定时任务。
(5)到达预定时间,触发Trigger,执行Job,运行自动化测试脚本。
(6)该定时任务结束,监听器持续监控状态,等待下一次Trigger触发响应定时任务。
因此,可实现服务接口的自动化测试的定时执行,无需人为干预。
为了进一步详述上述任一实施例所述的一种服务接口的自动化测试方法,以下提供一具体应用场景的实施例:
图4为自动化测试平台的系统架构图。前端使用Layui样式与vue整合设计自动化测试平台的整个web框架,利用插件Echarts实现统计分析可视化。在后端服务层,JAVA和PYTHON各起一个后台服务,其中JAVA端主要负责用户权限管理,测试环境管理,接口管理,场景管理,脚本管理,测试任务调度,统计分析。PYTHON端主要负责测试任务执行和日志生成。JAVA服务端采用SpringMVC架构,JBOSS部署,NGINX做负载均衡。PYTHON服务端采用Flask框架,uWSGI做服务器软件把Flask写好的应用拉起来,NGINX做反向代理转发uWSGI服务,同时使用supervisor作为守护进程,管理并监控后端服务。数据层以mongodb存储平台系统测试数据,mysql存储用户数据和找人流程,redis作缓存数据使用。
自动化测试平台执行一种服务接口的自动化测试方法。首先该自动化测试平台的系统中接口管理模块负责RSF接口的创建,收集测试案例的相关案例参数。相关案例参数包括系统名、接口名称、请求方式、服务契约、实现编码、协议类型、方法名、参数列表等。同时支持设置checkFields和dataCheckFields对返回信息关键字属性和数据库表信息进行验证。其中,服务契约:基于OpenAPI规范的微服务接口契约,是服务端与消费端对于接口的定义。服务契约场景描述:基于服务契约用于服务端和消费端的解耦,服务端围绕契约进行服务的实现,消费端根据契约进行服务的调用,可支持服务端和消费端采用不同的编程语言实现。实现编码:服务实现的方式。
自动化测试平台通过编写组件代码将RSF接口的测试流程逻辑封装成JAVA服务,系统前台发起RSF接口的测试请求,以启动测试流程。结合示附图5详述具体实现:
系统后台接收到RSF接口的测试请求后会根据RSF接口的Id从数据库中获取测试案例的可执行状态、测试环境、案例参数和appcode。若该测试案例的执行状态非“可执行”,则系统抛出异常,结束流程。若测试案例的执行状态状态校验无误后,系统会自动获取环境变量值Idc,根据appcode选择加载适配的scm.properties文件并读取scm.properties文件中关键参数zkServer、scmServer和secretKey,然后连接zookeeper集群地址,使用appcode和secretKey登录访问scm资源配置平台,获取该appcode的RSF接口的相关配置项信息。其中,scm.properties文件为系统设置的服务配置文件。
之后系统后台的自动化测试脚本的程序会充当服务消费者创建ConsumerContext对象和ServiceAgent对象,附带案例参数执行invoke函数。为了保障调用成功率,程序内部设置熔断处理和消费端限流。此外,自动化测试平台的系统获取指定ldc的服务提供方列表,根据负载均衡策略选取其中一个服务提供方并向其发送请求。该用于发送调用请求的调用线程会持续阻塞直到服务提供方返回相应结果或抛出异常,最后销毁之前创建的ComsumerContext对象并关闭整个测试流程。
其中,系统设置任务调度模块和和任务执行模块。任务调度模块和和任务执行模块主要负责自动化测试脚本的线程调度和执行。后台调度框架将接口参数加载到内存中,根据协议类型区分,通过Async异步调用执行相应服务接口,并在前端页面返回执行结果且保存在数据库中,实现线程无阻塞,调用链条异步化。同时系统保持调度定时的状态,并对自动化测试的定时任务进行有效的管理,支持调度数据的多种存储方式,如目前调度数据存储在mongodb上。允许用户根据时间频率来调度测试任务,如单次执行、每天执行1次、每周执行1次、每月执行1次。系统根据用户设置的频率,自动定时启动服务接口的接口测试和运行自动化测试脚本。
本申请的一种服务接口的自动化测试方法以及实现该自动化测试方法的系统,不仅支持传统HTTP/HTTPS接口的自动化测试,还支持自研的RSF协议的接口的自动化测试,使得测试人员无需多次更换工具就可以完成全场景测试,提高了工作效率,降低了时间成本。此外,平台提供自动化的此时案例的任务调度功能,只需简单地配置即可做到执行测试案例的定时自动执行,无需人工干预。
应该理解的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,附图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本申请还提供一种服务接口的自动化测试装置,如图6所示,该装置包括第一获取模块602、第二获取模块604、第三获取模块606、测试模块608以及处理模块610。第一获取模块602,用于接收服务接口的测试请求,从测试请求中获取服务接口的标识信息;第二获取模块604,用于根据标识信息获取服务接口的接口参数,接口参数包括服务接口的测试案例、测试案例的案例参数、测试环境信息以及服务调用方的标识码;第三获取模块606,用于根据测试环境信息以及服务调用方的标识码获取服务接口的配置项信息;测试模块608,用于根据测试案例、案例参数以及测试环境信息向服务提供方发送服务调用请求,以对服务接口进行接口测试;处理模块610,用于当接收到服务提供方反馈的服务数据时,根据配置项信息处理服务数据。
在其中一个实施例中,一种服务接口的自动化测试装置还包括存储模块,用于当接收到服务提供方反馈的服务调用失败的异常信息时,存储异常信息。
在其中一个实施例中,根据测试环境信息以及服务调用方的标识码获取服务接口的配置项信息,包括:从测试环境信息中获取环境变量值;根据环境变量值和服务调用方的标识码加载服务配置文件;从服务配置文件中获取配置参数;根据配置参数从资源配置平台获取服务接口的配置项信息。
在其中一个实施例中,配置参数包括资源配置平台的地址信息以及权限密钥,根据配置参数从资源配置平台获取服务接口的配置项信息,包括:根据资源配置平台的地址信息连接资源配置平台;根据权限密钥以及服务调用方的标识码登录资源配置平台;从资源配置平台获取服务接口的配置项信息。
在其中一个实施例中,一种服务接口的自动化测试装置还包括确定模块,用于获取环境变量值对应的服务提供方列表;根据负载均衡策略从服务提供方列表中确定出服务提供方。
在其中一个实施例中,根据测试案例、案例参数以及测试环境信息向服务提供方发送服务调用请求,包括:从测试环境信息中获取服务提供方的地址信息;创建服务代理对象;调用服务代理对象中的调用函数,并根据测试案例、测试案例的案例参数以及服务提供方的地址信息向服务提供方发送服务调用请求。
在其中一个实施例中,一种服务接口的自动化测试装置还包括定时模块,用于设置定时任务的自动化脚本,自动化脚本中包含执行服务接口的自动化测试时间;运行自动化脚本,以使得在自动化测试时间触发服务接口的测试脚本;当服务接口的测试脚本被触发时,进入根据标识信息获取服务接口的接口参数的步骤。
关于服务接口的自动化测试装置的具体限定可以参见上文中对于服务接口的自动化测试方法的限定,在此不再赘述。上述服务接口的自动化测试装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是自动化测试平台中服务器集群中的服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的服务提供方的平台连接,以与服务提供方进行数据交互。该计算机程序被处理器执行时以实现一种服务接口的自动化测试方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:接收服务接口的测试请求,从测试请求中获取服务接口的标识信息;根据标识信息获取服务接口的接口参数,接口参数包括服务接口的测试案例、测试案例的案例参数、测试环境信息以及服务调用方的标识码;根据测试环境信息以及服务调用方的标识码获取服务接口的配置项信息;根据测试案例、案例参数以及测试环境信息向服务提供方发送服务调用请求,以对服务接口进行接口测试;当接收到服务提供方反馈的服务数据时,根据配置项信息处理服务数据。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:当接收到服务提供方反馈的服务调用失败的异常信息时,存储异常信息。
在其中一个实施例中,处理器执行计算机程序实现上述的根据测试环境信息以及服务调用方的标识码获取服务接口的配置项信息步骤时,具体实现以下步骤:从测试环境信息中获取环境变量值;根据环境变量值和服务调用方的标识码加载服务配置文件;从服务配置文件中获取配置参数;根据配置参数从资源配置平台获取服务接口的配置项信息。
在其中一个实施例中,配置参数包括资源配置平台的地址信息以及权限密钥,处理器执行计算机程序实现上述的根据配置参数从资源配置平台获取服务接口的配置项信息步骤时,具体实现以下步骤:根据资源配置平台的地址信息连接资源配置平台;根据权限密钥以及服务调用方的标识码登录资源配置平台;从资源配置平台获取服务接口的配置项信息。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:获取环境变量值对应的服务提供方列表;根据负载均衡策略从服务提供方列表中确定出服务提供方。
在其中一个实施例中,处理器执行计算机程序实现上述的根据测试案例、案例参数以及测试环境信息向服务提供方发送服务调用请求步骤时,具体实现以下步骤:从测试环境信息中获取服务提供方的地址信息;创建服务代理对象;调用服务代理对象中的调用函数,并根据测试案例、测试案例的案例参数以及服务提供方的地址信息向服务提供方发送服务调用请求。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:设置定时任务的自动化脚本,自动化脚本中包含执行服务接口的自动化测试时间;运行自动化脚本,以使得在自动化测试时间触发服务接口的测试脚本;当服务接口的测试脚本被触发时,进入根据标识信息获取服务接口的接口参数的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收服务接口的测试请求,从测试请求中获取服务接口的标识信息;根据标识信息获取服务接口的接口参数,接口参数包括服务接口的测试案例、测试案例的案例参数、测试环境信息以及服务调用方的标识码;根据测试环境信息以及服务调用方的标识码获取服务接口的配置项信息;根据测试案例、案例参数以及测试环境信息向服务提供方发送服务调用请求,以对服务接口进行接口测试;当接收到服务提供方反馈的服务数据时,根据配置项信息处理服务数据。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:当接收到服务提供方反馈的服务调用失败的异常信息时,存储异常信息。
在其中一个实施例中,计算机程序被处理器执行实现上述的根据测试环境信息以及服务调用方的标识码获取服务接口的配置项信息步骤时,具体实现以下步骤:从测试环境信息中获取环境变量值;根据环境变量值和服务调用方的标识码加载服务配置文件;从服务配置文件中获取配置参数;根据配置参数从资源配置平台获取服务接口的配置项信息。
在其中一个实施例中,配置参数包括资源配置平台的地址信息以及权限密钥,计算机程序被处理器执行实现上述的根据配置参数从资源配置平台获取服务接口的配置项信息步骤时,具体实现以下步骤:根据资源配置平台的地址信息连接资源配置平台;根据权限密钥以及服务调用方的标识码登录资源配置平台;从资源配置平台获取服务接口的配置项信息。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取环境变量值对应的服务提供方列表;根据负载均衡策略从服务提供方列表中确定出服务提供方。
在其中一个实施例中,计算机程序被处理器执行实现上述的根据测试案例、案例参数以及测试环境信息向服务提供方发送服务调用请求步骤时,具体实现以下步骤:从测试环境信息中获取服务提供方的地址信息;创建服务代理对象;调用服务代理对象中的调用函数,并根据测试案例、测试案例的案例参数以及服务提供方的地址信息向服务提供方发送服务调用请求。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:设置定时任务的自动化脚本,自动化脚本中包含执行服务接口的自动化测试时间;运行自动化脚本,以使得在自动化测试时间触发服务接口的测试脚本;当服务接口的测试脚本被触发时,进入根据标识信息获取服务接口的接口参数的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种服务接口的自动化测试方法,所述方法包括:
接收服务接口的测试请求,从所述测试请求中获取所述服务接口的标识信息;
根据所述标识信息获取所述服务接口的测试案例、所述测试案例的案例参数、测试环境信息以及服务调用方的标识码;
根据所述测试环境信息以及所述服务调用方的标识码获取所述服务接口的配置项信息;
根据所述测试案例、所述案例参数以及所述测试环境信息向服务提供方发送服务调用请求,以对所述服务接口进行接口测试;
当接收到所述服务提供方反馈的服务数据时,根据所述配置项信息处理所述服务数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当接收到所述服务提供方反馈的服务调用失败的异常信息时,存储所述异常信息。
3.根据权利要求1所述的方法,其特征在于,所述根据所述测试环境信息以及所述服务调用方的标识码获取所述服务接口的配置项信息,包括:
从所述测试环境信息中获取环境变量值;
根据所述环境变量值和所述服务调用方的标识码加载服务配置文件;
从所述服务配置文件中获取配置参数;
根据所述配置参数从资源配置平台获取所述服务接口的配置项信息。
4.根据权利要求3所述的方法,其特征在于,所述配置参数包括所述资源配置平台的地址信息以及权限密钥,所述根据所述配置参数从资源配置平台获取所述服务接口的配置项信息,包括:
根据所述资源配置平台的地址信息连接所述资源配置平台;
根据所述权限密钥以及所述服务调用方的标识码登录所述资源配置平台;
从所述资源配置平台获取所述服务接口的配置项信息。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
获取所述环境变量值对应的服务提供方列表;
根据负载均衡策略从所述服务提供方列表中确定出所述服务提供方。
6.根据权利要求1所述的方法,其特征在于,所述根据所述测试案例、所述案例参数以及所述测试环境信息向服务提供方发送服务调用请求,包括:
从所述测试环境信息中获取所述服务提供方的地址信息;
创建服务代理对象;
调用所述服务代理对象中的调用函数,并根据所述测试案例、所述测试案例的案例参数以及所述服务提供方的地址信息向所述服务提供方发送服务调用请求。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
设置定时任务的自动化脚本,所述自动化脚本中包含执行所述服务接口的自动化测试时间;
运行所述自动化脚本,以使得在所述自动化测试时间触发所述服务接口的测试脚本;
当所述服务接口的测试脚本被触发时,进入所述根据所述标识信息获取所述服务接口的接口参数的步骤。
8.一种服务接口的自动化测试装置,其特征在于,所述装置包括:
第一获取模块,用于接收服务接口的测试请求,从所述测试请求中获取所述服务接口的标识信息;
第二获取模块,用于根据所述标识信息获取所述服务接口的接口参数,所述接口参数包括所述服务接口的测试案例、测试案例的案例参数、测试环境信息以及服务调用方的标识码;
第三获取模块,用于根据所述测试环境信息以及所述服务调用方的标识码获取所述服务接口的配置项信息;
测试模块,用于根据所述测试案例、所述案例参数以及所述测试环境信息向服务提供方发送服务调用请求,以对所述服务接口进行接口测试;
处理模块,用于当接收到所述服务提供方反馈的服务数据时,根据所述配置项信息处理所述服务数据。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110725638.1A CN113377668A (zh) | 2021-06-29 | 2021-06-29 | 服务接口的自动化测试方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110725638.1A CN113377668A (zh) | 2021-06-29 | 2021-06-29 | 服务接口的自动化测试方法、装置和计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113377668A true CN113377668A (zh) | 2021-09-10 |
Family
ID=77579810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110725638.1A Pending CN113377668A (zh) | 2021-06-29 | 2021-06-29 | 服务接口的自动化测试方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113377668A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114157464A (zh) * | 2021-11-23 | 2022-03-08 | 北京永信至诚科技股份有限公司 | 一种网络测试监控方法及监控系统 |
CN114297058A (zh) * | 2021-12-23 | 2022-04-08 | 马上消费金融股份有限公司 | 一种测试方法及装置 |
CN114356774A (zh) * | 2022-01-07 | 2022-04-15 | 中国联合网络通信集团有限公司 | 目标服务的测试方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108427613A (zh) * | 2018-03-12 | 2018-08-21 | 平安普惠企业管理有限公司 | 异常接口定位方法、装置、计算机设备和存储介质 |
CN109726134A (zh) * | 2019-01-16 | 2019-05-07 | 中国平安财产保险股份有限公司 | 接口测试方法和系统 |
CN112395202A (zh) * | 2020-11-26 | 2021-02-23 | 苏宁云计算有限公司 | 接口自动化测试方法、装置、计算机设备和存储介质 |
-
2021
- 2021-06-29 CN CN202110725638.1A patent/CN113377668A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108427613A (zh) * | 2018-03-12 | 2018-08-21 | 平安普惠企业管理有限公司 | 异常接口定位方法、装置、计算机设备和存储介质 |
CN109726134A (zh) * | 2019-01-16 | 2019-05-07 | 中国平安财产保险股份有限公司 | 接口测试方法和系统 |
CN112395202A (zh) * | 2020-11-26 | 2021-02-23 | 苏宁云计算有限公司 | 接口自动化测试方法、装置、计算机设备和存储介质 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114157464A (zh) * | 2021-11-23 | 2022-03-08 | 北京永信至诚科技股份有限公司 | 一种网络测试监控方法及监控系统 |
CN114157464B (zh) * | 2021-11-23 | 2022-11-08 | 北京永信至诚科技股份有限公司 | 一种网络测试监控方法及监控系统 |
CN114297058A (zh) * | 2021-12-23 | 2022-04-08 | 马上消费金融股份有限公司 | 一种测试方法及装置 |
CN114297058B (zh) * | 2021-12-23 | 2023-03-24 | 马上消费金融股份有限公司 | 一种测试方法及装置 |
CN114356774A (zh) * | 2022-01-07 | 2022-04-15 | 中国联合网络通信集团有限公司 | 目标服务的测试方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113377668A (zh) | 服务接口的自动化测试方法、装置和计算机设备 | |
CN109766253B (zh) | 一种性能数据发送方法、装置、计算机设备及存储介质 | |
CN107689976B (zh) | 一种文件传输方法及装置 | |
CN109726134B (zh) | 接口测试方法和系统 | |
CN110851159B (zh) | 业务规则更新方法、装置、计算机设备和存储介质 | |
CN110309029A (zh) | 异常数据的采集方法、装置、计算机设备和存储介质 | |
CN112491659B (zh) | 一种流量回放测试方法、装置、计算机设备和存储介质 | |
CN109254765B (zh) | 定时任务管理方法、装置、计算机设备及存储介质 | |
CN112115005B (zh) | 测试数据采集方法、装置、计算机设备和存储介质 | |
CN112363907A (zh) | Dubbo接口的测试方法、装置、电子装置和存储介质 | |
CN113867600A (zh) | 处理流式数据的开发方法、装置和计算机设备 | |
CN109902028A (zh) | Acl特性的自动化测试方法、装置、设备及存储介质 | |
CN110502242B (zh) | 代码自动生成方法、装置、计算机设备及存储介质 | |
CN112395202A (zh) | 接口自动化测试方法、装置、计算机设备和存储介质 | |
CN111078553B (zh) | 数据开发任务测试方法、装置、计算机设备和存储介质 | |
CN112882846A (zh) | 消息队列的数据处理方法、装置、计算机设备和存储介质 | |
CN109697112B (zh) | 分布式集约化一站式作业系统和实现方法 | |
CN110457132B (zh) | 一种功能对象的创建方法、装置和终端设备 | |
CN116911588A (zh) | 业务流程执行方法、装置、设备及存储介质 | |
CN113377669A (zh) | 自动化测试方法、装置、计算机设备和存储介质 | |
CN117234760A (zh) | DevOps平台创建方法、系统、存储介质及设备 | |
CN116185869A (zh) | 一种软件测试方法、系统、计算机设备及存储介质 | |
CN110113384A (zh) | 网络请求处理方法、装置、计算机设备和存储介质 | |
CN113157754B (zh) | 流程表单数据展示方法、装置、设备及存储介质 | |
CN115834443A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210910 |