Retrieve Test Data from Json file in C# Selenium Framework | Devstringx Technologies

{“Addition”: 16,“Subtraction”: 2,“Multiplication”: 63,“Division”: 1,“Array”: [“one”,“two”,“three”]}
using Newtonsoft.Json.Linq;using System;using System.Collections.Generic;using System.IO;namespace CalculatorFramework.Utils{class JsonHelper{public static string GetProjectRootDirectory(){string currentDirectory = Directory.GetCurrentDirectory();return currentDirectory.Split(“bin”)[0];}private static JObject GetTestDataJsonObject(){string path = Path.Combine(GetProjectRootDirectory(), “Testdata”, “Data.json”);JObject jObject = JObject.Parse(File.ReadAllText(path));return jObject;}public static int GetTestDataInt(string label){var jObject = GetTestDataJsonObject();return Int32.Parse(jObject[label].ToString());}public static List<string> GetTestDataArray(string label){var jObject = GetTestDataJsonObject();return jObject[label].ToObject<List<string>>(); ;}}}
using CalculatorFramework.Tests;using CalculatorFramework.Utils;using JCMSFramework.Utils;using NUnit.Framework;using System.Collections.Generic;namespace CalculatorFramework{[Parallelizable]public class AddSubtractTest : BaseTest{readonly List<string> list = JsonHelper.GetTestDataArray(“Array”);[TestCase(9, 7)]public void Addition(double a, double b){string str1 = a.ToString();string str2 = b.ToString();string result = homePageStep.Add(str1, str2);int expectedResult = JsonHelper.GetTestDataInt(“Addition”);Assert.AreEqual(expectedResult, double.Parse(result), “Result is incorrect”);ReportLog.Pass(“Addition of ” + a + ” and ” + b + ” is: ” + result);ReportLog.Info(string.Join(“, “, list));}[TestCase(9, 7)]public void Subtraction(double a, double b){string str1 = a.ToString();string str2 = b.ToString();string result = homePageStep.Subtract(str1, str2);int expectedResult = JsonHelper.GetTestDataInt(“Subtraction”);Assert.AreEqual(expectedResult, double.Parse(result), “Result is incorrect”);ReportLog.Pass(“Subtraction of ” + a + ” and ” + b + ” is: ” + result);ReportLog.Info(string.Join(“, “, list));}}}
using CalculatorFramework.Tests;using CalculatorFramework.Utils;using JCMSFramework.Utils;using NUnit.Framework;using System.Collections.Generic;namespace CalculatorFramework{[Parallelizable]public class MultiplyDivideTest : BaseTest{readonly List<string> list = JsonHelper.GetTestDataArray(“Array”);[TestCase(9, 7)]public void Multiplication(double a, double b){string str1 = a.ToString();string str2 = b.ToString();string result = homePageStep.Multiply(str1, str2);int expectedResult = JsonHelper.GetTestDataInt(“Multiplication”);Assert.AreEqual(expectedResult, double.Parse(result), “Result is incorrect”);ReportLog.Pass(“Multiplication of ” + a + ” and ” + b + ” is: ” + result);ReportLog.Info(string.Join(“, “, list));}[TestCase(9, 7)]public void Division(double a, double b){string str1 = a.ToString();string str2 = b.ToString();string result = homePageStep.Divide(str1, str2);int expectedResult = JsonHelper.GetTestDataInt(“Division”);Assert.AreEqual(expectedResult, float.Parse(result), “Result is incorrect”);ReportLog.Pass(“Division of ” + a + ” and ” + b + ” is: ” + result);ReportLog.Info(string.Join(“, “, list));}}}

--

--

--

Devstringx Technologies is highly recommended IT company for custom software development, mobile app development and automation testing services

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Establishment of Defibox Development Fund

How to Connect SQL Server Database in Asp.net Core (db First Approach EF-CORE) (Part-3)

Three Developer Articles that Interested Me This Week — 04/11/2022

Why Use Pseudo Code? Think Of It Like A Shopping List

LAMP stack on your CentOS 7

Four Months Without a Job: What Did I Do?

High Availability architecture using HAProxy load balancer and Ansible

Magento Functional Testing Framework. What in the world is that?

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Devstringx Technologies

Devstringx Technologies

Devstringx Technologies is highly recommended IT company for custom software development, mobile app development and automation testing services

More from Medium

Introduction to Flow Level Error Handling in Anypoint Platform(Mule 4) Part-4

HTTP Method Definitions

Using Dependency Injection with Selenium, .NET Core 6 and NUnit — Part 1

Azure Update Domain vs Fault Domain