Десериализация C# Json для данных динамического автоматического тестированияC#

Место общения программистов C#
Ответить
Гость
 Десериализация C# Json для данных динамического автоматического тестирования

Сообщение Гость »

Прошу прощения за то, что мой английский не самый лучший.
Я пытаюсь реализовать динамическую систему пользовательских данных для своей среды автоматизации объектной модели страницы C#. Я пытаюсь создать систему JSON, в которой данные для входа в систему, такие как имя пользователя и пароль, могут передаваться из файла JSON. Я запускаю это на эмуляторе IOS. Проблема, с которой я столкнулся, заключается в том, что имя пользователя и пароль никогда не попадают в файл JSON, а поля имени пользователя и пароля никогда не заполняются. Это отлично работает, когда я использую строку или значение по умолчанию. Пожалуйста, помогите, если можете, я очень признателен.
У меня есть этот метод в моих глобальных методах, который должен десериализовать данные моего файла json:

Код: Выделить всё

public class UserCredentials
{
public string Username { get; set; }
public string Password { get; set; }
}
public class CredentialUtilities
{
private static readonly string ProfileFilePath = "FakePath";
public static UserCredentials CurrentCredentials { get; private set; } // Static property to hold credentials

public static UserCredentials LoadCredentials()
{
if (!File.Exists(ProfileFilePath))
{
Console.WriteLine("JSON file not found.");
return null;
}

string jsonString = File.ReadAllText(ProfileFilePath);
UserCredentials credentials = System.Text.Json.JsonSerializer.Deserialize(jsonString);

if (credentials == null)
{
Console.WriteLine("Failed to deserialize JSON data.");
return null;
}

CurrentCredentials = credentials;  // Set the static property
return credentials;
}

public static void DisplayCredentials()
{
if (CurrentCredentials != null)
{
Console.WriteLine($"Username: {CurrentCredentials.Username}");
Console.WriteLine($"Password: {CurrentCredentials.Password}");
}
else
{
Console.WriteLine("No credentials to display.");
}
}
А это файл json, из которого он извлекает данные.

Код: Выделить всё

{
"Username": "john.doe",
"Password": "s3cr3t"
}
Я пытаюсь вызвать этот метод и передать данные JSON в этот тест, где этапы отправки учетных данных ключа не возвращают никаких данных в мой эмулятор:

Код: Выделить всё

public bool LoginUseriOS()
{
// Load credentials from JSON file
UserCredentials credentials = CredentialUtilities.LoadCredentials();

bool step1Pass = false, step2Pass = false, step3Pass = false;

try
{
LogTest("Login Step 1: App loads and displays landing page, then clicks the 'Login' button. When the continue button appears, click 'Continue'");
Driver.FindElement(MobileBy.AccessibilityId(Login_PageObjects.loginButton)).Click();
Driver.FindElement(MobileBy.AccessibilityId(Login_PageObjects.continueButton)).Click();
PassStep();
step1Pass = true;
}
catch (Exception ex)
{
FailStep($"Unable to find sign in button on landing page or advance to B2C login page.  Error: {ex.Message}");
}

try
{
LogTest("Login Step 2: Safari browser loads B2C login page, attempts to enter username, then password, then clicks 'Login'");
Driver.FindElement(MobileBy.AccessibilityId(Login_PageObjects.dismissKeyboard)).Click();
Driver.FindElement(MobileBy.AccessibilityId(Login_PageObjects.usernameTextBox)).SendKeys(credentials.Username);
Driver.FindElement(MobileBy.AccessibilityId(Login_PageObjects.dismissKeyboard)).Click();
Driver.FindElement(MobileBy.AccessibilityId(Login_PageObjects.passwordTextBox)).SendKeys(credentials.Password);
Driver.FindElement(MobileBy.AccessibilityId(Login_PageObjects.passwordTextBox)).SendKeys(Keys.Return);
PassStep();
step2Pass = true;
}
catch (Exception ex)
{
FailStep($"Unable to send credentials. Error: {ex.Message}");
}
Я пропустил некоторую информацию по соображениям конфиденциальности.
Я ожидал, что значение будет передано из json, но в поля имени пользователя и пароля ничего не было введено. .

Подробнее здесь: https://stackoverflow.com/questions/784 ... sting-data
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»