使用JMeter在Mirth Connect中进行性能测试

问题描述 投票:0回答:1

Mirth Connect是一种设计用于处理消息流的软件,并且具有内置的支持,尤其是处理HL7消息,因此该软件被广泛用于医疗保健应用程序中的接口。多年来,我已经看到Mirth软件遇到性能问题的主要原因是消息随着时间的推移逐渐积累,并且在这种情况下,该软件连续快速接收大量消息。

Mirth具有基于通道的体系结构,如果有某种方法可以对Mirth通道进行性能测试并获得其性能的JMeter统计信息,则它是理想的选择。因此,我们可以收集必要的信息以优化通道变压器,并据此设置清除程序。

但是,在Internet上,关于此区域的信息很少甚至没有,这就是人们可以使用JMeter测试Mirth频道的方式。早在2013年,斯里兰卡的一个团队就此领域进行了一些研究,我在下面发现了他们的发现和成就http://pragmatictestlabs.com/2016/10/09/performance-testing-healthcare-application-hl7-jmeter/

但是非常具体,这里的输出是他们提取的JSon对象,但是在Mirth中,我们可以有各种形式的输出,并且需要一种更好的方法来实现。一个重要的收获是输入,它是通用的,我们可以使用JMeter生成HL7消息并将其传递给Mirth,这很棒,但是如何一般地捕获响应,如果有一种读取Mirth的方法,那将是理想的通过JMeter的仪表板,所有输出统计信息都在那儿,只需阅读即可。

我有一个应用程序,Mirth可以读取ADT和RDE的HL7消息,并相应地创建带有适当内容的文本文件,并将其放置到共享位置。然后,应用程序读取文件并将信息显示给用户。

我希望在此处进行两项性能测试1.测量整个系统花费的时间以及从消息到达到用户可用信息的负载量如何变化2.测量信道花费多少时间,以及随着负载的增加如何执行]

我可以做第一个,因为我可以使用JMeter生成HL7消息,并且可以让JMeter读取应用程序或数据库中的输出。问题出在第二个问题上,我可以用一般的方式做到这一点吗?我衷心感谢您的建议和指导,谢谢。

jmeter performance-testing qa mirth
1个回答
0
投票
您询问了建议,因此,我将分享我的性能测试Mirth频道的一般策略。我怀疑这不能完全回答您的问题,并且我可能不会告诉您您不知道的任何内容,但是我希望这将帮助您找到您满意的答案。

由于多种原因,

尽量不要花费太多时间来“测试整个系统”:

    首先,测试整个系统必须包括测试低级配置,例如CPU内核数,机箱中使用的NIC,以及内核级软件(例如TCP / IP堆栈)。通常,您对这些东西没有任何控制权,因此您无法以任何方式对其进行优化。
  • 其次,整个系统的性能将在很大程度上取决于机器上正在运行的任何辅助代码。如果系统管理员决定“精简”我的Mirth进程,或使用该框托管SQL服务器,则将对我(再一次)无法控制的系统产生影响。
  • 坦率地说,我发现,“整个系统的性能”是管理层在系统设置过程中要求的,以便他们可以估算成本;但他们知道他们只会得到
  • estimate。您会尽力使用测试指标来对初始硬件配置进行很好的猜测,但是每个人都知道,实际上是生产性能指标会增加以后的配置成本。
请确保您

建立可测试性的渠道

。我发现,当源和目标可以更改为“ Channel Reader”和“ Channel Writer”而不更改消息处理时,测试通道要容易得多。一种看待这种情况的方法是,您不会检修Mirth的MLLP堆栈或Java的TCP堆栈,因此只需从测试中消除这些问题即可。

保留有用的测试信息的来源

。我在网络驱动器上有几个文件,这些文件中有大约一百条消息,用于测试多年来在HL7接口上遇到的令人讨厌的边缘情况。我写了一个小的Mirth频道,该频道从文件中读取这些内容,并尽可能快地弹出副本。通过在该通道的目标端打开“排队”,我可以将成千上万的测试消息排队,这些消息准备发送到我要测试的通道。过去,我花时间来构建一个测试界面,该界面的作用类似于假冒的EMR,以散发出随机构造的消息,但是与仅从测试文件中散发相同消息的副本相比,似乎没有任何优势。最后,也是最重要的一点,至关重要的是,

使用与测量生产实例的性能相同的度量来测量测试实例的性能

。如果您关心的唯一生产指标是“每秒消息”,那么这就是您需要在测试箱上测量的指标。如果在生产中需要考虑内存占用量,则还需要在测试环境中测量内存使用情况。当您对测试实例进行更改以使重要指标降低10%时,您需要确保管理层知道该更改,然后再将其应用到生产中。请注意,获取某些指标可能很棘手,因为Mirth不包含监视其自身性能的良好工具。 Mirth仪表板是监视错误或崩溃的好地方,但不是查找性能数据的好地方。在测试期间

我确保使用sysadmins用来监视生产实例性能的任何资源监视工具

。除此之外,我使用手动过程来测试性能:如果我想每秒计算一条消息,那么我将发送一批消息,并查看第一条消息和最后一条消息的时间戳。如果我想了解Mirth通道的CPU负载,请使用Windows性能监视器或posix'top'命令。
© www.soinside.com 2019 - 2024. All rights reserved.