Как я могу перебрать тестовые данные, используя webdriverio с mocha? - PullRequest
0 голосов
/ 21 мая 2019

У меня есть данные теста на основе JSON, как я могу выполнить итерацию по этим данным теста для запуска теста для каждого объекта кредита?

cred: {
        nameValue: 'ant',
        emailValue: 'ant@gmail.com',
        passwordValue: 'ant',
    },
cred: {
        nameValue: 'bat',
        emailValue: 'bat@gmail.com',
        passwordValue: 'bat',
     },

1 Ответ

0 голосов
/ 12 июня 2019

файл JSON ваших тестовых данных должен выглядеть следующим образом:

[
       {
        "nameValue": "ant",
        "emailValue": "ant@gmail.com",
        "passwordValue": "ant"
    },
     {
        "nameValue": "bat",
        "emailValue": "bat@gmail.com",
        "passwordValue": "bat"
     } 
]

Теперь вы можете получить к ним доступ по индексу (как в массиве)

        const testDataObject = require("path to testData json");

             // to loop on all elements
             testDataObject.forEach(function(element) {
                it(' test case  def ', function() {
                     console.log("nameValue "+ element['nameValue']+ "emailValue 
             "+element['emailValue'] + "passwordValue "+element[passwordValue]); 
                });
            });

          // to select any particular index
         it(' test case  def ', function() {
                 console.log("nameValue "+ testDataObject[1]['nameValue']+ "emailValue 
  "+testDataObject[1]['emailValue'] + "passwordValue "+testDataObject[1][passwordValue]); 
            });
        });

И назовите имя вашего файла testDataкак Credentials_Valid.json (лучшая практика)

или вы можете сделать это

    {
    "cred1":
    {
       "nameValue": "ant",
        "emailValue": "ant@gmail.com",
        "passwordValue": "ant",
    },
    "cred2":
    {
        "nameValue": "bat",
        "emailValue": "bat@gmail.com",
        "passwordValue": "bat",
    }     
}

и получить доступ к тестовым данным в коде nodejs с помощью

console.log( `${testDataObject['cred1']["nameValue"]}` );
console.log( `${testDataObject['cred1']["emailValue"]}` );
console.log( `${testDataObject['cred1']["passwordValue"]}` );
...