我从命令行运行.jmx文件,然后将指标保存到.jtl文件。我的.jmx文件具有以下结构:
我尝试使用两种方法生成聚合的csv文件:
使用cmdRunner的代码:
#Variable Declaration
$vcenter = Gc-UserInputFromList("vcenter instances go here")
$tenant = Get-UserInput "Enter the 4 digit tenant ID"
[int]$NumDisplays
#vSphere connection
$session = Connect-Viserver -Server $vcenter
#Change Monitor Count
$vms = get-vm -Location $tenant
#The script
Function setMonitorCount {
$vms = get-vm -Location $tenant
Foreach ($vm in $vms){
if ($vm.PowerState -eq "PoweredOff") {
$VideoAdapter = $vm.ExtensionData.Config.Hardware.Device | where {$_.GetType().Name -eq "VirtualMachineVideoCard"}
$spec = New-Object VMware.Vim.VirtualMachineConfigSpec
$Config = New-Object VMware.Vim.VirtualDeviceConfigSpec
$Config.device = $VideoAdapter
$Config.device.numDisplays = 3
$Config.operation = "edit"
$spec.deviceChange += $Config
$VMView = $vm | Get-View
$VMView.ReconfigVM($spec)
Write-Output "Changing monitor count for $vm and powering back on."
$poweredOn = Start-VM $vm
}
}
}
使用JMeterPluginsCMD的代码:
java -jar "C:\apache-jmeter-5.2.1\lib\cmdrunner-2.2.jar" --tool Reporter --generate-csv "C:\LoadTesting\aggregate.csv" --input-jtl "C:\LoadTesting\log.jtl" --plugin-type AggregateReport
当我从这样的命令行运行.JMX文件时:
JMeterPluginsCMD.bat --generate-csv "C:\LoadTesting\aggregate.csv" --input-jtl "C:\LoadTesting\log.jtl" --plugin-type AggregateReport
aggregate.csv文件只有标题和带有Total的行,但是如果我运行上面的命令之一,则会正确生成该文件。
您知道为什么我的OS Process Sampler无法按预期工作吗? 有没有人建议检查什么或如何调试它?
答案 0 :(得分:0)
首先,多余的空间可能是问题所在吗?
jmeter -n -t "C:/LoadTesting/MyTest.jmx" -f -l "C:/LoadTesting /log.jtl" -j jmeter.log
^should this whitespace be here?
如果不是这样,很可能是您的OS Process Sampler以某种方式失败了,您可以通过在启动脚本中添加下一个属性来临时configure JMeter to save response data for failed (or even for all) samplers:
jmeter -Jjmeter.save.saveservice.output_format=xml -Jjmeter.save.saveservice.response_data=true -n -t "C:/LoadTesting/MyTest.jmx" -f -l "C:/LoadTesting /log.jtl" -j jmeter.log
这样,您的log.jtl
文件将采用XML格式,但将包含OS Process Sampler的输出。如果您的Beanshell逻辑依赖于CSV格式,则可以使用Simple Data Writer或Flexible File Writer之类的侦听器代替
其他要点:
jmeter.save.saveservice.autoflush
属性设置为true
,而不是等待日志文件完成,这样JMeter就会在结果准备就绪/可用时将它们存储在.jtl文件中。