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

恒生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压力测试操作界面

MeterSphereJMeterUFX_38">三、在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.niftyadmin.cn/n/5411547.html

相关文章

强大的ps 命令 -o 自定义输出内容选项

强大的ps 命令 -o 自定义输出内容选项 1、ps命令介绍和作用2、问题描述 1、ps命令介绍和作用 ps 是一个 Unix 和类 Unix 操作系统中常用的命令,用于显示当前运行的进程信息。ps 命令的作用包括: 查看进程信息: ps 命令可以列出当前系统中正…

uniapp 解决请求出现 /sockjs-node/info?t=问题

1. uniapp请求出现 /sockjs-node/info?t问题 1.1. 问题 uniapp项目老是出现 http://192.168.2.106:8080/sockjs-node/info?t1709704280949 1.1. sockjs-node介绍 sockjs-node 是一个JavaScript库,提供跨浏览器JavaScript的API,创建了一个低延迟、全…

vue实现虚拟键盘

本文介绍一体机常用的虚拟键盘实现,主打一个免费文章。喜欢就点个赞支持一下吧 simple-keyboard官网:simple-keyboard - simple-keyboard - Francisco HodgeSimple-keyboard is a virtual keyboard for Javascript. You can use it as an input for dev…

【C++精简版回顾】18.文件操作

1.文件操作头文件 2.操作文件所用到的函数 1.文件io 1.头文件 #include<fstream> 2.打开文件 &#xff08;1&#xff09;函数名 文件对象.open &#xff08;2&#xff09;函数参数 /* ios::out 可读 ios::in 可…

算法 - 【受限条件下可到达节点的数目】

受限条件下可到达节点的数目 题目示例1示例2 分析代码 题目 现有一棵由 n 个节点组成的无向树&#xff0c;节点编号从 0 到 n - 1 &#xff0c;共有 n - 1 条边。给你一个二维整数数组 edges &#xff0c;长度为 n - 1 &#xff0c;其中 edges[i] [ai, bi] 表示树中节点 ai 和…

React架构介绍-三个部件

前言 React16及以后版本的架构主要由三个关键部分组成&#xff1a;调度器&#xff08;Scheduler&#xff09;、协调器&#xff08;Reconciler&#xff09;和渲染器&#xff08;Renderer&#xff09;。 调度器&#xff08;Scheduler&#xff09; 调度器是React架构的新增部分&a…

数据库系列之:什么是 SAP HANA?

数据库系列之&#xff1a;什么是 SAP HANA&#xff1f; 一、什么是 SAP HANA&#xff1f;二、什么是内存数据库&#xff1f;三、SAP HANA 有多快&#xff1f;四、SAP HANA 的十大优势五、SAP HANA 架构六、数据库设计七、数据库管理八、应用开发九、高级分析十、数据虚拟化 一、…

Linux篇:基础IO

一 预备知识 1. 文件内容属性&#xff0c;内容与属性都是数据&#xff0c;都要在磁盘中保存。 2. 文件分为打开的文件和没打开的文件。 3. 进程在访问一个文件的时候&#xff0c;都是要先打开这个文件。打开文件之前&#xff0c;文件在磁盘&#xff0c;打开文件之后&#xff0…