JMeter是一款非常流行的开源负载测试工具,得益于基于Java的扩展点,它有着强大灵活性。但分析结果的数据不能与其他程序衔接。关于这点,最近 PerfBytes 的博客也有所提到,因为JMeter自身并不能提供良好的数据可视化,大多数用户会将JMeter的结果同步到外部的仪表显示的解决方案中。
为了避免一定要去安装Elastic Search, Splunk 或其他外部的分析解决方案,我希望给你展示怎样较容易的同步数据到Dynatrace AppMon中,这个过程使用的是免费的Dynatrace Personal License。以此将JMeter和性能监测的数据在一个单独的仪表盘中显示,这样使得性能分析和问题诊断更加容易。
[attach]120886[/attach]
步骤 0: 安装Dynatrace
如果还没有Dynatrace,你可以注册一个 30天免费试用 的,它可以自动转化为终生的个人证书。个人证书能体验到所有的本地测试的产品特性。我还有一个YouTube 入门 ,它展示了“Dynatrace到底是什么?怎样入门?”,说句公道话,是否真的是应用栈的工具?
为了在Dynatrace中适应任意的数据类型,我创建了一个你可以从Dynatrace仓库下载这款插件的最新版本。通过“服务器设置”对话框进行安装插件,然后在系统配置中配置每10秒运行一次。通常情况下,这款插件会开放一个REST监听 ,网址:http://yourcollector:4000/genericmonitor (可以修改).
如要验证插件是否运行正常,可以按照我在GitHub页面描述的那样验证一下。
JMeter提供了一个BeanShellListener扩展,我们可以使用他得到采样器的每一个结果。所有你需要做的是为你的测试计划或者线程组创建一个BeanShell监听器,然后复制我已经上传到GitHub上的JMeter SampseScript项目中的BeanShellListener中的Java代码。
[attach]120887[/attach]
这个JMeter BeanShell监听器将流结果数据流到Dynatrace。
我想我不需要告诉你如何运行你的JMeter测试。所以,让他们运行起来吧!
在GitHub页面上,我增加了一个Dynatrace Web Dashboard。你可以通过连接http://yourdtserver:9911/index.jsp#dashboard-selection-list轻松的打开你的Dynatrace Web Dashboards。登录后点击导入并导入JMeterDTWebDashboard.dwd文件。将数据源换成你的系统配置文件。现在你应该看到左上角的JMeter相应时间概览分解成线程组名称,以及Dynatrace性能数据,如从应用程序获取的响应时间,执行SQL查询数量,异常抛出数量和调用了多少内部web服务—基本上如本文介绍中使用的截图。
根据Dynatrace Web Dashboards中的如下截图,我们可以得到一些额外的想法:
左上:相应时间和负载由逻辑应用层分隔。告诉我们负载平衡器是否正常工作,或者是否真某些正确的后端上加载出现了异常情况。
右下:CPU在应用层,告诉我们是否有单个过载的网页或者应用程序服务。
右上:应用程序和网页服务器上的工作线程利用率。易于发现由于配置不正确造成的线程耗尽或者“线程泄露”。
右下:Java和.Net层的内存行为。使内存泄漏、由于高内存使用率引起的性能问题和内存不足造成的崩溃问题容易发现。
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) | Powered by Discuz! X3.2 |