用于解析最近10次运行的JTL文件的Shell脚本

时间:2017-05-05 07:33:50

标签: bash shell awk sed jmeter

我有一个示例jtl文件,如下所示: 我必须读取JR_ *突出显示的每个操作所花费的时间,时间在t =""从最新的10个jtl文件中,计算出平均值。 我正在尝试做一个shell脚本,它将执行这个特定的操作,计算最后10次运行的特定操作的平均值,(读取最新的10个jtl文件)

<sample t="5203" it="0" lt="0" ts="1493818151051" s="true" lb="JR_READ" rc="200" rm="OK" tn="Thread Group 1-2" dt="text" by="0" ng="2" na="2"/>
<sample t="3584" it="0" lt="0" ts="1493818151660" s="true" lb="JR_WRITE" rc="200" rm="OK" tn="Thread Group 1-2" dt="text" by="0" ng="2" na="2"/>
<sample t="61280" it="0" lt="0" ts="1493818152265" s="true" lb="JR_SAVE" rc="200" rm="OK" tn="Thread Group 1-2" dt="text" by="0" ng="2" na="2"/>
<sample t="129935" it="0" lt="0" ts="1493818152870" s="true" lb="JR_DELETE" rc="200" rm="OK" tn="Thread Group 1-2" dt="text" by="0" ng="2" na="2"/>

我正在尝试这样的事情:

#!/bin/sh
cd /tests/unit/
fNames=$(ls -t | grep -i jenkins-TEST_UNIT | head -n 10)
#printf "%s\n" "${fNames[@]}"
## now loop through the above array
for i in "${fNames[@]}"
do
   #echo "$i"
  grep -I "JR_READ" $i/Summary.jtl | awk -F '"' '{print $2}'
   # or do whatever with individual element of the array
done

我得到了&#34;时间&#34;只需要一个文件,其余的目录我得到这个错误,可能是什么原因? grep仅适用于一个文件。

grep: jenkins-TEST_UNIT12: Is a directory
grep: jenkins-TEST_UNIT9: Is a directory
grep: jenkins-TEST_UNIT8: Is a directory
grep: jenkins-TEST_UNIT7: Is a directory
grep: jenkins-TEST_UNIT6: Is a directory
grep: jenkins-TEST_UNIT5: Is a directory
grep: jenkins-TEST_UNIT4: Is a directory
grep: jenkins-TEST_UNIT3: Is a directory
grep: jenkins-TEST_UNIT2: Is a directory
60665

欢迎您的想法, 感谢

1 个答案:

答案 0 :(得分:0)

有几个更好的选择:

  1. 将.jtl结果文件提供给JChav
  2. 通过Jenkins运行您的JMeter测试,Jenkins Performance Plugin可配置“效果趋势”图表以显示各种指标,包括响应时间
  3. 将结果文件上传到BM.Sense服务,该服务具有不同的测试运行比较功能
  4. 如果没有为您播放选项,最好考虑computing the average via XSLT