CN111866088B - 基于区块链的测试方法及装置、计算机设备、存储介质 - Google Patents
基于区块链的测试方法及装置、计算机设备、存储介质 Download PDFInfo
- Publication number
- CN111866088B CN111866088B CN202010602528.1A CN202010602528A CN111866088B CN 111866088 B CN111866088 B CN 111866088B CN 202010602528 A CN202010602528 A CN 202010602528A CN 111866088 B CN111866088 B CN 111866088B
- Authority
- CN
- China
- Prior art keywords
- web server
- client
- proxy server
- blockchain
- test
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/04—Processing captured monitoring data, e.g. for logfile generation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及区块链领域,提供了一种基于区块链的测试方法及装置、计算机设备、存储介质。一方面,该方法包括:在区块链客户端上执行用户验收测试UAT;通过代理服务器监听所述区块链客户端在执行所述UAT时与web服务器之间的测试交互信息,其中,所述代理服务器连接在所述区块链客户端和所述web服务器之间,所述web服务器用于运行测试对象;将所述测试交互信息存储至区块链。通过本发明,解决了相关技术中的测试结果不准确的技术问题,提高了测试的准确性和可靠度,同时提高了测试效率。
Description
【技术领域】
本发明涉及信息区块链领域,尤其涉及一种基于区块链的测试方法及装置、计算机设备、存储介质。
【背景技术】
相关技术中,目前区块链技术已经逐渐成为一个发展趋势,在区块链应用上基本都是和货币打交道在测试领域上目前没有这类领域的区块链应用,所以测试的系统在作为一个凭据的情况下只有测试方会用到而里面的测试数据和测试流程以及结果都是人为输入的根本没有多方参考价值所以在业务,开发,测试三方的UAT(User Acceptance Test,是用户验收测试)标准参考也不会去以测试方的数据作为一个风险评估标准包括有些测试点覆盖的路径,测试结果有时的可信度和覆盖率一直遭多方质疑,所以多方的测试传统流程下都是一部分去参考测试结果,参考的地方和覆盖的地方并不全面所以自作为参考作为主要参考资料,所以目前的三方UAT风险分析评估基本都是按照以往的经验和多方UAT下来定论的,客观上讲没有具体数据作为多方参考的标准比如那些是开发的问题导致测试时候出现问题这类问题怎么避免,第二是是否是测试数据的异常导致程序问题没有全面铺设合理数据导致的风险这类问题传统上都是靠人为经验和上线UAT作为风险评估的一大标准。最终都会导致现有的测试方案不可靠,不准确。
针对相关技术中存在的上述问题,目前尚未发现有效的解决方案。
【发明内容】
有鉴于此,本发明实施例提供了一种基于区块链的测试方法及装置、计算机设备、存储介质。
一方面,本发明实施例提供了一种基于区块链的测试方法,所述方法包括:在区块链客户端上执行用户验收测试UAT;通过代理服务器监听所述区块链客户端在执行所述UAT时与web服务器之间的测试交互信息,其中,所述代理服务器连接在所述区块链客户端和所述web服务器之间,所述web服务器用于运行测试对象;将所述测试交互信息存储至区块链。
可选的,通过代理服务器监听所述区块链客户端在执行UAT时与web服务器之间的测试交互信息包括:确定所述区块链客户端和所述web服务器之间的数据包类型,其中,所述数据包类型包括以下之一:超文本传输协议HTTP报文、超文本传输安全协议HTTPS报文;根据所述数据包类型建立所述区块链客户端和所述web服务器之间连接链路;监听所述连接链路上的通讯报文。
可选的,确定所述区块链客户端和所述web服务器之间的数据包类型包括:监听所述区块链客户端在触发所述UAT时,向所述web服务器发送的请求数据包;解析所述请求数据包中携带的报文内容,判断所述请求数据包中是否携带CONNECT请求报文;若所述请求数据包中携带CONNECT请求报文,则确定数据包类型为HTTPS报文;若所述请求数据包中不携带CONNECT请求报文,则确定数据包类型为HTTP报文。
可选的,若所述数据包类型为HTTP报文,根据所述数据包类型建立所述区块链客户端和所述web服务器之间连接链路包括:提取HTTP数据包中的HOST头;根据所述HOST头建立所述代理服务器与所述web服务器之间的第一链路。
可选的,若所述数据包类型为HTTPS报文,根据所述数据包类型建立所述区块链客户端和所述web服务器之间连接链路包括:通过HTTPS数据包的统一资源定位符URL地址向所述代理服务器发送连接请求,其中,所述连接请求用于指示与所述代理服务器建立安全套接字协议SSL连接;接收所述代理服务器基于所述连接请求反馈的证书信息;根据所述证书信息确定所述SSL连接的安全等级,并基于所述安全等级生成第一会话密钥,并将所述第一会话秘钥加密传输至所述代理服务器,其中,所述第一会话密钥用于建立所述区块链客户端和所述代理服务器之间的第一加密链路;在所述第一加密链路建立完成后,基于所述第一加密链路控制所述代理服务器向所述web服务器发送第二会话密钥,其中,所述第二会话密钥用于建立所述代理服务器和所述web服务器之间的第二加密链路。
可选的,若所述web服务器包括基于HTTP的第一web服务器和基于HTTPS的第二web服务器,通过代理服务器监听所述区块链客户端在执行所述UAT时与web服务器之间的测试交互信息包括:确定所述代理服务器的数量;若所述代理服务器为一个,在所述代理服务器中建立两个与第一web服务器和第二web服务器分别对应的第一并行链路,以及建立一个与区块链客户端对应的第一串行链路;监听所述区块链客户端经由所述第一串行链路向所述web服务器传输的请求报文,以及所述web服务器经由所述第一并行链路向所述区块链客户端传输的响应报文;若所述代理服务器为多个,在第一代理服务器上建立与第一web服务器连接的第二串行链路,在第二代理服务器上建立与第二web服务器连接的第三串行链路,以及建立一个与第三代理服务器和所述区块链客户端连接的第四串行链路;监听所述区块链客户端经由所述第四串行链路向所述web服务器传输的请求报文,以及所述web服务器经由所述第二串行链路或所述第三串行链路向所述区块链客户端传输的响应报文,其中,所述第三代理服务器与所述第一代理服务器和所述第二代理服务器分别连接。
可选的,在区块链客户端上执行用户验收测试UAT之前,所述方法还包括:在所述区块链客户端上设置所述代理服务器,构建包括所述区块链客户端的私有区块链,其中,所述私有区块链的节点包括:业务客户端、开发客户端和测试客户端。
另一方面,本发明实施例提供了一种基于区块链的测试装置,所述装置包括:执行模块,用于在区块链客户端上执行用户验收测试UAT;监听模块,用于通过代理服务器监听所述区块链客户端在执行所述UAT时与web服务器之间的测试交互信息,其中,所述代理服务器连接在所述区块链客户端和所述web服务器之间,所述web服务器用于运行测试对象;存储模块,用于将所述测试交互信息存储至区块链。
可选的,所述监听模块包括:第一确定单元,用于确定所述区块链客户端和所述web服务器之间的数据包类型,其中,所述数据包类型包括以下之一:超文本传输协议HTTP报文、超文本传输安全协议HTTPS报文;建立单元,用于根据所述数据包类型建立所述区块链客户端和所述web服务器之间连接链路;第一监听单元,用于监听所述连接链路上的通讯报文。
可选的,所述第一确定单元包括:监听子单元,用于监听所述区块链客户端在触发所述UAT时,向所述web服务器发送的请求数据包;处理子单元,用于解析所述请求数据包中携带的报文内容,判断所述请求数据包中是否携带CONNECT请求报文;确定子单元,用于若所述请求数据包中携带CONNECT请求报文,则确定数据包类型为HTTPS报文;若所述请求数据包中不携带CONNECT请求报文,则确定数据包类型为HTTP报文。
可选的,若所述数据包类型为HTTP报文,所述建立单元包括:提取子单元,用于提取HTTP数据包中的HOST头;建立子单元,用于根据所述HOST头建立所述代理服务器与所述web服务器之间的第一链路。
可选的,若所述数据包类型为HTTPS报文,所述建立单元包括:第一发送子单元,用于通过HTTPS数据包的统一资源定位符URL地址向所述代理服务器发送连接请求,其中,所述连接请求用于指示与所述代理服务器建立安全套接字协议SSL连接;接收子单元,用于接收所述代理服务器基于所述连接请求反馈的证书信息;生成子单元,用于根据所述证书信息确定所述SSL连接的安全等级,并基于所述安全等级生成第一会话密钥,并将所述第一会话秘钥加密传输至所述代理服务器,其中,所述第一会话密钥用于建立所述区块链客户端和所述代理服务器之间的第一加密链路;第二发送子单元,用于在所述第一加密链路建立完成后,基于所述第一加密链路控制所述代理服务器向所述web服务器发送第二会话密钥,其中,所述第二会话密钥用于建立所述代理服务器和所述web服务器之间的第二加密链路。
可选的,若所述web服务器包括基于HTTP的第一web服务器和基于HTTPS的第二web服务器,所述监听模块包括:第二确定单元,用于确定所述代理服务器的数量;第二监听单元,用于确定若所述代理服务器为一个,在所述代理服务器中建立两个与第一web服务器和第二web服务器分别对应的第一并行链路,以及建立一个与区块链客户端对应的第一串行链路;监听所述区块链客户端经由所述第一串行链路向所述web服务器传输的请求报文,以及所述web服务器经由所述第一并行链路向所述区块链客户端传输的响应报文;第三监听单元,用于若所述代理服务器为多个,在第一代理服务器上建立与第一web服务器连接的第二串行链路,在第二代理服务器上建立与第二web服务器连接的第三串行链路,以及建立一个与第三代理服务器和所述区块链客户端连接的第四串行链路;监听所述区块链客户端经由所述第四串行链路向所述web服务器传输的请求报文,以及所述web服务器经由所述第二串行链路或所述第三串行链路向所述区块链客户端传输的响应报文,其中,所述第三代理服务器与所述第一代理服务器和所述第二代理服务器分别连接。
可选的,所述装置还包括:预处理模块,用于所述执行模块在区块链客户端上执行用户验收测试UAT之前,在所述区块链客户端上设置所述代理服务器,构建包括所述区块链客户端的私有区块链,其中,所述私有区块链的节点包括:业务客户端、开发客户端和测试客户端。
根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,在区块链客户端上执行用户验收测试UAT,通过代理服务器监听区块链客户端在执行UAT时与web服务器之间的测试交互信息,最后将测试交互信息存储至区块链,通过区块链客户端来执行测试,并采用代理服务器来监听测试数据,最后存入区块链系统,解决了相关技术中的测试结果不准确的技术问题,提高了测试的准确性和可靠度,同时提高了测试效率。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例的一种基于区块链的测试计算机的硬件结构框图;
图2是根据本发明实施例的基于区块链的测试方法的流程图;
图3是本发明实施例通过一个代理服务器进行测试交互的示意图;
图4是本发明实施例通过多个代理服务器进行测试交互的示意图;
图5是根据本发明实施例的基于区块链的测试装置的结构框图。
【具体实施方式】
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
实施例1
本申请实施例一所提供的方法实施例可以在服务器、计算机或者类似的运算装置中执行。以运行在计算机上为例,图1是本发明实施例的一种基于区块链的测试计算机的硬件结构框图。如图1所示,计算机10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述计算机还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机的结构造成限定。例如,计算机10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的基于区块链的测试方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种基于区块链的测试方法,图2是根据本发明实施例的基于区块链的测试方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,在区块链客户端上执行用户验收测试UAT;
本实施例的UAT是应用程序等软件在发布之前的一种测试,包括区块链客户端和web服务器,旨在区块链客户端进行测试设计和进行破坏性测试,充分暴露系统的设计和功能问题。
步骤S204,通过代理服务器监听区块链客户端在执行UAT时与web服务器之间的测试交互信息,其中,代理服务器连接在区块链客户端和web服务器之间,web服务器用于运行测试对象;
本实施例的代理服务器作为一个区块链上的应用装载在区块链客户端上,当用户进行提测测试时候,通过代理服务器就能获取整个测试的链路,进而在区块链客户端和web服务器之间进行数据转发;
步骤S206,将测试交互信息存储至区块链。
本实施例通过获取测试链路在交互过程中的信息日志作为测试数据进行链路数据的区块封装,使用共识算法的单节点共识机制来将测试数据写入区块链。
通过本实施例的方案,在区块链客户端上执行用户验收测试UAT,通过代理服务器监听区块链客户端在执行UAT时与web服务器之间的测试交互信息,最后将测试交互信息存储至区块链,通过区块链客户端来执行测试,并采用代理服务器来监听测试数据,最后存入区块链系统,解决了相关技术中的测试结果不准确的技术问题,提高了测试的准确性和可靠度,同时提高了测试效率。
本实施例的执行主体是客户端,手机、平板、电脑、服务器等,也可以应在服务后台,服务中台等数据处理系统或业务系统中。
在本实施例中,在区块链客户端上执行用户验收测试UAT之前,还包括:在区块链客户端上设置代理服务器,构建包括区块链客户端的私有区块链,其中,私有区块链的节点包括:业务客户端、开发客户端和测试客户端。本实施例通过搭建私有链,可以实现多个用户端的数据追溯,如参与方包括业务、开发、测试三种区块链客户端,在某一个区块链客户端上建立分布式网络时,可以使用Geth(Go-Ethereum)客户端和Geth服务器来搭建分布式网络,由一方来创建初始块区块。
在本实施例中,通过代理服务器获取(区块链)客户端的测试数据以及web服务器返回的响应数据。对于连接到代理服务器的客户端来说,它是服务端;对于要连接的web服务器来说,它是客户端,负责在两端之间来回传送HTTP(HTTPS)报文。
在本实施例的一个实施方式中,通过代理服务器监听区块链客户端在执行UAT时与web服务器之间的测试交互信息包括:
S11,确定区块链客户端和web服务器之间的数据包类型,其中,数据包类型包括以下之一:HTTP(Hyper Text Transfer Protocol,超文本传输协议)报文、HTTPS(Hyper TextTransfer Protocol over Secure Socket Layer,超文本传输安全协议)报文;
可选的,确定区块链客户端和web服务器之间的数据包类型包括:监听区块链客户端在触发UAT时,向web服务器发送的请求数据包;解析请求数据包中携带的报文内容,判断请求数据包中是否携带CONNECT请求报文;若请求数据包中携带CONNECT请求报文,则确定数据包类型为HTTPS报文;若请求数据包中不携带CONNECT请求报文,则确定数据包类型为HTTP报文。
在代理服务器上创建Socket Server监听端口,根据HTTP请求头,如果是CONNECT就是HTTPS请求,否则都为HTTP请求,接着根据HOST头建立代理服务器与web服务器的连接,然后转发数据。HTTPS请求需要特殊处理,因为CONNECT请求并不需要转发,要返回一个HTTP200的响应建立隧道,之后才进行转发。
S12,根据数据包类型建立区块链客户端和web服务器之间连接链路;
在其中一个示例中,若数据包类型为HTTP报文,根据数据包类型建立区块链客户端和web服务器之间连接链路包括:提取HTTP数据包中的HOST头;根据HOST头建立代理服务器与web服务器之间的第一链路。
在另一个示例中,若数据包类型为HTTPS报文,根据数据包类型建立区块链客户端和web服务器之间连接链路包括:通过HTTPS数据包的URL(Uniform Resource Locator,统一资源定位符)地址向代理服务器发送连接请求,其中,连接请求用于指示与代理服务器建立SSL(Secure Sockets Layer安全套接字协议)连接;接收代理服务器基于连接请求反馈的证书信息;根据证书信息确定SSL连接的安全等级,并基于安全等级生成第一会话密钥,并将第一会话秘钥加密传输至代理服务器,其中,第一会话密钥用于建立区块链客户端和代理服务器之间的第一加密链路;在第一加密链路建立完成后,基于第一加密链路控制代理服务器向web服务器发送第二会话密钥,其中,第二会话密钥用于建立代理服务器和web服务器之间的第二加密链路。
如果是HTTPS请求,第一步:区块链客户端使用HTTPS的URL访问代理服务器,要求与代理服务器建立SSL连接;第二步:代理服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给区块链客户端;第三步:区块链客户端与代理服务器开始协商SSL连接的安全等级,也就是信息加密的等级;第四步:区块链客户端根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站;第五步:代理服务器利用自己的私钥解密出会话密钥;第六步:代理服务器利用会话密钥加密与区块链客户端之间的通信。这是区块链客户端与代理服务器之间的连接建立流程,同样的,代理服务器与web服务器之间建立流程(此时,代理服务器是客户端,web服务器是服务端),然后代理服务器在区块链客户端和web服务器之间转发数据。
S13,监听连接链路上的通讯报文。
在本实施例的一个实施方式中,若web服务器包括基于HTTP的第一web服务器和基于HTTPS的第二web服务器,通过代理服务器监听区块链客户端在执行UAT时与web服务器之间的测试交互信息包括:确定代理服务器的数量;若代理服务器为一个,在代理服务器中建立两个与第一web服务器和第二web服务器分别对应的第一并行链路,以及建立一个与区块链客户端对应的第一串行链路;监听区块链客户端经由第一串行链路向web服务器传输的请求报文,以及web服务器经由第一并行链路向区块链客户端传输的响应报文;若代理服务器为多个,在第一代理服务器上建立与第一web服务器连接的第二串行链路,在第二代理服务器上建立与第二web服务器连接的第三串行链路,以及建立一个与第三代理服务器和区块链客户端连接的第四串行链路;监听区块链客户端经由第四串行链路向web服务器传输的请求报文,以及web服务器经由第二串行链路或第三串行链路向区块链客户端传输的响应报文,其中,第三代理服务器与第一代理服务器和第二代理服务器分别连接。
图3是本发明实施例通过一个代理服务器进行测试交互的示意图,在测试过程中,区块链客户端可能需要同时与多个web服务器进行交互,例如,区块链客户端需要调用多个服务(如存储、安全、或者,测试数据部署在多个服务器上),在web服务器包括基于http协议的第一服务器和基于https的第二服务器时,如果只部署了一个代理服务器,则在代理服务器中创建两个相互独立的并行连接,分别对应第一代理服务器和第二代理服务器,在代理服务器与区块链客户端创建一个连接,提取数据后将数据进行合并转发;图4是本发明实施例通过多个代理服务器进行测试交互的示意图,如果部署了多个代理服务器,则根据web服务器的协议类型分成两组,分别对应第一服务器和第二服务器,同时设置一个总代理服务器(代理服务器与两组分代理服务器连接),在总代理服务器与区块链客户端创建单连接,提取给总代理服务器的数据后将数据进行合并转发。
本实施例将目前区块链应用深化在测试领域上,将原有的测试数据和风险评估能够作为一个参考,由于传统追溯测试的历史数据一般都是通过口头的描述以及其他的测试日志来进行风险评估的而这类评估方式的点无法做到追溯到最原始的真正测试数据,而测试开发的系统又是为中心数据库真实性也得不到多方的信任,所以在测试的时候由于第三方对于测试的报告和风险只是作为参考所以在发布新版本的时候传统业务都会走一波UAT流程,而同样的工作和时间都放在了UAT重复劳动的比较多一些,本实施例将测试和区块链相结合,将测试数据完全公开化,并且不可篡改,可追溯,提高了测试效率。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
在本实施例中还提供了一种基于区块链的测试装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是根据本发明实施例的基于区块链的测试装置的结构框图,如图5所示,该装置包括:执行模块50,监听模块52,存储模块55,其中,
执行模块50,用于在区块链客户端上执行用户验收测试UAT;
监听模块52,用于通过代理服务器监听所述区块链客户端在执行所述UAT时与web服务器之间的测试交互信息,其中,所述代理服务器连接在所述区块链客户端和所述web服务器之间,所述web服务器用于运行测试对象;
存储模块54,用于将所述测试交互信息存储至区块链。
可选的,所述监听模块包括:第一确定单元,用于确定所述区块链客户端和所述web服务器之间的数据包类型,其中,所述数据包类型包括以下之一:超文本传输协议HTTP报文、超文本传输安全协议HTTPS报文;建立单元,用于根据所述数据包类型建立所述区块链客户端和所述web服务器之间连接链路;第一监听单元,用于监听所述连接链路上的通讯报文。
可选的,所述第一确定单元包括:监听子单元,用于监听所述区块链客户端在触发所述UAT时,向所述web服务器发送的请求数据包;处理子单元,用于解析所述请求数据包中携带的报文内容,判断所述请求数据包中是否携带CONNECT请求报文;确定子单元,用于若所述请求数据包中携带CONNECT请求报文,则确定数据包类型为HTTPS报文;若所述请求数据包中不携带CONNECT请求报文,则确定数据包类型为HTTP报文。
可选的,若所述数据包类型为HTTP报文,所述建立单元包括:提取子单元,用于提取HTTP数据包中的HOST头;建立子单元,用于根据所述HOST头建立所述代理服务器与所述web服务器之间的第一链路。
可选的,若所述数据包类型为HTTPS报文,所述建立单元包括:第一发送子单元,用于通过HTTPS数据包的统一资源定位符URL地址向所述代理服务器发送连接请求,其中,所述连接请求用于指示与所述代理服务器建立安全套接字协议SSL连接;接收子单元,用于接收所述代理服务器基于所述连接请求反馈的证书信息;生成子单元,用于根据所述证书信息确定所述SSL连接的安全等级,并基于所述安全等级生成第一会话密钥,并将所述第一会话秘钥加密传输至所述代理服务器,其中,所述第一会话密钥用于建立所述区块链客户端和所述代理服务器之间的第一加密链路;第二发送子单元,用于在所述第一加密链路建立完成后,基于所述第一加密链路控制所述代理服务器向所述web服务器发送第二会话密钥,其中,所述第二会话密钥用于建立所述代理服务器和所述web服务器之间的第二加密链路。
可选的,若所述web服务器包括基于HTTP的第一web服务器和基于HTTPS的第二web服务器,所述监听模块包括:第二确定单元,用于确定所述代理服务器的数量;第二监听单元,用于确定若所述代理服务器为一个,在所述代理服务器中建立两个与第一web服务器和第二web服务器分别对应的第一并行链路,以及建立一个与区块链客户端对应的第一串行链路;监听所述区块链客户端经由所述第一串行链路向所述web服务器传输的请求报文,以及所述web服务器经由所述第一并行链路向所述区块链客户端传输的响应报文;第三监听单元,用于若所述代理服务器为多个,在第一代理服务器上建立与第一web服务器连接的第二串行链路,在第二代理服务器上建立与第二web服务器连接的第三串行链路,以及建立一个与第三代理服务器和所述区块链客户端连接的第四串行链路;监听所述区块链客户端经由所述第四串行链路向所述web服务器传输的请求报文,以及所述web服务器经由所述第二串行链路或所述第三串行链路向所述区块链客户端传输的响应报文,其中,所述第三代理服务器与所述第一代理服务器和所述第二代理服务器分别连接。
可选的,所述装置还包括:预处理模块,用于所述执行模块在区块链客户端上执行用户验收测试UAT之前,在所述区块链客户端上设置所述代理服务器,构建包括所述区块链客户端的私有区块链,其中,所述私有区块链的节点包括:业务客户端、开发客户端和测试客户端。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
实施例3
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(Processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,在区块链客户端上执行用户验收测试UAT;
S2,通过代理服务器监听所述区块链客户端在执行所述UAT时与web服务器之间的测试交互信息,其中,所述代理服务器连接在所述区块链客户端和所述web服务器之间,所述web服务器用于运行测试对象;
S3,将所述测试交互信息存储至区块链。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,在区块链客户端上执行用户验收测试UAT;
S2,通过代理服务器监听所述区块链客户端在执行所述UAT时与web服务器之间的测试交互信息,其中,所述代理服务器连接在所述区块链客户端和所述web服务器之间,所述web服务器用于运行测试对象;
S3,将所述测试交互信息存储至区块链。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
Claims (9)
1.一种基于区块链的测试方法,其特征在于,包括:
在区块链客户端上执行用户验收测试UAT;
通过代理服务器监听所述区块链客户端在执行所述UAT时与web服务器之间的测试交互信息,其中,所述代理服务器连接在所述区块链客户端和所述web服务器之间,所述web服务器用于运行测试对象;
将所述测试交互信息存储至区块链;
通过代理服务器监听所述区块链客户端在执行UAT时与web服务器之间的测试交互信息包括:
确定所述区块链客户端和所述web服务器之间的数据包类型,其中,所述数据包类型包括以下之一:超文本传输协议HTTP报文、超文本传输安全协议HTTPS报文;
根据所述数据包类型建立所述区块链客户端和所述web服务器之间连接链路;
监听所述连接链路上的通讯报文。
2.根据权利要求1所述的方法,其特征在于,确定所述区块链客户端和所述web服务器之间的数据包类型包括:
监听所述区块链客户端在触发所述UAT时,向所述web服务器发送的请求数据包;
解析所述请求数据包中携带的报文内容,判断所述请求数据包中是否携带CONNECT请求报文;
若所述请求数据包中携带CONNECT请求报文,则确定数据包类型为HTTPS报文;若所述请求数据包中不携带CONNECT请求报文,则确定数据包类型为HTTP报文。
3.根据权利要求1所述的方法,其特征在于,若所述数据包类型为HTTP报文,根据所述数据包类型建立所述区块链客户端和所述web服务器之间连接链路包括:
提取HTTP数据包中的HOST头;
根据所述HOST头建立所述代理服务器与所述web服务器之间的第一链路。
4.根据权利要求1所述的方法,其特征在于,若所述数据包类型为HTTPS报文,根据所述数据包类型建立所述区块链客户端和所述web服务器之间连接链路包括:
通过HTTPS数据包的统一资源定位符URL地址向所述代理服务器发送连接请求,其中,所述连接请求用于指示与所述代理服务器建立安全套接字协议SSL连接;
接收所述代理服务器基于所述连接请求反馈的证书信息;
根据所述证书信息确定所述SSL连接的安全等级,并基于所述安全等级生成第一会话密钥,并将所述第一会话秘钥加密传输至所述代理服务器,其中,所述第一会话密钥用于建立所述区块链客户端和所述代理服务器之间的第一加密链路;
在所述第一加密链路建立完成后,基于所述第一加密链路控制所述代理服务器向所述web服务器发送第二会话密钥,其中,所述第二会话密钥用于建立所述代理服务器和所述web服务器之间的第二加密链路。
5.根据权利要求1所述的方法,其特征在于,若所述web服务器包括基于HTTP的第一web服务器和基于HTTPS的第二web服务器,通过代理服务器监听所述区块链客户端在执行所述UAT时与web服务器之间的测试交互信息包括:
确定所述代理服务器的数量;
若所述代理服务器为一个,在所述代理服务器中建立两个与第一web服务器和第二web服务器分别对应的第一并行链路,以及建立一个与区块链客户端对应的第一串行链路;监听所述区块链客户端经由所述第一串行链路向所述web服务器传输的请求报文,以及所述web服务器经由所述第一并行链路向所述区块链客户端传输的响应报文;
若所述代理服务器为多个,在第一代理服务器上建立与第一web服务器连接的第二串行链路,在第二代理服务器上建立与第二web服务器连接的第三串行链路,以及建立一个与第三代理服务器和所述区块链客户端连接的第四串行链路;监听所述区块链客户端经由所述第四串行链路向所述web服务器传输的请求报文,以及所述web服务器经由所述第二串行链路或所述第三串行链路向所述区块链客户端传输的响应报文,其中,所述第三代理服务器与所述第一代理服务器和所述第二代理服务器分别连接。
6.根据权利要求1所述的方法,其特征在于,在区块链客户端上执行用户验收测试UAT之前,所述方法还包括:
在所述区块链客户端上设置所述代理服务器,构建包括所述区块链客户端的私有区块链,其中,所述私有区块链的节点包括:业务客户端、开发客户端和测试客户端。
7.一种基于区块链的测试装置,其特征在于,包括:
执行模块,用于在区块链客户端上执行用户验收测试UAT;
监听模块,用于通过代理服务器监听所述区块链客户端在执行所述UAT时与web服务器之间的测试交互信息,其中,所述代理服务器连接在所述区块链客户端和所述web服务器之间,所述web服务器用于运行测试对象;
存储模块,用于将所述测试交互信息存储至区块链;
所述监听模块包括:
第一确定单元,用于确定所述区块链客户端和所述web服务器之间的数据包类型,其中,所述数据包类型包括以下之一:超文本传输协议HTTP报文、超文本传输安全协议HTTPS报文;
建立单元,用于根据所述数据包类型建立所述区块链客户端和所述web服务器之间连接链路;
第一监听单元,用于监听所述连接链路上的通讯报文。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
9.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010602528.1A CN111866088B (zh) | 2020-06-29 | 2020-06-29 | 基于区块链的测试方法及装置、计算机设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010602528.1A CN111866088B (zh) | 2020-06-29 | 2020-06-29 | 基于区块链的测试方法及装置、计算机设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111866088A CN111866088A (zh) | 2020-10-30 |
CN111866088B true CN111866088B (zh) | 2022-08-26 |
Family
ID=72988753
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010602528.1A Active CN111866088B (zh) | 2020-06-29 | 2020-06-29 | 基于区块链的测试方法及装置、计算机设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111866088B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115733769A (zh) * | 2021-08-27 | 2023-03-03 | 中兴通讯股份有限公司 | 链路测试方法、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109753433A (zh) * | 2018-12-26 | 2019-05-14 | 中链科技有限公司 | 基于区块链的自动化测试方法、装置及电子设备 |
CN110263585A (zh) * | 2019-06-26 | 2019-09-20 | 腾讯科技(深圳)有限公司 | 测试监管方法、装置、设备及存储介质 |
CN111061646A (zh) * | 2019-12-26 | 2020-04-24 | 山东爱城市网信息技术有限公司 | 一种基于区块链智能合约的测试管理系统及设备、介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA3061603A1 (en) * | 2018-11-14 | 2020-05-14 | Royal Bank Of Canada | System and method for storing contract data structures on permissioned distributed ledgers |
-
2020
- 2020-06-29 CN CN202010602528.1A patent/CN111866088B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109753433A (zh) * | 2018-12-26 | 2019-05-14 | 中链科技有限公司 | 基于区块链的自动化测试方法、装置及电子设备 |
CN110263585A (zh) * | 2019-06-26 | 2019-09-20 | 腾讯科技(深圳)有限公司 | 测试监管方法、装置、设备及存储介质 |
CN111061646A (zh) * | 2019-12-26 | 2020-04-24 | 山东爱城市网信息技术有限公司 | 一种基于区块链智能合约的测试管理系统及设备、介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111866088A (zh) | 2020-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Faria et al. | BlockSim: blockchain simulator | |
CN108965230A (zh) | 一种安全通信方法、系统及终端设备 | |
CN111737724A (zh) | 一种数据处理方法、装置、智能设备及存储介质 | |
EP3234792B1 (en) | Verification of data processes in a network of computing resources | |
CN101873331B (zh) | 一种安全认证方法和系统 | |
CN107396360A (zh) | 区块验证方法及装置 | |
CN111506909B (zh) | 一种银税数据交互方法及系统 | |
CN106961429B (zh) | 一种面向混合云计算平台的协同服务方法 | |
CN110601815B (zh) | 一种区块链数据处理方法以及设备 | |
CN112804354B (zh) | 跨链进行数据传输的方法、装置、计算机设备和存储介质 | |
CN105915529B (zh) | 一种报文生成方法及装置 | |
CN111224834B (zh) | 模拟测试方法、装置、服务器及存储介质 | |
CN109815659A (zh) | 基于web项目的安全认证方法、装置、电子设备及存储介质 | |
CN111866088B (zh) | 基于区块链的测试方法及装置、计算机设备、存储介质 | |
CN112615838B (zh) | 一种可扩展的区块链跨链通信方法 | |
CN113449322A (zh) | 基于区块链的数据共享方法、装置、电子设备及可读介质 | |
CN116633725A (zh) | 一种全渠道接入网关 | |
CN114785526B (zh) | 基于区块链的多用户多批次权重分配计算及存储处理系统 | |
CN115334150B (zh) | 一种数据转发的方法、装置、系统、电子设备及介质 | |
CN115022012B (zh) | 一种数据传输方法、装置、系统、设备及存储介质 | |
CN111161041A (zh) | 一种基于区块链的对账方法及装置 | |
CN111049798B (zh) | 一种信息处理方法、装置和计算机可读存储介质 | |
Shahzad et al. | Blockchain based monitoring on trustless supply chain processes | |
CN104640093B (zh) | 业务处理装置 | |
CN117195310B (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 |