diff --git a/api/api.go b/api/api.go
index 6289bef..5cca4d8 100644
--- a/api/api.go
+++ b/api/api.go
@@ -22,11 +22,13 @@
 	"encoding/base64"
 	"errors"
 	"fmt"
+	"io/ioutil"
 	"log"
 	"math/rand"
 	"net/http"
 	"sort"
 	"strconv"
+	"strings"
 	"time"
 
 	"github.com/golang/protobuf/jsonpb"
@@ -56,14 +58,23 @@
 
 // InitHTTPConnection creates and returns a new HTTPConnection object
 // with a given server address and username/password.
-func InitHTTPConnection(serverAddr string, usernamePassword string) *HTTPConnection {
+func InitHTTPConnection(serverAddr string, credentialsFile string) (*HTTPConnection, error) {
+	usernamePassword := ""
+	if credentialsFile != "" {
+		// Set up username/password.
+		data, err := ioutil.ReadFile(credentialsFile)
+		if err != nil {
+			return nil, err
+		}
+		usernamePassword = strings.Replace(string(data), "\n", "", -1)
+	}
 	return &HTTPConnection{
 		client:      &http.Client{Timeout: time.Duration(1 * time.Second)},
 		credentials: "Basic " + base64.StdEncoding.EncodeToString([]byte(usernamePassword)),
 		marshaler:   &jsonpb.Marshaler{OrigName: true},
 		// TODO(wsilberm): Use https
 		baseURL: "http://" + serverAddr,
-	}
+	}, nil
 }
 
 func (h HTTPConnection) getURL(rpcName string) string {
diff --git a/testclient/main.go b/testclient/main.go
index eabfbef..b7610e2 100644
--- a/testclient/main.go
+++ b/testclient/main.go
@@ -34,7 +34,7 @@
 
 var (
 	serverAddr        = flag.String("server_addr", "example.com:80", "Your http server's address in the format of host:port")
-	usernamePassword  = flag.String("username_password", "", "(eg 'username:password') credentials for your server. Leave blank to bypass authentication.")
+	credentialsFile   = flag.String("credentials_file", "", "File containing credentials for your server. Leave blank to bypass authentication.")
 	testSlots         = flag.Int("num_test_slots", 10, "Maximum number of slots to test from availability_feed. Slots will be selected randomly")
 	allFlows          = flag.Bool("all_tests", false, "Whether to test all endpoints.")
 	healthFlow        = flag.Bool("health_check_test", false, "Whether to test the Health endpoint.")
@@ -171,7 +171,10 @@
 	defer f.Close()
 	log.SetOutput(f)
 
-	conn := api.InitHTTPConnection(*serverAddr, *usernamePassword)
+	conn, err := api.InitHTTPConnection(*serverAddr, *credentialsFile)
+	if err != nil {
+		log.Fatalf("Failed to init http connection %v", err)
+	}
 
 	// Health check doesn't affect the cancel booking flow so we let it through.
 	if *cancelAllBookings && (*allFlows || *checkFlow || *bookFlow || *listFlow || *statusFlow || *rescheduleFlow) {
