JoeDog / siege

Siege is an http load tester and benchmarking utility
GNU General Public License v3.0
5.91k stars 386 forks source link

feature request: maximum response time #150

Open tkellen opened 5 years ago

tkellen commented 5 years ago

Would you accept a PR that introduces a max-time option which forces requests to fail after a user defined duration? I am testing an API that has numerous endpoints which return responses after minutes (or even hours) of processing. I'm writing a suite to raise visibility on this issue and I'd like to eliminate my usage of this wrapper (which kills siege itself if there is no output for a defined period).

#!/bin/bash

_terminate_children() {
        trap "exit 143" SIGTERM && kill -- -$$
}

trap _terminate_children SIGINT SIGTERM

tout="$1"
shift
eval $@ | tee >(while :; do
   read -t "$tout"
   case $? in
      0) : ;;
      1) break ;;
      *) _terminate_children ;;
   esac
done)
exit ${PIPESTATUS[0]}
JoeDog commented 5 years ago

Absolutely.

On Mon, Feb 11, 2019 at 11:13 AM Tyler Kellen notifications@github.com wrote:

Would you accept a PR that introduces a max-time option which forces requests to fail after a user defined duration? I am testing an API that has numerous endpoints which return responses after minutes (or even hours) of processing. I'm writing a suite to raise visibility on this issue and I'd like to eliminate my usage of this wrapper (which kills siege itself if there is no output for a defined period).

!/bin/bash

_terminate_children() { trap "exit 143" SIGTERM && kill -- -$$ } trap _terminate_children SIGINT SIGTERM

tout="$1"shifteval $@ | tee >(while :; do read -t "$tout" case $? in 0) : ;; 1) break ;; *) _terminate_children ;; esacdone)exit ${PIPESTATUS[0]}

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/JoeDog/siege/issues/150, or mute the thread https://github.com/notifications/unsubscribe-auth/AFMT5hl9wSDevFWM1XQQu6vXHBjgzs0Nks5vMZaagaJpZM4a0hsv .