一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于软硬件证券行情系统的自动化测试方法及装置与流程

2021-12-08 00:04:00 来源:中国专利 TAG:


1.本发明涉及自动化测试技术领域,尤其涉及一种基于软硬件证券行情系统的自动化测试方法及装置。


背景技术:

2.随着硬件技术在金融业的运用,尤其在证券行情领域得到充分发挥,产生了软硬件结合的证券行情系统。
3.对于每一个交易所均有对应的软硬件证券行情系统,在针对软硬件证券行情系统进行测试时,现有技术中采用手工测试的方式,手工执行测试步骤繁琐:测试行情数据源中报文需要运行的python自动化脚本进行解析行情数据源、烧制硬件版本、检查硬件版本、检查静态文件并修改静态文件日期使其适配当天测试日期、修改硬件设置使其和数据源匹配、启动软件系统、启动接收端。
4.手工测试软硬件证券行情系统繁琐且费时,重复测试多个行情数据源时,则需重复执行以上操作,花费大量时间,测试效率低。


技术实现要素:

5.有鉴于此,本发明提供了一种基于软硬件证券行情系统的自动化测试方法及装置,用以解决手工测试软硬件证券行情系统繁琐且费时,重复测试多个行情数据源时,则需重复执行以上操作,花费大量时间,测试效率低问题。具体方案如下:
6.一种基于软硬件证券行情系统的自动化测试方法,预先设置自动化jenkins脚本,其中,所述自动化jenkins脚本包含至少一个测试脚本,所述测试脚本用于将对应的全链路自动化测试步骤定制化,所述测试方法包括:
7.在接收到对当前软硬件证券行情系统的自动化测试请求的情况下,获取所述当前软硬件证券行情系统的报文,对所述报文基于python自动化脚本进行测试,得到第一数据;
8.基于所述自动化jenkins脚本中对应的测试脚本获取所述当前软硬件证券行情系统中硬件解析的第二数据;
9.对所述第一数据和所述第二数据进行对比,获取对比结果;
10.基于所述对比结果生成测试报告。
11.上述的方法,可选的,对所述报文基于python自动化脚本进行测试,得到第一数据,包括:
12.获取所述报文中的有效荷载;
13.基于所述有效载荷中标识,对所述有效载荷进行拼接,得到目标有效载荷;
14.对所述目标有效载荷进行行情解析,得到第一数据。
15.上述的方法,可选的,基于所述自动化jenkins脚本中对应的测试脚本获取所述当前软硬件证券行情系统中硬件解析的第二数据,包括:
16.获取与所述前软硬件证券行情系统对应的目标测试脚本;
17.基于所述目标测试脚本对所述当前软硬件证券行情系统中的报文进行解析,得到第二数据。
18.上述的方法,可选的,对所述第一数据和所述第二数据进行对比,包括:
19.基于行情类别对所述第一数据进行分类,得到第一目标数据;
20.基于所述行情类别对所述第二数据进行分类,得到第二目标数据;
21.将所述第一目标数据和所述第二目标数据中的对应项进行对比,将所述第一目标数据和所述第二目标数据中的差异项作为对比结果。
22.上述的方法,可选的,还包括:所述python自动化脚本存储于gitlab中,
23.在接收对所述python自动化脚本的更新指令的情况下,将更新完成的python存储与所述gitlab中。
24.一种基于软硬件证券行情系统的自动化测试装置,预先设置自动化jenkins脚本,其中,所述自动化jenkins脚本包含至少一个测试脚本,所述测试脚本用于将对应的全链路自动化测试步骤定制化,所述测试装置包括:
25.第一测试模块,用于在接收到对当前软硬件证券行情系统的自动化测试请求的情况下,获取所述当前软硬件证券行情系统的报文,对所述报文基于python自动化脚本进行测试,得到第一数据;
26.第二测试模块,用于基于所述自动化jenkins脚本中对应的测试脚本获取所述当前软硬件证券行情系统中硬件解析的第二数据;
27.对比模块,用于对所述第一数据和所述第二数据进行对比,获取对比结果;
28.生成模块,用于基于所述对比结果生成测试报告。
29.上述的装置,可选的,所述第一测试模块包括:
30.第一获取单元,用于获取所述报文中的有效荷载;
31.拼接单元,用于基于所述有效载荷中标识,对所述有效载荷进行拼接,得到目标有效载荷;
32.解析单元,用于对所述目标有效载荷进行行情解析,得到第一数据。
33.上述的装置,可选的,所述第二测试模块包括:
34.第二获取单元,用于获取与所述前软硬件证券行情系统对应的目标测试脚本;
35.解析单元,用于基于所述目标测试脚本对所述当前软硬件证券行情系统中的报文进行解析,得到第二数据。
36.上述的装置,可选的,所述对比模块包括:
37.第一分类单元,用于基于行情类别对所述第一数据进行分类,得到第一目标数据;
38.第二分类单元,用于基于所述行情类别对所述第二数据进行分类,得到第二目标数据;
39.对比单元,用于将所述第一目标数据和所述第二目标数据中的对应项进行对比,将所述第一目标数据和所述第二目标数据中的差异项作为对比结果。
40.上述的装置,可选的,所述python自动化脚本存储于gitlab中,还包括:
41.存储模块,用于在接收对所述python自动化脚本的更新指令的情况下,将更新完成的python存储与所述gitlab中。
42.与现有技术相比,本发明包括以下优点:
43.本发明公开了一种基于软硬件证券行情系统的自动化测试方法及装置,预先设置自动化jenkins脚本,其中,所述自动化jenkins脚本包含至少一个测试脚本,所述测试脚本用于将对应的全链路自动化测试步骤定制化,所述测试方法包括:在接收到对当前软硬件证券行情系统的自动化测试请求的情况下,获取所述当前软硬件证券行情系统的报文,对所述报文基于python自动化脚本进行测试,得到第一数据;基于所述自动化jenkins脚本中对应的测试脚本获取所述当前软硬件证券行情系统中硬件解析的第二数据;对所述第一数据和所述第二数据进行对比,获取对比结果;基于所述对比结果生成测试报告。上述过程,基于自动化jenkins脚本中对应的测试脚本获取硬件解析的第二数据,由于测试脚本用于将对应的全链路自动化测试步骤定制化,不再需要烧制硬件版本和检查硬件版本等操作,减少了测试时间,提高了测试效率。
附图说明
44.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
45.图1为本技术实施例公开的一种基于软硬件证券行情系统的自动化测试方法流程图;
46.图2为本技术实施例公开的一种全链路测试架构图;
47.图3为本技术实施例公开的一种基于软硬件证券行情系统的自动化测试装置结构框图。
具体实施方式
48.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
49.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
50.本发明公开了一种基于软硬件证券行情系统的自动化测试方法及装置,应用于对软硬件证券行情系统进行自动化测试过程中,现有技术中采用手工测试的方式,测试行情数据源中报文需要运行的python自动化脚本进行解析行情数据源、烧制硬件版本、检查硬件版本、检查静态文件并修改静态文件日期使其适配当天测试日期、修改硬件设置使其和数据源匹配、启动软件系统、启动接收端。手工测试软硬件证券行情系统繁琐且费时,重复测试多个行情数据源时,则需重复执行以上操作,花费大量时间,测试效率低。为了解决上述问题,本发明提供了一种基于软硬件证券行情系统的自动化测试方法,所述测试方法的
执行流程如图1所示,所述测试方法中预先设置自动化jenkins脚本,其中,所述自动化jenkins脚本包含至少一个测试脚本,所述测试脚本用于将对应的全链路自动化测试步骤定制化。
51.所述自动化jenkins脚本是全链路自动化jenkins脚本,根据jenkins工作流框架pipeline,将手动执行全链路测试的步骤定制化,转化成一个小任务,并依次将这些任务串联的脚本,该自动化jenkins脚本是实现全链路自动化测试的基础。在该自动化jenkins脚本中配置了软硬件版本发版目录、软件安装目录、行情数据包目录、硬件重置shell脚本目录、硬件配置脚本目录、硬件解析数据目录、python解析数据目录、gitlab服务器地址等。
52.所述测试方法包括步骤:
53.s101、在接收到对当前软硬件证券行情系统的自动化测试请求的情况下,获取所述当前软硬件证券行情系统的报文,对所述报文基于python自动化脚本进行测试,得到第一数据;
54.本发明实施例中,所述python自动化脚本的部分代码如下所示:其中,f是证券交易所行情源。
55.python解析脚本中读取数据包内容代码:tcp
56.[0057][0058]
所述python自动化脚本是验证全链路是否准确的核心,所述python自动化脚本包括:行情解析脚本、数据对比脚本和测试报告脚本。其中,所述行情解析脚本支持上交所、深交所、中金所、上期、黄金交易所。行情解析共分为三大部分:获取报文中的有效荷载、对报文的有效荷载进行乱序重组、解析行情,其中,所述报文基于行情数据源得到,具体过程如下:
[0059]
首先针对获取报文中的有效荷载的处理过程如下:通过python的dpkt库读取数据包内容,其中,所述dptk库用于解析报文,对于tcp报文,获取每一条报文物理层的数据帧的获取报文时间,传输层的有效荷载、报文序号,并存放进以报文序号和获取报文时间为唯一键值,值为有效荷载的数据字典中;对于udp报文,根据ip层的标志位(flags)判断是否分包,若该报文没有分包,则直接获取传输层的有效荷载存入列表缓存中,若该报文进行了分包,则利用dpkt库获取udp报文ip层的标识号(identification),存入以标识号为键值,值为标志位和有效荷载的数据字典中;
[0060]
其次对报文的有效荷载进行乱序重组的处理过程如下:循环遍历所述数据字典,将所述数据字典中的报文序号作为标识,对于tcp报文根据当前报文的下一条报文序号的计算规则(下一条报文序号=当前报文序号 当前报文有效荷载的字节数),获取当前遍历的报文序号的下一条报文序号,并将该键的值有效荷载进行拼接,遍历完成后将拼接好的有效荷载字符串放入大缓存中;对于udp报文,对同一组标识号的报文,根据下一标志计算规则(下一标志位=当前标志位 当前报文的有效荷载的字节数/8)进行重组和拼接,并放入列表缓存中;
[0061]
最后针对解析行情的处理过程如下:本发明实施例中解析过程以深交所、上交所、中金所、黄金交易所和上期为例进行说明,但不限于上述交易所。基于行情解析处理过程,将所述报文解析为第一数据,其中,所述第一数据与交易所的选取有关。
[0062]
针对深交所的解析过程包括:现货(股票、基金、债券等)集中竞价交易快照行情、质押式回购交易快照行情、期权集中竞价交易快照行情、指数快照行情、成交量统计指标快
照行情、国证指数快照行情、现货(股票、基金、债券等)集中竞价交易逐笔委托行情、质押式回购交易逐笔委托行情、期权集中竞价交易逐笔委托行情、现货(股票、基金、债券等)集中竞价交易逐笔成交行情、质押式回购交易逐笔成交行情、期权集中竞价交易逐笔成交行情。
[0063]
深交所解析逻辑包括:深交所数据包每一个报文的有效荷载包为深交所的业务消息,深交所的消息结构为消息头、消息体、消息尾,消息头定义了该消息的消息类型即行情类别、消息体长度,消息体为行情类别的业务数据,消息尾为消息的校验和。对于tcp报文拼接的有效荷载字符串,首先根据消息类型将有效荷载字符串分隔成一个个完整的消息,并放入一个队列中,待队列中的数据条数达到配置的值,则从该队列中拿取数据,若消息头中的行情类别是需要解析的数据,则根据交易所定义的数据结构体,进行逐个字段解析,并将数据放入结果列表缓存中,最后落地数据到文件(第一数据);对于udp报文拼接的有效荷载,遍历列表若消息头中的行情类别是需要解析的数据,则根据交易所定义的数据结构体,进行逐个字段解析,并将数据放入结果列表缓存中,最后落地数据到文件(第一数据)。
[0064]
针对上交所的解析过程包括:竞价快照行情、竞价逐笔委托行情、竞价逐笔成交行情、指数行情、期权行情。
[0065]
上交所解析逻辑包括:上交所消息以step协议进行封装,每个step消息有消息头、消息体、消息尾组成,消息头定了消息的类型、长度,每个消息体重包含了一条或者多条同一消息类型的fast数据。每次读取配置的大小有效荷载缓存,若读取到的有效荷载缓存长度大于等于消息头中的长度,且消息类型为所需要的解析的数据,则根据交易所定义的数据结构体,进行逐个字段解析,并将数据放入结果列表缓存中,最后落地数据到文件(第一数据)。
[0066]
针对中金所解析包括:解析所有行情;
[0067]
中金所解析逻辑包括:中金所为udp报文,目前共有四种解析方式自身、反码、异或自身、异或某个值,先根据解析的字段值确定解析方式之后,遍历缓存列表,解析所有数据,将数据结果放入结果列表缓存中,最后落地到数据文件(第一数据)。
[0068]
针对黄金交易所解析包括:交易实时行情、交割实时行情;
[0069]
黄金交易所解析逻辑包括:黄金交易所为tcp报文,以键值的方式编码后发送,根据信息交换用汉字编码字符集(gb2312)解码后落地数据到文件(第一数据)。
[0070]
针对上期解析包括:能源行情、期权行情;
[0071]
上期解析逻辑包括:上期行情分tcp消息和udp消息,根据交易所提供的tcp报文的结构和字段规则,先对tcp报文进行解析,将解析结果放入缓存中,再根据交易所提供的udp报文的结构和字段规则对udp报文进行解析,将解析结果放入缓存中,最后,将tcp报文的解析结果和udp报文的解析结果,根据交易所提供的计算规则进行计算,得出最后的能源行情/期权行情存入列表缓存中,最后落地到文件(第一数据)。
[0072]
s102、基于所述自动化jenkins脚本中对应的测试脚本获取所述当前软硬件证券行情系统中硬件解析的第二数据;
[0073]
本发明实施例中,针对所述报文,在所述自动化jenkins脚本中选取目标测试脚本,其中,所述目标测试脚本的选取过程可以为预先将报文类型和对应的测试脚本建立关联,在基于所述自动化jenkins脚本为所述报文选取对应的测试脚本时,解析所述报文,确定所述报文的类型,针对所述类型,选取与所述类型匹配的目标测试脚本,基于所述目标测
试脚本对所述当前软硬件证券行情系统中的报文进行解析,得到第二数据。
[0074]
s103、对所述第一数据和所述第二数据进行对比,获取对比结果;
[0075]
本发明实施例中,对所述第一数据和所述第二数据进行对比,可支持几千万数据进行比对,并得出差异项,具体过程如下:由于所述第一数据和所述第二数据所有数据混在一起,首先利用python的os、re库遍历所述第一数据,同时根据不同的行情类别,对所述第一数据进行分类,获取每个行情类别需要对比的字段值,按照定义的数据格式放入对应的行情列表缓存中,得到第一目标数据。
[0076]
其次利用python的os、re库遍历硬所述第二数据,同时根据不同的行情类别,对python解析的数据进行分类,获取每个行情类别需要对比的字段值,按照定义的数据格式放入对应的行情列表缓存中,得到所述第二目标数据。
[0077]
最后将所述第一目标数据和所述第二目标数据中的对应项进行对比,利用集合进行去重,去重后根据集合的减法得出两者的差异项,将所述差异项作为对比结果,其中,若所述第一数据和所述第二数据两者相同,将所述差异项为空集。
[0078]
s104、基于所述对比结果生成测试报告。
[0079]
本发明实施例中,将所述对比结果转化成测试报告脚本中定义的html格式的测试报告。
[0080]
本发明公开了一种基于软硬件证券行情系统的自动化测试方法,预先设置自动化jenkins脚本,其中,所述自动化jenkins脚本包含至少一个测试脚本,所述测试脚本用于将对应的全链路自动化测试步骤定制化,所述测试方法包括:在接收到对当前软硬件证券行情系统的自动化测试请求的情况下,获取所述当前软硬件证券行情系统的报文,对所述报文基于python自动化脚本进行测试,得到第一数据;基于所述自动化jenkins脚本中对应的测试脚本获取所述当前软硬件证券行情系统中硬件解析的第二数据;对所述第一数据和所述第二数据进行对比,获取对比结果;基于所述对比结果生成测试报告。上述过程,基于自动化jenkins脚本中对应的测试脚本获取硬件解析的第二数据,由于测试脚本用于将对应的全链路自动化测试步骤定制化,不再需要烧制硬件版本和检查硬件版本等操作,减少了测试时间,提高了测试效率。
[0081]
本发明实施例中,所述测试方法基于jenkins持续集成和运行维护,优选的,所述python自动化脚本储于gitlab中,在接收对所述python自动化脚本的更新指令的情况下,将更新完成的python存储与所述gitlab中。
[0082]
本发明实施例中,基于上述测试方法进行举例说明,全链路自动化测试步骤如下:在jenkins平台构建全链路自动化项目,该项目脚本配置地址为全链路自动化jenkins脚本地址,在该项目下构建全链路自动化定时任务,设置任务参数:交易所、行情软件版本、硬件版本、运行服务器、发送端口、接收端口(接收端口、发送端口和所选服务器有关),参数设置完成则执行全链路自动化任务,根据所设置的任务参数,实现软硬件配置和全链路自动化步骤的定制化。最终输出测试结果会归档到持续集成平台服务器,并发送测试结果数据报告至相关全链路自动化项目人员。
[0083]
全链路测试场景为:行情系统实现和发送端(行情mdgw/vde)、接收端(sfc网卡和fpga)的行情建联,数据包(行情数据)从发送端口到硬件、行情软件,硬件解析后通过接收端口组播udp解析行情数据,接收端通过接收端口获取udp解析行情数据,并解析成固定的
数据格式落地到文件,其中发送端指交易所行情网关,全链路测试时通过在发送端口发送数据包模拟交易所行情网关。部署架构图如图2所示:
[0084]
(1)在jenkins持续集成平台服务器全链路自动化项目下构建全链路自动化定时任务,设置任务参数:交易所、行情软件版本、硬件版本、运行服务器、发送端口、接收端口(接收端口、发送端口和所选服务器有关),参数设置完毕,则定时执行全链路自动化任务。
[0085]
(2)根据全链路自动化jenkins脚本中配置的gitlab服务器地址,从gitlab获取到最新的python自动化脚本
[0086]
(3)执行全链路自动化jenkins脚本
[0087]
根据步骤(1)中所配置的任务参数运行服务器,在该服务器上依次执行以下操作:
[0088]
根据步骤(1)中所配置的任务参数发送端口,修改发送端口的最大报文长度;
[0089]
根据步骤(1)中所配置的任务参数软件版本、硬件版本,和全链路自动化jenkins脚本中配置的软硬件版本发版目录,获取被测的软硬件版本、硬件重置shell脚本、硬件配置脚本。同时将硬件重置shell脚本、硬件配置脚本复制到全链路自动化jenkins脚本中配置的硬件重置shell脚本目录、硬件配置脚本目录中。
[0090]
根据步骤(1)中所配置的任务参数接收端口,确认硬件版卡,并将获取到的被测硬件版本烧至该硬件办卡。
[0091]
根据步骤(1)中所配置的任务参数发送端口、接收端口,以及全链路自动化jenkins脚本中配置的软件安装目录,修改行情软件系统配置中的接收端、发送端、编辑软件接收端。
[0092]
根据步骤(1)中所配置的任务参数交易所,以及全链路自动化jenkins脚本中配置的交易所静态文件目录和系统时间,修改服务器上对应交易所的静态文件的日期;
[0093]
根据步骤(1)中所配置的任务参数交易所,以及全链路自动化jenkins脚本中配置的交易所行情数据源地址,确定本次全链路自动化任务需测试的行情数据源。
[0094]
根据步骤(1)中所配置的任务参数交易所,以及全链路自动化jenkins脚本中配置的交易所硬件重置shell脚本目录,并获取上一步骤确定被测行情数据包ip层的目标地址、ip层的源地址、tcp层的目标端口、tcp层源端口、有效荷载的循环冗余校验(crc),并根据这些信息修改交易所硬件重置shell脚本。
[0095]
根据全链路自动化jenkins脚本中配置的软件安装目录,删除行情软件的日志文件,启动行情软件。根据新增的日志文件判断其是否启动完成。若日志文件中写入“exanic_acquire_handle success”或者“fpga initialization successful”相关的日志,说明软件启动完成,则根据行情软件的名称,获取行情软件运行的进程号存入缓存中
[0096]
根据全链路自动化jenkins脚本中配置的软件安装目录,删除接收端的日志文件,启动接收端。输入接收端中订阅参数,得到订阅成功的返回信息后,获取该接收端运行的进程号存入缓存中。
[0097]
根据步骤(1)中所配置的任务参数交易所,以及全链路自动化jenkins脚本中配置的交易所硬件重置shell脚本目录,执行硬件重置shell脚本,将被测行情数据包ip层的目标地址、ip层的源地址、tcp层的目标端口、tcp层源端口、有效荷载的循环冗余校验(crc)写入硬件的寄存器,保证硬件只解析目标地址、源地址、目标端口、源端口和写入的目标地址、源地址、目标端口、源端口一致的报文,并清空硬件缓存的报文信息。
[0098]
在发送端口回放(tcpreplay)被测行情数据包,记录回放(tcpreplay)被测行情数据包进程号到缓存中。同时根据被测行情数据包的名称、以及全链路自动化jenkins脚本中配置的python解析数据目录,获取被测行情数据包python解析对应数据文件,若不存在该解析数据文件,则调用python行情解析脚本进行解析,记录python解析进程号到缓存中,每5秒检测python解析进程号是否存在。
[0099]
根据步骤(1)中所配置的任务参数交易所,以及全链路自动化jenkins脚本中配置的交易所硬件配置脚本目录,执行硬件配置脚本,读取到硬件各个寄存器的值,根据硬件寄存器的出口数据值判断硬件是否解析正常,硬件寄存器的出口数据值数为零,则根据进程号关闭行情软件系统、接收端,从启动行情系统开始重新执行,否则等待回放(tcpreplay)被测行情数据包进程结束,每5秒检测回放(tcpreplay)被测行情数据包进程号是否存在。
[0100]
回放(tcpreplay)被测行情数据包进程号不存在,则根据行情软件运行进的程号、接收端运行的进程号关闭行情软件系统、接收端。
[0101]
python解析进程号不存在,则根据全链路自动化jenkins脚本中配置的硬件解析数据目录,以及全链路自动化jenkins脚本中配置的python解析数据目录,调用python数据对比脚本,将两份数据进行比对,并将结果数据写入文件,存放至全链路自动化jenkins脚本中配置的对比目录下。
[0102]
归档测试数据,在全链路自动化jenkins脚本中配置的归档路径下新增一个以被测试行情数据包命名的文件,并将硬件解析数据、python解析数据、对比结果数据归档到该文件下。
[0103]
重复在执行从修改交易所硬件重置shell脚本到归档测试数据的操作,直到测试完成所有被测行情数据包。
[0104]
调用python测试报告脚本,根据python对比脚本生成的结果文件生成测试报告。
[0105]
将生成的测试报告、归档测试数据路径、jenkins的pipeline框架自动生成的执行过程及执行结果,发送给全链路自动化jenkins脚本中配置的邮箱。
[0106]
本发明实施例中,上述过程的整体处理流程包括:首先在gitlab中获取最新的代码(python自动化脚本),在jenkins中构建新的工程,包括交易所,硬件版本,接收端口、发送端口,运行服务器和行情软件版本,针对交易所,产生行情数据源,基于所述行情数据源修改硬件配置搅拌,并将修改后的硬件配置脚本更新到服务器,针对硬件版本,烧制硬件版本得到对应的硬件,针对接收端口和发送端口,编译接收端,发送给服务器的接收端,针对服务器包括:接收端,修改过静态文件日期的静态文件、行情软件系统和python脚本,针对所述行情软件系统,更新行情软件版本,将更新后的行情软件版本发送给行情软件系统,在所述行情软件系统启动之前,会清空所述行情软件系统的系统日志,若启动未完成,等待启动完成,若启动完成,执行硬件配置脚本(修改后的硬件配置脚本),播放行情数据源,首先判断硬件解析是否正常,若否,关闭接收端、行情软件系统,并清空行情软件系统的日志,若是,判断行情数据是否播放完毕,若否,等待播放完毕,若是判断是否存在python解析数据,若否,基于python解析行情数据源,若是,执行对比脚本,输出测试结果,判断所有行情数据源是否验证完毕,若否关闭接收端,行情软件系统,若是,发送测试报告,结束测试。
[0107]
基于上述的一种基于软硬件证券行情系统的自动化测试方法,本发明实施例中,还提供了一种基于软硬件证券行情系统的自动化测试装置,所述测试装置中预先设置自动
化jenkins脚本,其中,所述自动化jenkins脚本包含至少一个测试脚本,所述测试脚本用于将对应的全链路自动化测试步骤定制化,所述测试装置的结构框图如图3所示,包括:
[0108]
第一测试模块201、第二测试模块202、对比模块203和生成模块204。
[0109]
其中,
[0110]
所述第一测试模块201,用于在接收到对当前软硬件证券行情系统的自动化测试请求的情况下,获取所述当前软硬件证券行情系统的报文,对所述报文基于python自动化脚本进行测试,得到第一数据;
[0111]
所述第二测试模块202,用于基于所述自动化jenkins脚本中对应的测试脚本获取所述当前软硬件证券行情系统中硬件解析的第二数据;
[0112]
所述对比模块203,用于对所述第一数据和所述第二数据进行对比,获取对比结果;
[0113]
所述生成模块204,用于基于所述对比结果生成测试报告。
[0114]
本发明公开了一种基于软硬件证券行情系统的自动化测试装置,预先设置自动化jenkins脚本,其中,所述自动化jenkins脚本包含至少一个测试脚本,所述测试脚本用于将对应的全链路自动化测试步骤定制化,所述测试装置括:在接收到对当前软硬件证券行情系统的自动化测试请求的情况下,获取所述当前软硬件证券行情系统的报文,对所述报文基于python自动化脚本进行测试,得到第一数据;基于所述自动化jenkins脚本中对应的测试脚本获取所述当前软硬件证券行情系统中硬件解析的第二数据;对所述第一数据和所述第二数据进行对比,获取对比结果;基于所述对比结果生成测试报告。上述过程,基于自动化jenkins脚本中对应的测试脚本获取硬件解析的第二数据,由于测试脚本用于将对应的全链路自动化测试步骤定制化,不再需要烧制硬件版本和检查硬件版本等操作,减少了测试时间,提高了测试效率。
[0115]
本发明实施例中,所述第一测试模块201包括:
[0116]
第一获取单元205、拼接单元206和解析单元207。
[0117]
其中,
[0118]
所述第一获取单元205,用于获取所述报文中的有效荷载;
[0119]
所述拼接单元206,用于基于所述有效载荷中标识,对所述有效载荷进行拼接,得到目标有效载荷;
[0120]
所述解析单元207,用于对所述目标有效载荷进行行情解析,得到第一数据。
[0121]
本发明实施例中,所述第二测试模块202包括:
[0122]
第二获取单元208和解析单元209。
[0123]
其中,
[0124]
所述第二获取单元208,用于获取与所述前软硬件证券行情系统对应的目标测试脚本;
[0125]
所述解析单元209,用于基于所述目标测试脚本对所述当前软硬件证券行情系统中的报文进行解析,得到第二数据。
[0126]
本发明实施例中,所述对比模块203包括:
[0127]
第一分类单元210、第二分类单元211和对比单元212。
[0128]
其中,
[0129]
所述第一分类单元210,用于基于行情类别对所述第一数据进行分类,得到第一目标数据;
[0130]
所述第二分类单元211,用于基于所述行情类别对所述第二数据进行分类,得到第二目标数据;
[0131]
所述对比单元212,用于将所述第一目标数据和所述第二目标数据中的对应项进行对比,将所述第一目标数据和所述第二目标数据中的差异项作为对比结果。
[0132]
本发明实施例中,所述python自动化脚本存储于gitlab中,所述测试装置还包括:
[0133]
存储模块,用于在接收对所述python自动化脚本的更新指令的情况下,将更新完成的python存储与所述gitlab中。
[0134]
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0135]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0136]
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0137]
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
[0138]
以上对本发明所提供的一种基于软硬件证券行情系统的自动化测试方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献