diff --git a/quiche/quic/test_tools/quic_test_client.cc b/quiche/quic/test_tools/quic_test_client.cc
index 4c3799b..3ddd4b7 100644
--- a/quiche/quic/test_tools/quic_test_client.cc
+++ b/quiche/quic/test_tools/quic_test_client.cc
@@ -454,6 +454,10 @@
 
 bool QuicTestClient::response_complete() const { return response_complete_; }
 
+QuicTime QuicTestClient::response_end_time() const {
+  return response_end_time_;
+}
+
 int64_t QuicTestClient::response_body_size() const {
   return response_body_size_;
 }
@@ -548,6 +552,10 @@
   return handshake_msg->tag_value_map();
 }
 
+const QuicConnectionStats& QuicTestClient::GetConnectionStats() const {
+  return client_->client_session()->connection()->GetStats();
+}
+
 bool QuicTestClient::connected() const { return client_->connected(); }
 
 void QuicTestClient::Connect() {
@@ -810,6 +818,10 @@
   stream_error_ = state.stream_error;
   response_ = state.response;
   response_complete_ = state.response_complete;
+  if (response_complete_) {
+    response_end_time_ =
+        client()->client_session()->connection()->clock()->Now();
+  }
   response_headers_complete_ = state.response_headers_complete;
   response_headers_ = state.response_headers.Clone();
   response_trailers_ = state.response_trailers.Clone();
diff --git a/quiche/quic/test_tools/quic_test_client.h b/quiche/quic/test_tools/quic_test_client.h
index a0e99f6..88c0d26 100644
--- a/quiche/quic/test_tools/quic_test_client.h
+++ b/quiche/quic/test_tools/quic_test_client.h
@@ -196,6 +196,7 @@
   // received.
   const quiche::HttpHeaderBlock& response_trailers() const;
   bool response_complete() const;
+  QuicTime response_end_time() const;
   int64_t response_body_size() const;
   const std::string& response_body() const;
   // Getters for stream state that return state of the oldest active stream that
@@ -295,6 +296,8 @@
   // Get the server config map.  Server config must exist.
   const QuicTagValueMap& GetServerConfig() const;
 
+  const QuicConnectionStats& GetConnectionStats() const;
+
   void set_auto_reconnect(bool reconnect) { auto_reconnect_ = reconnect; }
 
   void set_priority(spdy::SpdyPriority priority) { priority_ = priority; }
@@ -397,6 +400,7 @@
   QuicRstStreamErrorCode stream_error_;
 
   bool response_complete_;
+  QuicTime response_end_time_ = QuicTime::Zero();
   bool response_headers_complete_;
   mutable quiche::HttpHeaderBlock response_headers_;
 
