CN112035375B - socket接口自动化测试系统 - Google Patents

socket接口自动化测试系统 Download PDF

Info

Publication number
CN112035375B
CN112035375B CN202010978541.7A CN202010978541A CN112035375B CN 112035375 B CN112035375 B CN 112035375B CN 202010978541 A CN202010978541 A CN 202010978541A CN 112035375 B CN112035375 B CN 112035375B
Authority
CN
China
Prior art keywords
test
layer module
socket interface
data
request message
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
CN202010978541.7A
Other languages
English (en)
Other versions
CN112035375A (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.)
Bank of China Ltd
Original Assignee
Bank of China 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 Bank of China Ltd filed Critical Bank of China Ltd
Priority to CN202010978541.7A priority Critical patent/CN112035375B/zh
Publication of CN112035375A publication Critical patent/CN112035375A/zh
Application granted granted Critical
Publication of CN112035375B publication Critical patent/CN112035375B/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/3688Test management for test execution, e.g. scheduling of test suites
    • 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/3692Test management for test results analysis

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

本发明提供了一种socket接口自动化测试系统,该系统包括:接口层模块,用于定义socket接口请求报文和socket接口响应报文的格式以及关键字;用例层模块,用于管理测试用例,触发流程层模块执行对测试用例的测试;数据层模块,用于对测试用例的测试数据、socket接口请求报文的内容和socket接口响应报文的内容进行管理;元素层模块,用于定义结果验证的关键字;流程层模块,用于定义测试用例执行流程;在受到用例层模块触发后,通过RobotFramework工具执行所述测试用例执行流程对测试用例进行测试。本发明可以对socket接口进行自动化测试,测试效率高,测试用例可复用性高。

Description

socket接口自动化测试系统
技术领域
本发明涉及测试技术领域,尤其涉及一种socket接口自动化测试系统。
背景技术
Socket接口是使用TCP/UDP协议封装的接口,很多后台系统采用socket接口提供交易服务,外部系统按与后台系统约定的报文格式组装交易报文后发送到后台系统,后台系统对报文进行解析并返回相应的响应报文。目前,对这些后台系统的socket接口进行测试主要有以下几种:
1)人工测试的方式,通过人工在外部系统发起交易来进行接口测试,交易执行后手动登录数据库进行确认。这种方式增大测试人力投入以及测试时间成本,测试效率低,且严重依赖外部系统。
2)使用Admitester测试工具,模拟各产品发起交易来进行接口测试,但这种方法只能比对响应报文,无法自动对数据库中的数据进行验证,而且测试用例的可复用性也不高。
发明内容
本发明实施例提出一种socket接口自动化测试系统,用于对socket接口进行自动化测试,测试效率高,测试用例可复用性高,该系统包括:
接口层模块,用于定义socket接口请求报文和socket接口响应报文的格式以及关键字;
用例层模块,用于管理测试用例,触发流程层模块执行对测试用例的测试;
数据层模块,用于对测试用例的测试数据、socket接口请求报文的内容和socket接口响应报文的内容进行管理;
元素层模块,用于定义结果验证的关键字,所述结果验证包括响应报文内容比对和/或数据库数据验证;
流程层模块,用于定义测试用例执行流程;在受到用例层模块触发后,通过RobotFramework工具执行所述测试用例执行流程对测试用例进行测试。
在本发明实施例中,通过接口层模块定义socket接口请求报文和socket接口响应报文的格式以及关键字,用例层模块可以自动触发流程层模块执行对测试用例的测试,流程层模块在受到用例层模块触发后,通过RobotFramework工具可以自动执行所述测试用例执行流程对测试用例进行测试,测试效率高,测试用例可复用性高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中socket接口自动化测试系统的示意图;
图2为本发明实施例中定义一个socket接口请求报文的示意图;
图3为本发明实施例中测试用例管理的示意图;
图4为本发明实施例中结果验证的关键字定义的示意图;
图5为本发明实施例中定义测试用例执行流程的示意图;
图6为本发明实施例中测试用例执行流程的示意图;
图7为本发明实施例中socket接口自动化测试系统的另一示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
在本说明书的描述中,所使用的“包含”、“包括”、“具有”、“含有”等,均为开放性的用语,即意指包含但不限于。参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”等的描述意指结合该实施例或示例描述的具体特征、结构或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本申请的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
图1为本发明实施例中socket接口自动化测试系统的示意图,如图1所示,该系统包括:
接口层模块101,用于定义socket接口请求报文和socket接口响应报文的格式以及关键字;
用例层模块102,用于管理测试用例,触发流程层模块执行对测试用例的测试;
数据层模块103,用于对测试用例的测试数据、socket接口请求报文的内容和socket接口响应报文的内容进行管理;
元素层模块104,用于定义结果验证的关键字,所述结果验证包括响应报文内容比对和/或数据库数据验证;
流程层模块105,用于定义测试用例执行流程;在受到用例层模块触发后,通过RobotFramework工具执行所述测试用例执行流程对测试用例进行测试。
在本发明实施例提出的系统中,通过接口层模块定义socket接口请求报文和socket接口响应报文的格式以及关键字,用例层模块可以自动触发流程层模块执行对测试用例的测试,流程层模块在受到用例层模块触发后,通过RobotFramework工具可以自动执行所述测试用例执行流程对测试用例进行测试,测试效率高,测试用例可复用性高。
具体实施时,图2为本发明实施例中定义一个socket接口请求报文的示意图,该socket接口请求报文为G2CIFReq-100101,该定义过程也是在RobotFramework工具中进行的。
用例层模块102用于管理测试用例,在管理时,可将测试用例按照测试项进行分类管理,同样也可以采用RobotFramework工具进行测试用例管理,图3为本发明实施例中测试用例管理的示意图,该测试用例为G2CIF-RF-100102-001-新增银行参数信息,该测试用例属于测试项:正常交易测试-新增银行参数信息。
另外,用例层模块还可以触发流程层模块,来执行测试,比如,用例层模块可以指定若干测试用例的执行条件,RobotFramework工具检查到符合执行条件后,触发流程层模块。
数据层模块103用于对测试用例的测试数据、socket接口请求报文的内容和socket接口响应报文的内容进行管理,其中测试数据指的是测试用例需要用到的数据,比如查询银行参数时,后台应用系统要存在这个银行的参数信息,执行查询银行参数的测试用例时才能正确返回该银行的参数信息。
在一实施例中,数据层模块还用于对数据库sql脚本进行管理,所述数据库sql脚本包括数据准备sql脚本和数据回滚sql脚本,从而提高测试用例以及测试数据的可复用性。
在一实施例中,元素层模块104,用于定义结果验证的关键字,所述结果验证包括响应报文内容比对和/或数据库数据验证,其中关键字定义按照case粒度进行,图4为本发明实施例中结果验证的关键字定义的示意图,该过程也采用RobotFramework工具来进行。
在一实施例中,数据层模块具体用于:
通过Excel对socket接口请求报文的内容和socket接口响应报文的内容进行管理;
通过数据库sql脚本对测试用例的测试数据进行管理。
通过上述两种管理方式,可提高数据管理的灵活性。
流程层模块105,用于定义测试用例执行流程,图5为本发明实施例中定义测试用例执行流程的示意图,该过程也采用RobotFramework工具来进行。流程层模块105在受到用例层模块触发后,通过RobotFramework工具执行所述测试用例执行流程对测试用例进行测试,图6为本发明实施例中测试用例执行流程的示意图。
参见图6,在一实施例中,测试用例执行流程包括数据准备步骤、组装socket接口请求报文步骤、发起测试步骤、结果验证步骤、数据回滚步骤。
上述测试用例执行流程适用于每个测试用例,以保证每个案例可独立操作及可复用性。
参见图6,在一实施例中,流程层模块具体用于:
在数据准备步骤中,调用RobotFramework工具的DatabaseLibaray库连接数据库,执行数据层模块的数据准备sql脚本,将测试用例需要的测试数据插入数据库中。这样,后台应用系统在处理业务逻辑时就可以应用插入到数据的测试数据了。
参见图6,在一实施例中,流程层模块具体用于:
在组装socket接口请求报文步骤中,根据接口层模块中定义的socket接口请求报文的格式和关键字,以及数据层模块中socket接口请求报文的内容,组装socket接口请求报文。
参见图6,在一实施例中,流程层模块具体用于:
在发起测试步骤中,通过RobotFramework工具的Telnet库连接后台应用系统对外提供服务的TCP端口,发送socket接口请求报文。
参见图6,在一实施例中,流程层模块具体用于:
在结果验证步骤中,接收后台应用系统返回的socket接口响应报文;根据元素层模块中定义的结果验证的比对socket接口响应报文,获得响应报文内容比对结果;在所述socket接口请求报文涉及到对数据库中的数据进行变更时,根据元素层模块中定义的结果验证的关键字,通过RobotFramework工具的DatabaseLibrary库自动对操作后的数据库数据进行验证,获得数据库数据验证结果。
在上述实施例中,在所述socket接口请求报文为查询请求时,则不必再进行数据库数据验证,因为查询结果会存在socket接口响应报文中,只需比对socket接口响应报文即可。
参见图6,在一实施例中,流程层模块具体用于:
在数据回滚步骤中,采用RobotFramework工具的DatabaseLibrary库连接数据库执行数据层模块的数据回滚sql脚本,进行已执行测试用例的测试数据的回滚。
在一实施例中,所述系统还包括:组件层模块106,如图7所示为本发明实施例中socket接口自动化测试系统的另一示意图,组件层模块106,用于定义公共参数的关键字,所述公共参数包括公共路径参数、后台应用系统参数、JDBC连接参数。其中,公共路径参数可以是数据层模块中所有数据的路径,后台应用系统参数包含后台应用系统IP地址及对外提供服务的端口,JDBC连接参数包含数据库IP地址、用户名、密码,用于连接数据库。
具体实施时,在socket接口没有变化时,接口层模块、用例层模块、数据层模块、元素层模块和流程层模块定义的内容在执行测试时无需修改。
综上所述,在本发明实施例提出的系统中,通过接口层模块定义socket接口请求报文和socket接口响应报文的格式以及关键字,用例层模块可以自动触发流程层模块执行对测试用例的测试,流程层模块在受到用例层模块触发后,通过RobotFramework工具可以自动执行所述测试用例执行流程对测试用例进行测试,测试效率高,测试用例可复用性高。
另外,所述测试用例执行流程具有通用性,以保证每个案例可独立操作,通过分层管理将测试用例、测试数据、socket接口请求报文和socket接口响应报文分离,减少人工成本,提高了socket接口测试的效率。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种socket接口自动化测试系统,其特征在于,包括:
接口层模块,用于定义socket接口请求报文和socket接口响应报文的格式以及关键字;
用例层模块,用于管理测试用例,触发流程层模块执行对测试用例的测试;
数据层模块,用于对测试用例的测试数据、socket接口请求报文的内容和socket接口响应报文的内容进行管理;
元素层模块,用于定义结果验证的关键字,所述结果验证包括响应报文内容比对和/或数据库数据验证;
流程层模块,用于定义测试用例执行流程;在受到用例层模块触发后,通过RobotFramework工具执行所述测试用例执行流程对测试用例进行测试;
测试用例执行流程包括数据准备步骤、组装socket接口请求报文步骤、发起测试步骤、结果验证步骤、数据回滚步骤;
流程层模块具体用于:在结果验证步骤中,接收后台应用系统返回的socket接口响应报文;根据元素层模块中定义的结果验证的关键字比对socket接口响应报文,获得响应报文内容比对结果;在所述socket接口请求报文涉及到对数据库中的数据进行变更时,根据元素层模块中定义的结果验证的关键字,通过RobotFramework工具的DatabaseLibrary库自动对操作后的数据库数据进行验证,获得数据库数据验证结果。
2.如权利要求1所述的socket接口自动化测试系统,其特征在于,数据层模块还用于对数据库sql脚本进行管理,所述数据库sql脚本包括数据准备sql脚本和数据回滚sql脚本。
3.如权利要求2所述的socket接口自动化测试系统,其特征在于,流程层模块具体用于:
在数据准备步骤中,调用RobotFramework工具的DatabaseLibaray库连接数据库,执行数据层模块的数据准备sql脚本,将测试用例需要的测试数据插入数据库中。
4.如权利要求1所述的socket接口自动化测试系统,其特征在于,流程层模块具体用于:
在组装socket接口请求报文步骤中,根据接口层模块中定义的socket接口请求报文的格式和关键字,以及数据层模块中socket接口请求报文的内容,组装socket接口请求报文。
5.如权利要求1所述的socket接口自动化测试系统,其特征在于,流程层模块具体用于:
在发起测试步骤中,通过RobotFramework工具的Telnet库连接后台应用系统对外提供服务的TCP端口,发送socket接口请求报文。
6.如权利要求2所述的socket接口自动化测试系统,其特征在于,流程层模块具体用于:
在数据回滚步骤中,采用RobotFramework工具的DatabaseLibrary库连接数据库执行数据层模块的数据回滚sql脚本,进行已执行测试用例的测试数据的回滚。
7.如权利要求2所述的socket接口自动化测试系统,其特征在于,数据层模块具体用于:
通过Excel对socket接口请求报文的内容和socket接口响应报文的内容进行管理;
通过数据库sql脚本对测试用例的测试数据进行管理。
8.如权利要求1所述的socket接口自动化测试系统,其特征在于,还包括:组件层模块,用于定义公共参数的关键字,所述公共参数包括公共路径参数、后台应用系统参数和JDBC连接参数。
CN202010978541.7A 2020-09-17 2020-09-17 socket接口自动化测试系统 Active CN112035375B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010978541.7A CN112035375B (zh) 2020-09-17 2020-09-17 socket接口自动化测试系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010978541.7A CN112035375B (zh) 2020-09-17 2020-09-17 socket接口自动化测试系统

Publications (2)

Publication Number Publication Date
CN112035375A CN112035375A (zh) 2020-12-04
CN112035375B true CN112035375B (zh) 2024-04-19

Family

ID=73589650

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010978541.7A Active CN112035375B (zh) 2020-09-17 2020-09-17 socket接口自动化测试系统

Country Status (1)

Country Link
CN (1) CN112035375B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113806229B (zh) * 2021-09-27 2024-06-11 工银科技有限公司 接口变更的测试脚本复用方法、装置、设备、介质及产品

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014169565A1 (zh) * 2013-08-21 2014-10-23 中兴通讯股份有限公司 终端的测试方法及装置
CN104601403A (zh) * 2015-01-07 2015-05-06 上海瀚之友信息技术服务有限公司 一种自动化测试系统
CN105138454A (zh) * 2015-08-24 2015-12-09 浪潮电子信息产业股份有限公司 一种针对b/s架构安全软件的自动化测试方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014169565A1 (zh) * 2013-08-21 2014-10-23 中兴通讯股份有限公司 终端的测试方法及装置
CN104601403A (zh) * 2015-01-07 2015-05-06 上海瀚之友信息技术服务有限公司 一种自动化测试系统
CN105138454A (zh) * 2015-08-24 2015-12-09 浪潮电子信息产业股份有限公司 一种针对b/s架构安全软件的自动化测试方法

Also Published As

Publication number Publication date
CN112035375A (zh) 2020-12-04

Similar Documents

Publication Publication Date Title
WO2020029375A1 (zh) 接口测试方法、系统、计算机设备和存储介质
US20040111425A1 (en) Method and system for automatic detection of monitoring data sources
CN104601403A (zh) 一种自动化测试系统
AU2017200895B2 (en) Software integration testing with unstructured database
CN105389256A (zh) 一种单元测试方法及系统
CN110716743B (zh) 一种适合多方协作开发的聚合api开发方法及系统
CN112035375B (zh) socket接口自动化测试系统
CN114978880B (zh) 服务调用链追踪方法、系统、计算机及存储介质
CN114240409A (zh) 基于改进哈希时间锁的跨链资产交互方法
US7797590B2 (en) Consensus testing of electronic system
CN111355802A (zh) 信息推送方法和装置
CN113312427B (zh) 区块链调用方法、装置、管理服务平台及存储介质
CN111506641B (zh) 数据管理方法、数据采集平台、数据管理系统及存储介质
US7937433B1 (en) Queuing connector to promote message servicing
CN109117152B (zh) 服务生成系统及方法
CN114095272B (zh) 基于内外网安全架构的内网数据上链方法及装置
CN113810379B (zh) 一种异常处理方法及多服务系统
Kuk et al. Robustness testing framework for Web services composition
CN110618943B (zh) 安防服务测试方法、装置、电子设备及可读存储介质
CN114281905A (zh) 一种实现物联网设备连接管理的方法及系统
AbouTrab et al. GeTeX: a tool for testing real-time embedded systems using CAN applications
Graiet et al. Formal behavioral modeling for verifying SCA composition with Event-B
Gong et al. Interaction mismatch discovery based transformation from BPMN to BPEL
CN102215242A (zh) 基于服务器对客户端的事件响应方法及其系统
CN111104439B (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