private async Task <NightWatchTXRClientTestResult> DoPartitionRun(string endpoint, NightWatchTXRClientTestParameters clientTestParameters, int partitionKey)
        {
            var runResponse = await SendRunRequest(endpoint, clientTestParameters);

            //if the run request's response indicating any status other than running, service has failed to start the test. hence, returning the error msg.
            if (runResponse.Status != NightWatchTXRClientTestStatus.Running)
            {
                return(runResponse as NightWatchTXRClientTestResult);
            }

            var result = await CheckResults(endpoint, partitionKey);

            if (result != null)
            {
                Console.WriteLine($"partition {partitionKey} test is done. results: {JsonConvert.SerializeObject(result)}");
            }
            else
            {
                Console.WriteLine($"partition {partitionKey} test result is not obtained.");
            }

            return(result);
        }
        private async Task <NightWatchTXRClientBaseResult> SendRunRequest(string address, NightWatchTXRClientTestParameters clientTestParameters)
        {
            var payload = JsonConvert.SerializeObject(new NightWatchTXRClientRunParameters()
            {
                NumberOfOperations       = clientTestParameters.NumberOfOperations,
                MaxOutstandingOperations = clientTestParameters.MaxOutstandingOperations,
                OperationSize            = clientTestParameters.OperationSize,
                Action = NightWatchTXRClientTestAction.Run
            }, new JsonSerializerSettings());

            var response = await SendRequest(address, payload);

            var responseString = await response.Content.ReadAsStringAsync();

            return(JsonConvert.DeserializeObject <NightWatchTXRClientBaseResult>(responseString));
        }