CN110618881B - 一种模拟消息队列的方法及*** - Google Patents

一种模拟消息队列的方法及*** Download PDF

Info

Publication number
CN110618881B
CN110618881B CN201910887938.2A CN201910887938A CN110618881B CN 110618881 B CN110618881 B CN 110618881B CN 201910887938 A CN201910887938 A CN 201910887938A CN 110618881 B CN110618881 B CN 110618881B
Authority
CN
China
Prior art keywords
target
message queue
message
receiving end
sending
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
CN201910887938.2A
Other languages
English (en)
Other versions
CN110618881A (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 CN201910887938.2A priority Critical patent/CN110618881B/zh
Publication of CN110618881A publication Critical patent/CN110618881A/zh
Application granted granted Critical
Publication of CN110618881B publication Critical patent/CN110618881B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种模拟消息队列的方法及***,包括:获取配置参数,所述配置参数包括文件路径信息和接收端标识信息;基于所述文件路径信息,获取目标文件,所述目标文件中存储有多个文本,每个所述文本表征构造信息;依据各个所述文本构造目标消息,并根据所述目标消息生成消息队列;根据所述接收端标识信息,将所述消息队列发送至所述接收端,以使得所述接收端根据所述消息队列进行测试。一方面在本发明中并未使用商用的消息中间件,也能实现消息队列的构造,实现了降低***测试成本的目的;另一方面,可以将构造的消息生成消息队列,并以消息队列的形式发送至接收端,满足了基于高并发消息测试的需求。

Description

一种模拟消息队列的方法及***
技术领域
本发明涉及测试技术领域,特别是涉及一种模拟消息队列的方法及***。
背景技术
伴随着互联网技术的发展,各个***间会进行频繁通讯,对***架构设计及性能有极大挑战。在***开发及测试过程中,如果能模拟***上线后的单位时间内多个消息访问,可以实现提前验证目标应用或***是否满足性能要求。
通常是通过传输消息队列来测试***的通讯性能,在现有技术中一般是使用商业的消息中间件来模拟生成消息队列,例如,采用IBM MQ实现。但是这种采用商业的消息中间件一方面需要投入的成本较高,且其只能模拟单条消息的发送过程,因此无法解决模拟高并发消息队列的测试过程的问题。
发明内容
针对于上述问题,本发明提供一种模拟消息队列的方法及***,实现了成本低及可以模拟高并发消息队列的目的。
为了实现上述目的,本发明提供了如下技术方案:
一种模拟消息队列的方法,包括:
获取配置参数,所述配置参数包括文件路径信息和接收端标识信息;
基于所述文件路径信息,获取目标文件,所述目标文件中存储有多个文本,每个所述文本表征构造信息;
依据各个所述文本构造目标消息,并根据所述目标消息生成消息队列;
根据所述接收端标识信息,将所述消息队列发送至所述接收端,以使得所述接收端根据所述消息队列进行测试。
可选地,所述获取配置参数,包括:
判断是否存在配置文件,如果是,则获取所述配置文件中的配置参数;
如果否,则生成配置参数。
可选地,所述依据各个所述文本构造目标消息,并根据所述目标消息生成消息队列,包括:
对所述接收端标识信息进行解析,获得目标消息格式;
依据所述目标消息格式,将所述文本构造成目标消息;
根据所述目标消息生成消息队列。
可选地,所述根据所述目标消息生成消息队列,包括:
当通过多线程发送模式将消息队列发送至目标端时,获取所述多线程发送模式中的线程数量;
依据所述线程数量确定写入到消息队列中的目标消息的目标数量;
将目标数量的目标消息写入到消息队列中,获得消息队列。
可选地,该方法还包括:
获取发送指令,并对所述发送指令进行解析,得到发送模式;
若所述发送模式为单笔发送模式,将所述目标消息逐条发送至所述接收端。
一种模拟消息队列的***,包括:
第一获取单元,用于获取配置参数,所述配置参数包括文件路径信息和接收端标识信息;
第二获取单元,用于基于所述文件路径信息,获取目标文件,所述目标文件中存储有多个文本,每个所述文本表征构造信息;
生成单元,用于依据各个所述文本构造目标消息,并根据所述目标消息生成消息队列;
发送单元,用于根据所述接收端标识信息,将所述消息队列发送至所述接收端,以使得所述接收端根据所述消息队列进行测试。
可选地,所述第一获取单元包括:
第一判断子单元,用于判断是否存在配置文件,如果是,则获取所述配置文件中的配置参数;
如果否,则生成配置参数。
可选地,所述生成单元包括:
解析子单元,用于对所述接收端标识信息进行解析,获得目标消息格式;
构造子单元,用于依据所述目标消息格式,将所述文本构造成目标消息;
生成子单元,用于根据所述目标消息生成消息队列。
可选地,所述生成子单元包括:
数量获取子单元,用于当通过多线程发送模式将消息队列发送至目标端时,获取所述多线程发送模式中的线程数量;
数量确定子单元,用于依据所述线程数量确定写入到消息队列中的目标消息的目标数量;
写入子单元,用于将目标数量的目标消息写入到消息队列中,获得消息队列。
可选地,该***还包括:
模式解析子单元,用于获取发送指令,并对所述发送指令进行解析,得到发送模式;
单笔发送子单元,用于若所述发送模式为单笔发送模式,将所述目标消息逐条发送至所述接收端。
相较于现有技术,本发明提供了一种模拟消息队列的方法及***,基于配置参数获取目标文件,进行目标消息的构造,从而生成消息队列,然后依据接收端标识信息,将消息队列发送至接收端,实现接收端基于消息队列进行测试的目的。一方面在本发明中并未使用商用的消息中间件,也能实现消息队列的构造,实现了降低***测试成本的目的;另一方面,可以将构造的消息生成消息队列,并以消息队列的形式发送至接收端,满足了基于高并发消息测试的需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种模拟消息队列的方法的流程示意图;
图2为本发明实施例提供的一种模拟消息队列的***的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有设定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
在本发明实施例中提供了一种模拟消息队列的方法,其中,消息队列是进行测试***通信性能的消息组成的队列,对消息队列进行模拟即该消息队列是为了测试生成的,并不是***间进行实际通信产生的。
参见图1,其为本发明实施例提供的一种模拟消息队列的方法的流程示意图,该方法可以包括以下步骤:
S101、获取配置参数;
所述配置参数表征了需要进行测试的***的测试参数及测试内容信息,如包括文件路径信息和接收端标识信息,其中,接收端标识信息标识了待测试的***的相关信息,如测试端口、测试线程等,文件路径信息为表征能够生成测试消息队列的文件测存储位置。
在本发明实施例中还提供了两种方式来获取配置参数,其中,一种方式是将配置参数存储在配置文件中,在进行测试之前,直接获取配置文件,另一种方式是根据被测***的相关参数基于用户输入的相关参数来生成配置参数。将配置参数以配置文件的方式进行存储时,可以便于后续的重复使用,以及用户输入的相关测试信息来生成配置参数,可以实现配置参数的灵活处理的目的。
S102、基于所述文件路径信息,获取目标文件;
所述目标文件中存储有多个文本,每个所述文本表征构造信息;
S103、依据各个所述文本构造目标消息,并根据所述目标消息生成消息队列;
为了快速高效地生成消息队列,可以将测试的消息文件预先存储在对应的文件夹中,当需要进行测试时,可以基于文件路径信息,获取对应的目标文件或者文本来构造目标消息。并且根据被测***的标识信息,如表征被测***的线程数量的线程标识,对目标消息进行组织,来生成消息队列。
S104、根据所述接收端标识信息,将所述消息队列发送至所述接收端,以使得所述接收端根据所述消息队列进行测试。
将消息队列发送至接收端,实现对接收端的测试。
在上述实施例的基础上,本发明的另一实施例中还提供了一种消息队列的生成方法,该方法包括:
对所述接收端标识信息进行解析,获得目标消息格式;
依据所述目标消息格式,将所述文本构造成目标消息;
根据所述目标消息生成消息队列。
由于不同的被测***即接收端,其接受数据的接口格式是不同的。需要通过对接收端的标识信息进行解析,以获得满足接收端的消息队列。通常目标文件中存储的文本是通用格式,需要将该通用格式的文本构造成满足接收端的消息格式的目标消息,然后根据目标消息生成消息队列。
具体的,当通过多线程发送模式将消息队列发送至目标端时,获取所述多线程发送模式中的线程数量;依据所述线程数量确定写入到消息队列中的目标消息的目标数量;将目标数量的目标消息写入到消息队列中,获得消息队列。
在本发明实施例提供的测试方法中,除了能够模拟消息队列的测试过程,还可以进行单笔发送的模拟测试过程,具体的包括:
获取发送指令,并对所述发送指令进行解析,得到发送模式;
若所述发送模式为单笔发送模式,将所述目标消息逐条发送至所述接收端。
即可以将目标消息进行逐条发送,也可以直接获取用户录入的消息内容,然后通过单笔发送模式进行消息发送,然后可以采用消息处理模块将发送的消息写入到消息队列中。
本发明提供了一种模拟消息队列的方法,基于配置参数获取目标文件,进行目标消息的构造,从而生成消息队列,然后依据接收端标识信息,将消息队列发送至接收端,实现接收端基于消息队列进行测试的目的。一方面在本发明中并未使用商用的消息中间件,也能实现消息队列的构造,实现了降低***测试成本的目的;另一方面,可以将构造的消息生成消息队列,并以消息队列的形式发送至接收端,满足了基于高并发消息测试的需求。
对应的,本发明实施例可以基于上述模拟消息队列的方法及相关内容,创建一个消息队列高并发发报工具,在该工具中可以包括信息采集模块,该信息采集模块可以生成信息框,用于供用户填写目标应用即测试应用的配置参数,如IP,端口、队列管理名称及目标队列参数,并保存。然后基于加载模块加载配置文件,读取配置文件信息,也可以用户手工在消息队列高并发发报工具界面对配置信息进行修改,然后在界面上选择***盘符的文件夹,并选择测试的消息文件,加载选择的文件,读取文件内容,在工具界面点击多笔发送,触发多线程池化模块处理逻辑,向目标测试应用同时发送消息队列中的消息。
因此,本发明实施例提供的消息队列高并发发报工具,包括了多线程池技术,实现高并发,保证消息不重复及顺序性,满足测试场景要求;无须安装,简单配置目标应用参数即可使用,减少学习成本,提供单笔及多笔消息发送功能,满足各种测试需求。
对应的,在本发明实施例中还提供一种模拟消息队列的***,参见图2,该***,包括:
第一获取单元10,用于获取配置参数,所述配置参数包括文件路径信息和接收端标识信息;
第二获取单元20,用于基于所述文件路径信息,获取目标文件,所述目标文件中存储有多个文本,每个所述文本表征构造信息;
生成单元30,用于依据各个所述文本构造目标消息,并根据所述目标消息生成消息队列;
发送单元40,用于根据所述接收端标识信息,将所述消息队列发送至所述接收端,以使得所述接收端根据所述消息队列进行测试。
本发明提供了一种模拟消息队列的***,基于配置参数获取目标文件,进行目标消息的构造,从而生成消息队列,然后依据接收端标识信息,将消息队列发送至接收端,实现接收端基于消息队列进行测试的目的。一方面在本发明中并未使用商用的消息中间件,也能实现消息队列的构造,实现了降低***测试成本的目的;另一方面,可以将构造的消息生成消息队列,并以消息队列的形式发送至接收端,满足了基于高并发消息测试的需求。
在上述实施例的基础上,所述第一获取单元包括:
第一判断子单元,用于判断是否存在配置文件,如果是,则获取所述配置文件中的配置参数;
如果否,则生成配置参数。
在上述实施例的基础上,所述生成单元包括:
解析子单元,用于对所述接收端标识信息进行解析,获得目标消息格式;
构造子单元,用于依据所述目标消息格式,将所述文本构造成目标消息;
生成子单元,用于根据所述目标消息生成消息队列。
在上述实施例的基础上,所述生成子单元包括:
数量获取子单元,用于当通过多线程发送模式将消息队列发送至目标端时,获取所述多线程发送模式中的线程数量;
数量确定子单元,用于依据所述线程数量确定写入到消息队列中的目标消息的目标数量;
写入子单元,用于将目标数量的目标消息写入到消息队列中,获得消息队列。
在上述实施例的基础上,该***还包括:
模式解析子单元,用于获取发送指令,并对所述发送指令进行解析,得到发送模式;
单笔发送子单元,用于若所述发送模式为单笔发送模式,将所述目标消息逐条发送至所述接收端。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (8)

1.一种模拟消息队列的方法,其特征在于,包括:
获取配置参数,所述配置参数包括文件路径信息和接收端标识信息;所述接收端标识信息至少标识了待测试***的测试端口与测试线程;所述文件路径信息表征能够生成测试消息队列的文件存储位置;
基于所述文件路径信息,获取目标文件,所述目标文件中存储有多个文本,每个所述文本表征构造信息;
对所述接收端标识信息进行解析,获得目标消息格式;
依据所述目标消息格式,将所述文本构造成目标消息;
根据所述目标消息生成消息队列;
根据所述接收端标识信息,将所述消息队列发送至所述接收端,以使得所述接收端根据所述消息队列进行测试。
2.根据权利要求1所述的方法,其特征在于,所述获取配置参数,包括:
判断是否存在配置文件,如果是,则获取所述配置文件中的配置参数;
如果否,则生成配置参数。
3.根据权利要求1所述的方法,其特征在于,所述根据所述目标消息生成消息队列,包括:
当通过多线程发送模式将消息队列发送至目标端时,获取所述多线程发送模式中的线程数量;
依据所述线程数量确定写入到消息队列中的目标消息的目标数量;
将目标数量的目标消息写入到消息队列中,获得消息队列。
4.根据权利要求1所述的方法,其特征在于,该方法还包括:
获取发送指令,并对所述发送指令进行解析,得到发送模式;
若所述发送模式为单笔发送模式,将所述目标消息逐条发送至所述接收端。
5.一种模拟消息队列的***,其特征在于,包括:
第一获取单元,用于获取配置参数,所述配置参数包括文件路径信息和接收端标识信息;所述接收端标识信息至少标识了待测试***的测试端口与测试线程;所述文件路径信息表征能够生成测试消息队列的文件存储位置;
第二获取单元,用于基于所述文件路径信息,获取目标文件,所述目标文件中存储有多个文本,每个所述文本表征构造信息;
所述生成单元包括:解析子单元、构造子单元与生成子单元;
所述解析子单元,用于对所述接收端标识信息进行解析,获得目标消息格式;
所述构造子单元,用于依据所述目标消息格式,将所述文本构造成目标消息;
所述生成子单元,用于根据所述目标消息生成消息队列;
发送单元,用于根据所述接收端标识信息,将所述消息队列发送至所述接收端,以使得所述接收端根据所述消息队列进行测试。
6.根据权利要求5所述的***,其特征在于,所述第一获取单元包括:
第一判断子单元,用于判断是否存在配置文件,如果是,则获取所述配置文件中的配置参数;
如果否,则生成配置参数。
7.根据权利要求5所述的***,其特征在于,所述生成子单元包括:
数量获取子单元,用于当通过多线程发送模式将消息队列发送至目标端时,获取所述多线程发送模式中的线程数量;
数量确定子单元,用于依据所述线程数量确定写入到消息队列中的目标消息的目标数量;
写入子单元,用于将目标数量的目标消息写入到消息队列中,获得消息队列。
8.根据权利要求5所述的***,其特征在于,该***还包括:
模式解析子单元,用于获取发送指令,并对所述发送指令进行解析,得到发送模式;
单笔发送子单元,用于若所述发送模式为单笔发送模式,将所述目标消息逐条发送至所述接收端。
CN201910887938.2A 2019-09-19 2019-09-19 一种模拟消息队列的方法及*** Active CN110618881B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910887938.2A CN110618881B (zh) 2019-09-19 2019-09-19 一种模拟消息队列的方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910887938.2A CN110618881B (zh) 2019-09-19 2019-09-19 一种模拟消息队列的方法及***

Publications (2)

Publication Number Publication Date
CN110618881A CN110618881A (zh) 2019-12-27
CN110618881B true CN110618881B (zh) 2022-04-12

Family

ID=68923608

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910887938.2A Active CN110618881B (zh) 2019-09-19 2019-09-19 一种模拟消息队列的方法及***

Country Status (1)

Country Link
CN (1) CN110618881B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112202636B (zh) * 2020-09-29 2022-06-17 中国银行股份有限公司 通信测试方法及***

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6363414B1 (en) * 1998-12-29 2002-03-26 Pitney Bowes Ltd. Method for converting an email message to a different format and retransmitting to a location other than recipient address information in the email message
CN104348805A (zh) * 2013-07-31 2015-02-11 南京中兴力维软件有限公司 异步文件传输方法、装置及其***
CN105472042A (zh) * 2016-01-15 2016-04-06 中煤电气有限公司 Web端控制的消息中间件***及其数据传送方法
CN106484652A (zh) * 2016-10-26 2017-03-08 郑州云海信息技术有限公司 一种基于ntb硬件的多队列通信方法及***
CN109729003A (zh) * 2018-12-28 2019-05-07 济南铁路信息技术有限公司 一种客运列车时刻数据传输方法及***

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030036966A1 (en) * 2001-08-16 2003-02-20 International Business Machines Corporation Computer system, method, and business method for integrating an e-commerce application with a back-end business processing application
JP2017111581A (ja) * 2015-12-15 2017-06-22 キヤノン株式会社 情報処理システム、制御方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6363414B1 (en) * 1998-12-29 2002-03-26 Pitney Bowes Ltd. Method for converting an email message to a different format and retransmitting to a location other than recipient address information in the email message
CN104348805A (zh) * 2013-07-31 2015-02-11 南京中兴力维软件有限公司 异步文件传输方法、装置及其***
CN105472042A (zh) * 2016-01-15 2016-04-06 中煤电气有限公司 Web端控制的消息中间件***及其数据传送方法
CN106484652A (zh) * 2016-10-26 2017-03-08 郑州云海信息技术有限公司 一种基于ntb硬件的多队列通信方法及***
CN109729003A (zh) * 2018-12-28 2019-05-07 济南铁路信息技术有限公司 一种客运列车时刻数据传输方法及***

Also Published As

Publication number Publication date
CN110618881A (zh) 2019-12-27

Similar Documents

Publication Publication Date Title
CN109302522B (zh) 测试方法、装置以及计算机***和介质
US8660833B2 (en) Method, computer program product and apparatus for providing an interactive network simulator
CN111159049A (zh) 接口自动化测试方法及***
CN107957940B (zh) 一种测试日志处理方法、***及终端
CN106357719A (zh) 用于网络应用的基于页面的事件相关
CN107045475B (zh) 测试方法和装置
CN115065652B (zh) 消息回复方法、装置、存储介质及计算机设备
CN111258913A (zh) 算法自动测试方法、装置、计算机***及可读存储介质
CN109739704A (zh) 一种接口测试方法、服务端及计算机可读存储介质
CN111737125A (zh) 量化交易的行情数据的生成方法、装置和服务器
CN112148580A (zh) 测试方法、装置及电子设备
CN110515514B (zh) 一种数据处理方法、装置及存储介质
CN108965274A (zh) Dbc文件的解析方法及装置
CN110618881B (zh) 一种模拟消息队列的方法及***
CN109587351B (zh) 一种呼叫测试方法、装置、设备及存储介质
CN115145777A (zh) 一种测试方法、***、装置及存储介质
CN109460365B (zh) 一种***性能测试方法、装置、设备及存储介质
CN112965711A (zh) 作业测试方法和装置、电子设备和存储介质
CN111488731A (zh) 文件生成方法、装置、计算机设备以及存储介质
CN115118687B (zh) 消息推送方法、装置、存储介质及计算机设备
CN115185797A (zh) 视觉算法模型的测试方法、***、电子设备及存储介质
CN106294104B (zh) 一种测试用例的执行方法及移动终端
CN111294250B (zh) 压力测试方法、装置和***
CN114036060A (zh) 用于芯片测试的方法、***和计算机可读介质
CN112181811A (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