Получить номер потока экземпляра wdio - PullRequest
0 голосов
/ 17 октября 2019

У меня есть несколько автоматизированных тестов пользовательского интерфейса, которые выполняются параллельно с использованием wdio maxInstances. В начале каждого теста я генерирую случайный / уникальный номер мобильного телефона, выполняя следующие действия:

07 - All numbers start with this number. 
Followed by a 9 digit number based on time & date - `new Date().getTime().toString().substring(4, 13)`

К сожалению, я сталкиваюсь с проблемами, когда время от времени метка времени точно совпадает. Это связано с тем, что тест генерирует номер мобильного телефона в одно и то же время. Второй подход, который я попробовал, был:

07 - All numbers start with this number.
Followed by a 6 digit number based on time & date - `new Date().getTime().toString().substring(4, 10)`.
Followed by a 3 digit random number - `Math.floor(Math.random() * 900 + 100);`.

Этот подход привел к генерации меньшего количества дублированных мобильных номеров, однако я все еще иногда получаю сгенерированное то же число. попытаться получить номер потока / бегуна экземпляра wdio и добавить его в конец номера мобильного телефона. Таким образом, если число генерируется в одно и то же время, номер потока будет означать, что он будет иметь уникальный номер. Кто-нибудь может пролить свет на то, как это сделать, пожалуйста.

1 Ответ

1 голос
/ 18 октября 2019

Я не уверен в получении номера потока, но мы делаем другое. Мы пытаемся присвоить уникальный номер каждому файлу спецификации.

Примерно так:

const fs = require('fs');
    //list of features files that we have
    let listOfFiles = fs.readdirSync(process.cwd() + '/features');
    //Mapping one file with a unique number
    let fileMappedWithNumber = listOfFiles.map((file, index) => {
        const item = {
            file: process.cwd() + '/features/' + file,
            number: ++index
        }
        return item;
    });
    console.log(JSON.stringify(fileMappedWithNumber));

Этот код помещен в onPrepare хук. Эта переменная fileMappedWithNumber может быть назначена глобальной и может использоваться в коде.

specs в хуке beforeSession может использоваться для сопоставления с файлом.

...