Merge pull request #22 from tsenart/dont-verify-certs

Suport a curl -k mode?
This commit is contained in:
Tomás Senart
2013-09-14 13:57:24 -07:00
2 changed files with 24 additions and 1 deletions

View File

@@ -1,6 +1,7 @@
package vegeta
import (
"crypto/tls"
"io/ioutil"
"net/http"
"time"
@@ -39,12 +40,20 @@ func drill(rate uint64, reqs chan *http.Request, res chan Result) {
}
}
var client = &http.Client{
Transport: &http.Transport{
TLSClientConfig: &tls.Config{
InsecureSkipVerify: true,
},
},
}
// hit executes the passed http.Request and puts the result into results.
// Both transport errors and unsucessfull requests (non {2xx,3xx}) are
// considered errors.
func hit(req *http.Request, res chan Result) {
began := time.Now()
r, err := http.DefaultClient.Do(req)
r, err := client.Do(req)
result := Result{
Timestamp: began,
Timing: time.Since(began),

View File

@@ -3,6 +3,7 @@ package vegeta
import (
"net/http"
"net/http/httptest"
"strings"
"sync/atomic"
"testing"
"time"
@@ -22,3 +23,16 @@ func TestAttackRate(t *testing.T) {
t.Fatalf("Wrong number of hits: want %d, got %d\n", rate, hits)
}
}
func TestClientCertConfig(t *testing.T) {
server := httptest.NewTLSServer(
http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {}),
)
request, _ := http.NewRequest("GET", server.URL, nil)
results := make(chan Result, 1)
hit(request, results)
result := <-results
if strings.Contains(result.Error, "x509: certificate signed by unknown authority") {
t.Errorf("Invalid certificates should be ignored: Got `%s`", result.Error)
}
}