性能测试时,您应始终从两个来源获取KPI和指标。首先,从您正在测试的服务(网站,移动应用程序或其他)开始。这些
KPI
包括每秒请求数,数据传输速度,传输数据量等。
其次,您需要收集您的测试服务所在服务器的内部指标。这些包括CPU负载到由特定进程打开的文件数目。这些指标将帮助您完成产品规划。它们可以帮助您预测高峰负载,帮助您找到低吞吐量或请求错误的原因等等。
具体操作如下:
右键单击测试计划- >线程组 - >添加 - >监听器 - > SSHMon示例收集器(
SSHMon Samples Collector
)
上面的屏幕截图显示了SSHMon界面。如果您以前使用过Perfmon Metrics Collector,则可能会注意到这两个插件的界面看起来非常相似。
两者之间的主要区别是服务器指标配置表
该表由以下列组成:
- Label【标签】 - 将在图表上显示的度量标准的名称
- Host/Port【主机/端口】 - 被测服务器的地址/端口
- Username/Password 【用户名/密码】 - ssh登录的凭证
- Private Key (PEM) 【私钥(PEM)】 - pem文件的路径。如果ssh服务器支持公钥认证,则使用该字段 (填写的值为${__FileToString(证书路径)})
- Command【命令】 - 执行的命令行命令。该命令必须返回一个十进制数字,否则执行将失败
- Delta【增量】 - 如果选中此复选框,则返回的值是与前一个值的差值。
接口的其余部分与Perfmon Metrics Collectors接口类似。
现在,我们需要获取指标。不幸的是,SSHMon使它有点复杂。要收集诸如Perfmon中的网络,CPU和磁盘使用率等标准指标,您不需要知道任何内容,因为Perfmon为您提供帮助。但通过SSHMon,您需要知道要执行哪个命令才能获得正确的值,命令语法和一些更多详细信息。
Linux的
例如,让我们看看SSHMon使用sar实用程序获取指标的工作。通过使用此实用程序,您可以实时获得有关处理器,内存,磁盘I / O和网络的性能信息。
命令
sar -u
1 1
每隔一秒显示CPU使用情况的一个示例。在下面的屏幕截图中,您可以看到命令的结果。
但对于SSHMon,我们需要得到一个十进制数。为了提取这个值,我们需要过滤当前的结果。使用grep,awk或用于处理数据流的类似工具,我们可以过滤前一个命令的结果。
例如,现在我们将使用具有以下语法的awk实用程序:'condition {action}';在我们的例子中,条件是正则表达式sar -u 1 1 | awk '/^Average:/{print 100- $8}';该表达式的意思:每隔一秒读取Average 第8行的数据
现在我们可以将此命令添加到SSHMon Listener并运行脚本。正如您在下面的图片中看到的,图表正在构建中。
要使用sar获取更多指标,您需要更改第一个参数并替换awk脚本的主体。例如,您可以使用以下命令获取有关I / O活动的信息:
sar -b
1
1
| awk '/^Average:/ {$2}'
其他命令的语法也非常相似。例如,我们可以使用mpstat命令获取有关CPU的信息:
mpstat -P all
1
1
如您所见,mpstat语法与sar命令语法非常相似。'-P all'就像-b,并且需要获取有关服务器上所有处理器的信息。第一位数字是指执行该命令后经过的时间:1秒,第二位数字代表次数:1。
现在让我们将这些命令添加到监听器并运行脚本。正如您所看到的,我们在表格中指定的所有指标都放在一起。
安装jmeter插件
1、
下载
ServerAgent-XXX.zip
JMeterPlugins-Standard-XXX
.zip
JMeterPlugins-Extras-XXX
.zip
其中JMeterPlugins-Standard和JMeterPlugins-Extras是客户端的,ServerAgent是服务端的。
2、配置
将JMeterPlugins-Standard-XXX
.zip 中 lib\ext 目录下的 JmeterPlugins-Standard.jar 文件都放到apache-jmeter-3.2\lib\ext目录中。
将JMeterPlugins-Extras-XXX
.zip 中 lib\ext 目录下的 JMeterPlugins-Extras.jar 文件放到apache-jmeter-3.2\lib\ext目录中。
将 ServerAgent-XXX 放到要监控的服务器中待使用。