Advertisement
Guest User

Untitled

a guest
May 23rd, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.38 KB | None | 0 0
  1. #!/bin/sh
  2. # Parse jmeter output and get various stats
  3. set -e # Exit immediately on error
  4. # set -x # Debug
  5. usage="jstats2 <jmeter-csv-output-file>"
  6. [ $1 ] || { echo "$usage" ; exit 1 ; }
  7. JFILE=$1
  8.  
  9. # Show timestamp info
  10. UT1=$(sed -n '2p' $JFILE | cut -c -10)
  11. UT2=$(tail -1 $JFILE | cut -c -10)
  12. echo " --test run details--"
  13. echo " started $(date --date="@$UT1" +"%y%m%d-%H%M%S")"
  14. echo " stopped $(date --date="@$UT2" +"%y%m%d-%H%M%S")"
  15. echo "duration $(echo "$UT2 - $UT1" | bc) sec"
  16.  
  17. # Create temporary file "ELDATA" for "elapsed" data column
  18. ELDATA=$(mktemp /tmp/$(basename $0).XXXXX) || exit 1
  19. cut -d, -f2 $JFILE | grep . | grep -v "elapsed" | sort -n > $ELDATA
  20. N=$(wc -l $ELDATA | awk '{print $1}')
  21. echo " count n $N"
  22. FC=$(awk -F, '$8 ~ /false/{print}' $JFILE | wc -l)
  23. FP=$(echo "100 * $FC / $N" | bc)
  24. echo "failures $FC ($FP %)"
  25.  
  26. P50=$(dc -e "$N 2 / p")
  27. P90=$(dc -e "$N 9 * 10 / p")
  28. P95=$(dc -e "$N 95 * 100 / p")
  29. P99=$(dc -e "$N 99 * 100 / p")
  30. echo " --response stats (ms)--"
  31. echo " median $(awk "FNR==$P50" $ELDATA)"
  32. echo " p90 $(awk "FNR==$P90" $ELDATA)"
  33. echo " p95 $(awk "FNR==$P95" $ELDATA)"
  34. echo " p99 $(awk "FNR==$P99" $ELDATA)"
  35. echo -e " mean \u03BC $(awk '{sum+=$1}END{if (NR>0) print sum/NR}' $ELDATA)"
  36. echo -e "stddev \u03C3 $(awk '{x+=$0;y+=$0^2}END{print sqrt(y/NR-(x/NR)^2)}' $ELDATA)"
  37. echo " min $(awk "FNR==1" $ELDATA)"
  38. echo " max $(awk "END{print}" $ELDATA)"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement