CN115190055A - 一种tcp报文定制化转换方法、装置及存储介质 - Google Patents
一种tcp报文定制化转换方法、装置及存储介质 Download PDFInfo
- Publication number
- CN115190055A CN115190055A CN202210807615.XA CN202210807615A CN115190055A CN 115190055 A CN115190055 A CN 115190055A CN 202210807615 A CN202210807615 A CN 202210807615A CN 115190055 A CN115190055 A CN 115190055A
- Authority
- CN
- China
- Prior art keywords
- tcp
- message
- length
- sampler
- tcp 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 16
- 238000003860 storage Methods 0.000 title claims abstract description 13
- 238000011056 performance test Methods 0.000 abstract description 10
- 230000005540 biological transmission Effects 0.000 abstract description 2
- 238000004519 manufacturing process Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- 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/18—Protocol analysers
-
- 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/08—Protocols for interworking; Protocol conversion
-
- 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/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及性能测试领域,提供了一种TCP报文定制化转换方法、装置及存储介质。目的在于解决TCP取样器无法自动组装报文的长度位数,导致在交易的时候服务器无法正常识别报文的问题。包括在TCP取样器中新加报文长度位数文本输入框,用于填写TCP报文长度位数;获取TCP报文长度位数;获取TCP取样器中的TCP报文字符串;分配存储长度为TCP报文字符串长度与TCP报文长度位数之和的buffer:格式化后的报文长度字符串:采用循环方式,对于TCP长度与位数之间的差值自动补齐0,并拼接TCP长度;格式化后的报文长度字符串与报文内容进行组装后存入buffer;将buffer中的TCP报文内容发送给服务器。
Description
技术领域
本发明涉及性能测试领域,提供了一种TCP报文定制化转换方法、装置及存储介质。
背景技术
目前性能测试过程中涉及的TCP报文测试,需要人工组装TCP报文长度及报文内容,方式1:通过人工计算报文长度,并进行组装报文长度和内容;方式2:通过tcp.jar小工具获取报文长度,人工组装报文长度和内容。
此二种方式性能测试脚本调试阶段使用时,有二个缺点:1.获取的报文长度需要人工计算并组装报文,且耗时较长;2.通过人工计算和小工具生成的报文长度,把报文长度和报文内容组装后,在调试脚本时,存在一定的机率会被服务器拒绝,报错500,未被服务器识别,需要调整报文格式重新计算报文长度来解决。
此二种方式在性能测试脚本优化阶段使用时,存在的缺点:1.在构建参数化脚本时,报文字段值的长度必须构造成原调试脚本一致的长度,否则会被服务器拒绝,参数化字段存在着局限性和特定性。
在性能测试过程中,需要模拟生产交易场景,对字段的送值与否的组合以及送值的长度大小不是固定的。报文字段值的参数化是一个必要的过程,为了更真实的模拟生产场景报文的发送,对TCP报文长度的自动计算并将报文内容进行组装是目前存在的痛点。
发明内容
本发明的目的在于解决TCP取样器无法自动组装报文的长度位数,导致在交易的时候服务器无法正常识别报文的问题。
为了实现上述目的本发明采用以下技术手段:
一种TCP报文定制化转换方法,包括以下步骤:
步骤1:在TCP取样器中新加报文长度位数文本输入框,用于填写TCP报文长度位数;
步骤2:获取TCP取样器中长度位数值,使用组装引擎进行报文组装并发送给服务器;
步骤2具体包括以下步骤:
步骤2.1:获取TCP报文长度位数;
步骤2.2:获取TCP取样器中的TCP报文字符串;
步骤2.3:分配存储长度为TCP报文字符串长度与TCP报文长度位数之和的buffer:
步骤2.4:格式化后的报文长度字符串:采用循环方式,对于TCP长度与位数之间的差值自动补齐0,并拼接TCP长度;
步骤2.5:格式化后的报文长度字符串与报文内容进行组装后存入buffer;步骤2.6:将buffer中的TCP报文内容发送给服务器。
上述技术方案中,步骤1具体包括以下步骤:
步骤1.1:在TCP取样器上新增一个文本框;
步骤1.2:在此文本框中输入TCP报文位数。
本发明还提供了一种TCP报文定制化转换装置,包括:
输入模块:在TCP取样器中新加报文长度位数文本输入框,用于填写TCP报文长度位数;
TCP报文组装模块:获取TCP取样器中长度位数值,使用组装引擎进行报文组装并发送给服务器;
TCP报文组装模块包括以下步骤:
获取TCP报文长度位数;
获取TCP取样器中的TCP报文字符串;
分配存储长度为TCP报文字符串长度与TCP报文长度位数之和的buffer:
格式化后的报文长度字符串:采用循环方式,对于TCP长度与位数之间的差值自动补齐0,并拼接TCP长度;
格式化后的报文长度字符串与报文内容进行组装后存入buffer;
将buffer中的TCP报文内容发送给服务器。
上述技术方案中,输入模块的实现包括以下步骤:
步骤1.1:在TCP取样器上新增一个文本框;
步骤1.2:在此文本框中输入TCP报文位数。
本发明还提供了一种存储介质,所述存储介质存储有一种TCP报文定制化转换的程序,处理器在执行所述程序时,实现一种TCP报文定制化转换方法。
本发明因为采用上述技术方案,因此具备以下有益效果:
1、通过获取TCP报文长度位数进行定制化TCP报文组装,在模拟生产场景报文时不用人工组装报文内容,大大减少了人工计算和脚本维护花费的成本,提高测试效率。
2、通过定制化TCP报文组装来实现生产各类场景的性能测试,使得测试模型更加符合生产模型,提供更加有效的结果来验证生产系统容量。
具体实施方式
以下将对本发明的实施例给出详细的说明。尽管本发明将结合一些具体实施方式进行阐述和说明,但需要注意的是本发明并不仅仅只局限于这些实施方式。相反,对本发明进行的修改或者等同替换,均应涵盖在本发明的权利要求范围当中。
另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员将理解,没有这些具体细节,本发明同样可以实施。
为了实现上述目的本发明采用以下技术手段:
一种基于性能测试工具TCP报文定制化转换方法,包括以下步骤:
步骤1:在TCP取样器中新加报文长度位数文本输入框,用于填写TCP报文长度位数;
步骤2:获取TCP取样器中长度位数值,使用组装引擎进行报文组装并发送;
如,上述步骤1具体包括以下步骤:
步骤1.1:在TCP取样器上新增一个文本框;
步骤1.2:在此文本框中输入TCP报文位数;
上述步骤2具体包括以下步骤:
步骤2.1:获取TCP报文长度位数;
步骤2.2:获取TCP取样器中的TCP报文字符串;
步骤2.3:分配存储长度为TCP报文字符串长度与TCP报文长度位数之和的buffer:
步骤2.4:格式化后的报文长度字符串:采用循环方式,对于TCP长度与位数之间的差值自动补齐0,并拼接TCP长度;
步骤2.5:格式化后的报文长度字符串与报文内容进行组装后存入buffer;
步骤2.6:将buffer中的TCP报文内容发送给服务器;
实施例
一种基于性能测试工具TCP报文定制化转换方法,包括以下步骤:
步骤1:在TCP取样器中新加PREFIX_LENGTH文本输入框,用于人工填写TCP报文长度位数,通过重写TCPConfigGui实现;
步骤2:获取TCP取样器中PREFIX_LENGTH值,通过重写TCPSampler实现;
步骤3:根据获取到的TCP报文长度位数,进行报文组装并发送,通过重写TCPClientImpl类实现。
上述步骤1具体包括以下步骤:
步骤1.1:在TCPConfigGui类中定义变量:private JTextField prefixLength;;
步骤1.2:新增创建prefixLength组件方法:private JPanelcreatePrefixLengthPanel()
步骤1.3:prefixLength的值设置方法:在TCPConfigGui.configure(TestElementelement)方法中新增代码:
prefixLength.setText(element.getPropertyAsString(TCPSampler.PREFIX_LENGTH));
步骤1.4:prefixLength的值返回方法:在TCPConfigGui.modifyTestElement(TestElement element)方法中新增代码:
prefixLength.setText(element.getPropertyAsString(TCPSampler.PREFIX_LENGTH))。
步骤2具体包括以下步骤:
步骤2.1:在TCPSampler类中新增变量:public static final String PREFIX_LENGTH=″TCPSampler.prefixLength″;
步骤2.2:新增prefixLength的值获取方法:
public int getPrefixLength()
步骤3具体包括以下步骤:
步骤3.1:获取TCPSampler类中prefixLength值:
private final int prefixLength=JMeterUtils.getPropDefault(″tcp.prefix.length″,Integer.parseInt(TCPSampler.PREFIX_LENGTH));
步骤3.2:修改TCPClientImpl类中write(OutputStream os,String s)方法,包括:获取“TCP报文字符串长度”的长度并转化为int和格式化报文长度字符串,并组装TCP报文内容。
Claims (5)
1.一种TCP报文定制化转换方法,其特征在于,包括以下步骤:
步骤1:在TCP取样器中新加报文长度位数文本输入框,用于填写TCP报文长度位数;
步骤2:获取TCP取样器中长度位数值,使用组装引擎进行报文组装并发送给服务器;
步骤2具体包括以下步骤:
步骤2.1:获取TCP报文长度位数;
步骤2.2:获取TCP取样器中的TCP报文字符串;
步骤2.3:分配存储长度为TCP报文字符串长度与TCP报文长度位数之和的buffer:
步骤2.4:格式化后的报文长度字符串:采用循环方式,对于TCP长度与位数之间的差值自动补齐0,并拼接TCP长度;
步骤2.5:格式化后的报文长度字符串与报文内容进行组装后存入buffer;步骤2.6:将buffer中的TCP报文内容发送给服务器。
2.根据权利要求1所述的一种TCP报文定制化转换方法,其特征在于,步骤1具体包括以下步骤:
步骤1.1:在TCP取样器上新增一个文本框;
步骤1.2:在此文本框中输入TCP报文位数。
3.一种TCP报文定制化转换装置,其特征在于:
输入模块:在TCP取样器中新加报文长度位数文本输入框,用于填写TCP报文长度位数;
TCP报文组装模块:获取TCP取样器中长度位数值,使用组装引擎进行报文组装并发送给服务器;
TCP报文组装模块包括以下步骤:
获取TCP报文长度位数;
获取TCP取样器中的TCP报文字符串;
分配存储长度为TCP报文字符串长度与TCP报文长度位数之和的buffer:
格式化后的报文长度字符串:采用循环方式,对于TCP长度与位数之间的差值自动补齐0,并拼接TCP长度;
格式化后的报文长度字符串与报文内容进行组装后存入buffer;
将buffer中的TCP报文内容发送给服务器。
4.根据权利要求1所述的一种TCP报文定制化转换装置,其特征在于,输入模块的实现包括以下步骤:
步骤1.1:在TCP取样器上新增一个文本框;
步骤1.2:在此文本框中输入TCP报文位数。
5.一种存储介质,其特征在于,所述存储介质存储有一种TCP报文定制化转换的程序,处理器在执行所述程序时,实现如权利要求1-2任一所述的一种TCP报文定制化转换方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210807615.XA CN115190055A (zh) | 2022-07-08 | 2022-07-08 | 一种tcp报文定制化转换方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210807615.XA CN115190055A (zh) | 2022-07-08 | 2022-07-08 | 一种tcp报文定制化转换方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115190055A true CN115190055A (zh) | 2022-10-14 |
Family
ID=83517338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210807615.XA Pending CN115190055A (zh) | 2022-07-08 | 2022-07-08 | 一种tcp报文定制化转换方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115190055A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528823A (zh) * | 2016-11-18 | 2017-03-22 | 中国银行股份有限公司 | 一种报文配置及输出方法及装置 |
CN107665464A (zh) * | 2017-09-18 | 2018-02-06 | 平安科技(深圳)有限公司 | 生成征信报文的方法、装置、设备及计算机可读存储介质 |
CN109756498A (zh) * | 2019-01-04 | 2019-05-14 | 烽火通信科技股份有限公司 | 通信设备上tcp协议的nat alg转换方法及系统 |
CN110278272A (zh) * | 2019-06-24 | 2019-09-24 | 四川新网银行股份有限公司 | 模拟Socket请求的通用方法 |
CN111782882A (zh) * | 2020-06-07 | 2020-10-16 | 中信银行股份有限公司 | 一种tcp报文转换方法、装置、系统及计算机存储介质 |
CN113190388A (zh) * | 2021-04-13 | 2021-07-30 | 厦门路桥信息股份有限公司 | Tcp接口测试方法、介质、设备及装置 |
-
2022
- 2022-07-08 CN CN202210807615.XA patent/CN115190055A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528823A (zh) * | 2016-11-18 | 2017-03-22 | 中国银行股份有限公司 | 一种报文配置及输出方法及装置 |
CN107665464A (zh) * | 2017-09-18 | 2018-02-06 | 平安科技(深圳)有限公司 | 生成征信报文的方法、装置、设备及计算机可读存储介质 |
CN109756498A (zh) * | 2019-01-04 | 2019-05-14 | 烽火通信科技股份有限公司 | 通信设备上tcp协议的nat alg转换方法及系统 |
CN110278272A (zh) * | 2019-06-24 | 2019-09-24 | 四川新网银行股份有限公司 | 模拟Socket请求的通用方法 |
CN111782882A (zh) * | 2020-06-07 | 2020-10-16 | 中信银行股份有限公司 | 一种tcp报文转换方法、装置、系统及计算机存储介质 |
CN113190388A (zh) * | 2021-04-13 | 2021-07-30 | 厦门路桥信息股份有限公司 | Tcp接口测试方法、介质、设备及装置 |
Non-Patent Citations (2)
Title |
---|
BUG弄潮儿: "34.TCP取样器", pages 2 - 4, Retrieved from the Internet <URL:https://blog.csdn.net/huangjinjin520/article/details/105721605?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22105721605%22%2C%22source%22%3A%22Pongpong0217%22%7D&fromshare=blogdetail> * |
郑永刚;: "基于Socket协议的系统性能测试案例解析", 数字技术与应用, no. 08 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109189684B (zh) | 基于Python的接口自动化测试方法 | |
US20060156287A1 (en) | Auto conversion of tests between different functional testing tools | |
CN101261579A (zh) | 一种实现VBScript语言跨平台应用的方法 | |
CN109344074B (zh) | 一种跨平台自动化测试方法及系统 | |
CN114610640A (zh) | 一种面向物联网可信执行环境的模糊测试方法和系统 | |
CN111367524A (zh) | 枚举类型设计方法及装置 | |
CN111399828A (zh) | 一种基于模型驱动的逻辑设备建模方法及终端 | |
CN112187580A (zh) | 网关插件自动化测试框架及测试方法 | |
CN114138633A (zh) | 基于数据驱动的软件测试的方法、装置、设备及可读介质 | |
US8423849B2 (en) | Device test data reuse for device simulation | |
CN114510357A (zh) | 一种卫星发射场试验鉴定业务消息交互方法及系统 | |
CN115190055A (zh) | 一种tcp报文定制化转换方法、装置及存储介质 | |
CN111506501A (zh) | 一种测试指令集的生成方法、装置及电子设备 | |
CN105302731A (zh) | 网站架构升级测试系统和方法 | |
CN113872963B (zh) | 基于自由标签拼接技术的报文协议快速解析方法及系统 | |
CN115794639A (zh) | 基于流程的可视化测试及可视化仿真模拟测试系统和方法 | |
CN112882696B (zh) | 一种基于超级计算机的全要素模型训练系统 | |
CN112069062A (zh) | 一种软件测试bug模块编辑生成的方法及装置 | |
CN111857664B (zh) | 一种应用开发的方法、装置、设备及存储介质 | |
CN112783791A (zh) | 接口测试案例的生成方法及装置 | |
CN115373655B (zh) | 一种基于标准化模板的信息协议代码自动生成方法 | |
CN111494950B (zh) | 游戏语音处理方法及装置、存储介质及电子设备 | |
CN113050925B (zh) | 区块链智能合约修复方法及装置 | |
CN112272063B (zh) | 适用于卫星设备测试用的模拟器 | |
CN114327400A (zh) | 基于java动态代理实现合作方业务快速落地的敏捷开发方法及介质 |
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 |