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

本文主要是介绍操作教程|使用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压力测试操作界面

三、在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系统的证券交易接口和股票期权交易接口的压力测试。

这篇关于操作教程|使用MeterSphere对恒生UFX系统进行压力测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/782554

相关文章

Java中流式并行操作parallelStream的原理和使用方法

《Java中流式并行操作parallelStream的原理和使用方法》本文详细介绍了Java中的并行流(parallelStream)的原理、正确使用方法以及在实际业务中的应用案例,并指出在使用并行流... 目录Java中流式并行操作parallelStream0. 问题的产生1. 什么是parallelS

Linux join命令的使用及说明

《Linuxjoin命令的使用及说明》`join`命令用于在Linux中按字段将两个文件进行连接,类似于SQL的JOIN,它需要两个文件按用于匹配的字段排序,并且第一个文件的换行符必须是LF,`jo... 目录一. 基本语法二. 数据准备三. 指定文件的连接key四.-a输出指定文件的所有行五.-o指定输出

Linux jq命令的使用解读

《Linuxjq命令的使用解读》jq是一个强大的命令行工具,用于处理JSON数据,它可以用来查看、过滤、修改、格式化JSON数据,通过使用各种选项和过滤器,可以实现复杂的JSON处理任务... 目录一. 简介二. 选项2.1.2.2-c2.3-r2.4-R三. 字段提取3.1 普通字段3.2 数组字段四.

Linux kill正在执行的后台任务 kill进程组使用详解

《Linuxkill正在执行的后台任务kill进程组使用详解》文章介绍了两个脚本的功能和区别,以及执行这些脚本时遇到的进程管理问题,通过查看进程树、使用`kill`命令和`lsof`命令,分析了子... 目录零. 用到的命令一. 待执行的脚本二. 执行含子进程的脚本,并kill2.1 进程查看2.2 遇到的

详解SpringBoot+Ehcache使用示例

《详解SpringBoot+Ehcache使用示例》本文介绍了SpringBoot中配置Ehcache、自定义get/set方式,并实际使用缓存的过程,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录摘要概念内存与磁盘持久化存储:配置灵活性:编码示例引入依赖:配置ehcache.XML文件:配置

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三

k8s按需创建PV和使用PVC详解

《k8s按需创建PV和使用PVC详解》Kubernetes中,PV和PVC用于管理持久存储,StorageClass实现动态PV分配,PVC声明存储需求并绑定PV,通过kubectl验证状态,注意回收... 目录1.按需创建 PV(使用 StorageClass)创建 StorageClass2.创建 PV

Redis 基本数据类型和使用详解

《Redis基本数据类型和使用详解》String是Redis最基本的数据类型,一个键对应一个值,它的功能十分强大,可以存储字符串、整数、浮点数等多种数据格式,本文给大家介绍Redis基本数据类型和... 目录一、Redis 入门介绍二、Redis 的五大基本数据类型2.1 String 类型2.2 Hash

Redis中Hash从使用过程到原理说明

《Redis中Hash从使用过程到原理说明》RedisHash结构用于存储字段-值对,适合对象数据,支持HSET、HGET等命令,采用ziplist或hashtable编码,通过渐进式rehash优化... 目录一、开篇:Hash就像超市的货架二、Hash的基本使用1. 常用命令示例2. Java操作示例三

Linux创建服务使用systemctl管理详解

《Linux创建服务使用systemctl管理详解》文章指导在Linux中创建systemd服务,设置文件权限为所有者读写、其他只读,重新加载配置,启动服务并检查状态,确保服务正常运行,关键步骤包括权... 目录创建服务 /usr/lib/systemd/system/设置服务文件权限:所有者读写js,其他