Monday, April 19, 2021

API Automation Using RestSharp [ Deserialization ]

 

How to Deserialize JSON Response to Class with RestSharp?


 The term Deserialization here means the conversion from the String form of JSON to a Class form. This is also called Object Representation of structured data.

  • Add Newtonsoft.json to the project via Nuget Package Manager => Manage Nuget packages for Solutions.
  • Create a model class of the json response like this

 public class Users
    {

        public string name { get; set; }
        public string job { get; set; }
        public string id { get; set; }
        public DateTime createdAt { get; set; }

    }
  • Make appropriate changes in the code like this
 public class DemoGetTest
    {
        private string BaseUrl = "https://reqres.in/";

        [Test]
        public void DeserializingJsonResponse()
        {
            var restClient = new RestClient(BaseUrl);
            var restRequest = new RestRequest("/api/users?page=2", Method.GET);
            restRequest.AddHeader("Accept", "application/json");
            IRestResponse response = restClient.Execute(restRequest);
            var content = response.Content;

            if (response.IsSuccessful)
            {
                Console.WriteLine("Status Code " + response.StatusCode);
                Console.WriteLine("Response Content " + response.Content);

            }

            //De-serialisation of Response Data 


            Root json = JsonConvert.DeserializeObject<Users>(content);
if(json.data[0].first_name== "Michael") { Console.WriteLine("operation passed "); } var jsonobject=JObject.Parse(content); int pagevalue =(int)jsonobject.GetValue("page"); } }

Monday, April 5, 2021

API Automation Using RestSharp Part II [ Method : GET ]

 

Uploading: 160221 of 160221 bytes uploaded.
How to Write GET API Test Using RestSharp?
  1. Create a test class DemoGetTest and test method Get Operations() in the project.
Operations to be  Performed : 
  • Create request from client and specify the HTTP Method type.
  • Send the Request to the Server.
  • Get the Response back from the server.
  • Validate returned Response’s Body.

Code Snippet :

 public class DemoGetTest
    {
        private string BaseUrl = "https://reqres.in/";

        [Test]
        public void GetOperationUsingRestSharp()
        {
            //Creating Client Connection
            IRestClient restClient = new RestClient(BaseUrl);

            //Creating Request from Client to Server
            IRestRequest restRequest = new RestRequest("/api/users?page=2", Method.GET);

            restRequest.AddHeader("Accept", "application/json");

            //Execute Request on Server
            IRestResponse response = restClient.Execute(restRequest);
            var content = response.Content;

            if (response.IsSuccessful)
            {
                Console.WriteLine("Status Code " + response.StatusCode);
                Console.WriteLine("Response Content " + response.Content);
                Console.WriteLine("Response Content " + response.Headers);
                //Console.WriteLine(restResponse.IsSuccessful);
                //Console.WriteLine(restResponse.StatusCode);
            }
            else
            {
                Console.WriteLine("Operation Failed");
                //Console.WriteLine(restResponse.ErrorMessage);
                //Console.WriteLine(restResponse.ErrorException); 
            }

            Assert.AreEqual(200, (int)response.StatusCode);

            //Verification of response
            if (!content.Contains("page"))
            {
                Assert.Fail("information is not displayed");
            }
        }
}