操作教程|使用MeterSphere对恒生UFX系统进行压力测试

news/2024/5/10 8:41:54

恒生UFX(United Finance Exchange,统一金融交换)系统(以下简称为“UFX系统”),是一款帮助证券公司统一管理外部接入客户的系统,该系统整体上覆盖了期货、证券、基金、银行、信托、海外业务等各类交易接口,适用于各类金融交易业务的对接。第三方系统通过使用T2SDK(TCP 2 Software Development Kit,TCP协议软件开发工具包),可以轻松实现和UFX系统的对接。

注:T2SDK的底层采用TCP(Transmission Control Protocol,传输控制协议)协议,所以取名为“T2SDK”。T2SDK以dll(在Windows操作系统中)或so(在Linux操作系统中)的形式提供给开发者。

MeterSphere作为一款一站式的开源持续测试平台,采用JMeter作为接口测试和性能测试引擎,完全继承并延伸了JMeter的测试能力。本文以UFX系统的期货交易接口为被测对象,通过在MeterSphere平台导入JMeter的JMX文件,使用封装后的T2SDK和定制化的JMeter镜像对UFX系统进行压力测试。

一、在JMeter中完成UFX系统期货交易的接口测试

首先,调试T2SDK,完成UFX系统的登录认证。该步骤可以参考恒生客户服务平台的《期货看穿式》文档,链接为:https://www.hs.net/doc/ufx/200300_400143.html。

然后,通过调试T2SDK,进行期货报单和期货委托查询等操作。该步骤可参考恒生客户服务平台的《期货交易》文档,链接为:https://www.hs.net/doc/ufx/200300_200302.html。

接下来,需要在UFX系统的T2SDK基础上,使用JMeter自定义插件的方式,完成T2SDK的封装过程。在JMeter加载了自定义插件后,JMeter的接口测试界面如下图所示:
在这里插入图片描述

▲ 图1 JMeter接口测试操作界面1
在这里插入图片描述

▲ 图2 JMeter接口测试操作界面2

如图所示,在JMeter界面需要手动创建三个线程组,分别是setUp线程组、Fvip期货、tearDown线程组。三个线程组的具体作用如下:

■ setUp线程组:模拟UFX系统客户端使用T2SDK,与UFX系统服务端建立连接;

■ Fvip期货:按照期货交易的业务流程,分别执行331480、331481、331482、331100、338301这五个功能号的接口请求;

■ tearDown线程组:模拟UFX系统客户端使用T2SDK,与UFX系统服务端断开连接。

二、在JMeter中完成UFX系统期货交易的性能测试

首先,在JMeter中完成UFX系统期货交易功能的接口测试后,将“setUp线程组”和“tearDown线程组”保持默认设置,执行一次请求。

然后,设置“Fvip期货”线程组的用户并发数和压测时长等参数,执行压测任务,JMeter的压测界面如图3所示。
在这里插入图片描述

▲ 图3 JMeter压力测试操作界面

三、在MeterSphere中使用定制化JMeter镜像,对UFX系统的期货交易接口开展压力测试

首先,在MetereSphere使用的JMeter镜像基础上,加入JMeter自定义插件和UFX系统的相关配置文件,构建一个定制化的JMeter镜像。
在这里插入图片描述

▲ 图4 定制化JMeter镜像的打包过程

然后,在MeterSphere平台的“修改资源池”页面添加压测服务器的IP地址和端口号,并在“镜像”配置栏中填写准备好的定制化JMeter镜像。
在这里插入图片描述

▲ 图5 在“修改资源池”页面添加针对UFX系统的定制化JMeter镜像

接下来,从JMeter中导出JMX文件,并且在MeterSphere平台顺序选择 “性能测试”→“测试”→“场景配置”→“加载JMX文件”,将JMX文件导入至MeterSphere的“性能测试”模块。
在这里插入图片描述

▲ 图6 在“场景配置”选项卡中加载JMX文件

在性能测试模块的“测试”选项卡中,从“场景配置”选项卡切换到“压力配置”选项卡,填写压测所需的参数,点击“保存并执行”按钮。
在这里插入图片描述

▲ 图7 在“压力配置”选项卡中填写压测参数

最后,在MeterSphere的“性能测试”模块中,从“测试”选项卡切换到“报告”选项卡,即可查看UFX系统期货交易接口的性能测试报告。
在这里插入图片描述

▲ 图8 查看UFX系统期货交易接口的性能测试报告

四、总结

借助JMeter提供的Java Sampler(Java取样器)和自定义的Java类,可以完成对T2SDK的封装,从而实现对UFX系统的扩展支持。本文的操作演示说明了MeterSphere平台具备良好兼容JMeter自定义插件的能力。

注:本文在MeterSphere开源持续测试平台进行的压测过程,同样适用于UFX系统的证券交易接口和股票期权交易接口的压力测试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.cpky.cn/p/10339.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

IEEE SystemVerilog Chapter18: Constrained random value generation

18.1 General 本条款描述了以下内容: --随机变量(Random variables) --约束块(Constraint blocks) --随机化方法(Randomization methods) --禁用随机化&#…

设计模式大题做题记录

设计模式大题 09年 上半年: 09年下半年 10年上半年 10年下半年 11年上半年 11年下半年 12年上半年 12年下半年 13年上半年 13年下半年

Qt 类的前置声明和头文件包含

1. 在头文件中引入另一个类经常有两种写法 1&#xff09;前置声明 2&#xff09;头文件包含 #ifndef FRMCOUPLE2_H #define FRMCOUPLE2_H#include <QWidget> //头文件包含namespace Ui { class frmcouple2; }//前置声明&#xff1a;QPushButton frmchkeyboard…

鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:颜色渐变)

设置组件的颜色渐变效果。 说明&#xff1a; 从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 linearGradient linearGradient(value: { angle?: number | string; direction?: GradientDirection; colors: Array; repea…

Java代码审计安全篇-常见Java SQL注入

前言&#xff1a; 堕落了三个月&#xff0c;现在因为被找实习而困扰&#xff0c;着实自己能力不足&#xff0c;从今天开始 每天沉淀一点点 &#xff0c;准备秋招 加油 注意&#xff1a; 本文章参考qax的网络安全java代码审计&#xff0c;记录自己的学习过程&#xff0c;还希望…

【DPDK】基于dpdk实现用户态UDP网络协议栈

文章目录 一.背景及导言二.协议栈架构设计1. 数据包接收和发送引擎2. 协议解析3. 数据包处理逻辑 三.网络函数编写1.socket2.bind3.recvfrom4.sendto5.close 四.总结 一.背景及导言 在当今数字化的世界中&#xff0c;网络通信的高性能和低延迟对于许多应用至关重要。而用户态网…