API Testing with C# and RestSharp

API testing is an essential part of the software development lifecycle, focusing on the communication and data exchange between different software systems. It verifies that APIs are functioning correctly and meeting performance, reliability, and security standards. Using C# with the RestSharp library simplifies the process of interacting with RESTful APIs by providing an easy-to-use interface for making HTTP requests.

Using Paste Special in Visual Studio to Generate C# Classes from JSON

Visual Studio offers a feature called “Paste Special” that allows you to easily generate C# classes from JSON objects. This is particularly useful when working with web APIs or any JSON data, as it automates the creation of data models that match the JSON structure.

  1. Copy the JSON Object:
    • Ensure you have your JSON object copied to the clipboard. For example
  1. Open Visual Studio:
    • Launch Visual Studio and open the project where you want to add the new classes.
  2. Add a New Class File:
    • In Solution Explorer, right-click on the folder where you want to add the new class.
    • Select Add > New Item….
    • Choose Class and give it a meaningful name, then click Add.
  3. Use Paste Special:
    • Open the newly created class file (e.g., MyClass.cs).
    • Delete any default code in the class file.
    • Go to Edit > Paste Special > Paste JSON as Classes.
  4. Review the Generated Code:
  5. Visual Studio will automatically generate C# classes that correspond to the JSON structure. For the example JSON, it would generate something like this:

How to input value into an international number text box in selenium

Below is the text box and the corresponding HTML:

If I used sendkeys, sometimes it may not working

driver.findElement(By.name(“mainphone”)).sendKeys(“(02)2222-2222”);
driver.findElement(By.id(“mobilephone”)).sendKeys(“05-5555-5555”);

If sendkeys() methods are not working then use following two ways to input text:

Before sendkeys() use click() method to click inside textfield i.e:

driver.findElement(By.name("mainphone")).click();
driver.findElement(By.name("mainphone")).sendKeys("(02)2222-2222");   
driver.findElement(By.id("mobilephone")).click();
driver.findElement(By.id("mobilephone")).sendKeys("05-5555-5555"); 

Open chrome mobile emulator with selenium c#

Hi guys, I am going to run a test mobile emulator with selenium and VS C#

Import

using System;
using System.Threading;
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium.Chrome;

Driver Utils Class

First of all delclaring the webdriver, which will be used for open specfic browser

namespace SeleniumAutomation
{
[TestClass]
public class Setup
  {
       IWebDriver webDriver;
  }
}

Open Chrome

[Test]
public void Open_Browser()
{
 webDriver = new ChromeDriver();

}

Open Chrome Mobile Emulator

 [Test]
 public void Mobile_Emulator_Browser()
 {
 ChromeOptions chromeCapabilities = new ChromeOptions();
 chromeCapabilities.EnableMobileEmulation("Pixel 5");
 webDriver = new ChromeDriver(chromeCapabilities);

 }

I think it will be helpful to run chrome in mobile emulator

Selenium C# How to Generate Extent Reports

Reports play a fundamental role when it comes to TESTING. Tester can now know the real-time reports of test suit execution. Reports made ease to know the ratio of Pass? Or Fail? Post-test suit execution and it is the only documentation to know about test execution results.

Everyone wish to see the detailed description of the test results. Don’t you? here is the solution for it. And, let us see how these reports can be achieved? in Selenium C# – NUnit framework automation testing.

To achieve detailed test execution results as HTML reports we need to rely on third party tool called => Extent Reports. These reports provide decent narration of test execution results and are depicted in PIE chart.

How to Reference Extent Reports in MS Visual Studio

Extent Reports can be directly referenced via NuGet Gallery:

Step 1) Project> Manage NuGet Packages

Step 2) In the next window

  1. Search for ExtentReports
  2. Select the search result
  3. Click Install

Step 3) Install selenium support from NuGet package

Step 3) Click ‘I Accept’

Step 4) Create a new C# class with the below code for Extent Reports.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using OpenQA.Selenium;
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium.Chrome;

using NUnit.Framework;
using NUnit.Framework.Interfaces;
using NUnit;

using AventStack.ExtentReports.Reporter;
using AventStack.ExtentReports;
using System.IO;

namespace RnD
{
    [TestFixture]
    public class TestDemo1
    {
        public IWebDriver driver;

        public static ExtentTest test;
        public static ExtentReports extent;

        [SetUp]
        public void Initialize()
        {
            driver = new ChromeDriver();
        }


        [OneTimeSetUp]
        public void ExtentStart()
        {
            
            extent = new ExtentReports();
            var htmlreporter = new ExtentHtmlReporter(@"D:\ReportResults\Report" + DateTime.Now.ToString("_MMddyyyy_hhmmtt") + ".html");
            extent.AttachReporter(htmlreporter);

        }



        [Test]
        public void BrowserTest()
        {
            test = null;
            test = extent.CreateTest("T001").Info("Login Test");

            driver.Manage().Window.Maximize();
            driver.Navigate().GoToUrl("http://testing-ground.scraping.pro/login");
            test.Log(Status.Info, "Go to URL");

            //provide username
            driver.FindElement(By.Id("usr")).SendKeys("admin");
            //provide password
            driver.FindElement(By.Id("pwd")).SendKeys("12345");

            try
            {
                WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(1));
                wait.Until(ExpectedConditions.ElementIsVisible(By.XPath("//h3[contains(.,'WELCOME :)')]")));
                //Test Result
                test.Log(Status.Pass, "Test Pass");

            }

            catch (Exception e)

            {
                test.Log(Status.Fail, "Test Fail");
                throw;

            }
        }

        [TearDown]
        public void closeBrowser()
        {
            driver.Close();
        }

        [OneTimeTearDown]
        public void ExtentClose()
        {
            extent.Flush();
        }
    }
}

Post running test method, the test execution report looks as shown below:

how to setup selenium webdriver with c#

Set Up Visual Studio with Selenium WebDriver:

Create a new project in Visual Studio:

Step 1) In the File Menu, Click New > Project

Step 2) In the next screen

  1. Select the option ‘Visual C#’
  2. Click on Console App (.Net Framework)
  3. Enter name as “RnD”
  4. Click OK

Step 3) The below screen will be displayed once the project is successfully created.

Set up Visual Studio with Selenium WebDriver:

Step 1) Navigate to Project-> Manage NuGet Packages

Step 2) In the next screen

  1. Search for Selenium on the resultant screen
  2. Select the first search result
  3. Click on ‘Install’

Step 3) The below message will be displayed once the package is successfully installed

Steps to install NUnit Framework:

Step 1) Navigate to Project-> Manage NuGet Packages

Step 2) In the next window

  1. Search for NUnit
  2. Select the search result
  3. Click Install

Step 3) The below message will appear once the installation is complete.

Steps to download NUnit Test Adapter

Please note that the below steps work only for 32-bit machines. For 64-bit machines, you need to download the ‘NUnit3 Test Adapter’ by following the same process as mentioned below.

Step 1) Navigate to Project-> Manage NuGet Packages

Step 2) In the next window

  1. Search NUnitTestAdapter
  2. Click Search Result
  3. Click Install

Step 3) Once install is done you will see the following message

Steps to download Chrome Driver

Step 1) Navigate to Project-> Manage NuGet Packages

Step 2) In the next window

  1. Search for Chromdriver
  2. Select the search result
  3. Click Install

Step 3) System may asked for permission. Click on ‘Yes to All’

Step 4) The below message will appear once the installation is complete.

Selenium and NUnit framework:

Selenium with NUnit framework allows differentiating between various test classes. NUnit also allows using annotations such as SetUp, Test, and TearDown to perform actions before and after running the test.

NUnit framework can be integrated with Selenium by creating a NUnit test class and running the test class using NUnit framework.

The below are the steps needed to create and run a test class using NUnit framework.

Steps to create a NUnit Test class in Selenium:

Step 1) In the Solution Explorer, Right clicked on project > Add > Class

Step 2) Class creation window will appear

  1. Provide a name to the class
  2. Click on Add button

Step 3) The below screen will appear.

Step 4) Add the following code to the created class. Please note that you need to specify the location of ‘chromdriver.exe’ file during chrome driver initialization.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using OpenQA.Selenium;
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium.Chrome;


using NUnit.Framework;
using NUnit.Framework.Interfaces;
using NUnit;

namespace RnD
{
    [TestFixture]
    public class TestDemo1
    {
        public IWebDriver driver;

        [SetUp]
        public void Initialize()
        {
            driver = new ChromeDriver();
        }

        [Test]
        public void BrowserTest()
        {
            driver.Manage().Window.Maximize();
            driver.Navigate().GoToUrl("https://www.google.com/");
        }

        [TearDown]
        public void closeBrowser()
        {
            driver.Close();
        }
    }
}

Step 4) Click on ‘Build’ -> ‘Build Solution’ or keypress ‘Ctrl + Shift + B’

Step 5) Once the build is successful, we need to open the Test Explorer window. Click on Test -> Windows -> Test Explorer

Step 6) Test Explorer window opens with the list of available tests. Right-click on Test Explorer and select Run Selected Tests

Step 7) Selenium must open the browser with specified URL and close the browser. Test case status will be changed to ‘Pass’ on the Test Explorer window.

How to read a CSV file and store the values into an array in C#?

A CSV file is a comma-separated file, that is used to store data in an organized way.

Data.csv
A,B,C

Example

using System;
using System.IO;
using System.Collections.Generic;

   class Program
    {
        public static void Main()
        {
            string FilePath = @"C:\Sample\Data.csv";

            StreamReader reader = null;

            if (File.Exists(FilePath))
            {
                reader = new StreamReader(File.OpenRead(FilePath));

                List<string> listData = new List<string>();

                while (!reader.EndOfStream)
                {
                    var line = reader.ReadLine();

                    var values = line.Split(',');

                    foreach (var item in values)
                    {

                        listData.Add(item);

                    }
                    foreach (var row1 in listData)
                    {

                        Console.WriteLine(row1);

                    }
                }
            }
            else
            {
                Console.WriteLine("File doesn't exist");
            }
            Console.ReadLine();
        }
    }

Output

A
B
C

How to setup selenium WebDriver with Nunit and Visual Studio (C#)

Selenium is an open source software tools which supporting tests automation. Now days, Software automation tools are becoming popular. Software automation tools are a time efficient. You will find different kinds of software automation tools, such as Load Runner, QTP, MS Test Manager, Jmeter etc. Selenium webdriver is a one of them. It is most popular automation tools.

 

Today, I am going to discussed about how to run selenium WebDriver with Nunit and Visual Studio (C#)

 

  • Download Nunit (http://www.nunit.org) and install in your system
  • Download selenium web-driver (http://docs.seleniumhq.org/download)
  • Open a new project and Create a Class Library
  • Add reference webdriver dll (selenium-dotnet-2.35.0 > net40) and nunit dll (Where you installed).

Webdriver dll

Nunit Dll

Or you can add Nunit dll from assemblies > Extension

  • When all of this is done and you can start write a code

Point 1:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using NUnit.Framework;

using OpenQA.Selenium;

using OpenQA.Selenium.Firefox;

using OpenQA.Selenium.Internal;

using OpenQA.Selenium.Support.UI;

 

Point 2:

namespace Automation

{
[TestFixture]
public class framework
{
private IWebDriver driver;
[SetUp]

public void LoadDriver()
{
Console.WriteLine("Check SetUp");
driver = new FirefoxDriver();
// To Maximise browser
 driver.Manage().Window.Maximize();
}

[Test]
public void Login()
{
driver.Navigate().GoToUrl("http://localhost/nopcommerce/login");
Console.WriteLine("Check URL");

// Type UserName
driver.FindElement(By.Id("Email")).SendKeys("admin@yourStore.com");

// Type Password
driver.FindElement(By.Id("Password")).SendKeys("admin");

// Clicked on Login Button
driver.FindElement(By.CssSelector("input.button-1.login-button")).Click();
}

[TearDown]
public void UnloadDriver()
{
Console.WriteLine("TearDown");
driver.Quit();
}
}
}

Above marked area. Just described how you will get id from login page

  • Build your application or press (Ctrl + Shift + B)
  • You have to run Nunit window to run this code.
  • Now, open a project from file menu and choose the project dll file or you can drag and drop the dll.
  • Click on ‘Run’ button to define result pass / fail