Size: a a a

2020 November 17

OK

Oleksandr Khotemskyi in JS for testing
обычный слип по сути
источник

OP

Oleksandr Pelykh in JS for testing
VIktor
После апдейта на Big Sur playwright отказывается стартовать локально((
Error: No executable path is specified. Pass "executablePath" option directly.
у меня было такое до апдейта на BigSur, я обновил версию playwright до последней и стало ок (хотя вообще странно, что это помогло и почему падало со старой я так и не выкупил)

а BigSur - говно полное. не рекомендую
источник

ВТ

Вячеслав Ткачук... in JS for testing
Всем привет!
Начал автоматизацию сваггера на проекте, использую Mocha+Chai+GOT. Возник затык с ассертом статус кода, не могу найти такого в Chai, а в доке GOT нет примеров по статус коду.
Кто то знает как с этим быть?
источник

OP

Oleksandr Pelykh in JS for testing
Вячеслав Ткачук
Всем привет!
Начал автоматизацию сваггера на проекте, использую Mocha+Chai+GOT. Возник затык с ассертом статус кода, не могу найти такого в Chai, а в доке GOT нет примеров по статус коду.
Кто то знает как с этим быть?
есть же
response.statusCode

а дальше асертить как душе угодно
источник

OK

Oleksandr Khotemskyi in JS for testing
Вячеслав Ткачук
Всем привет!
Начал автоматизацию сваггера на проекте, использую Mocha+Chai+GOT. Возник затык с ассертом статус кода, не могу найти такого в Chai, а в доке GOT нет примеров по статус коду.
Кто то знает как с этим быть?
я кстати статус код валидирую редко, обычно просто бросаю ошибку если 4хх или 5хх
источник

OK

Oleksandr Khotemskyi in JS for testing
и тогда не нужно по всем тестам писать
assert(res.statusCode).toBe(200)
источник

ВТ

Вячеслав Ткачук... in JS for testing
у меня несколько кейсов где нужно проверить ошибки. Ошибки разные и все на 400. Т.е. несколько кейсов на статус 200/201 и несколько на 400е. В ответ получаю JSON и как то со статус-кодами не пошло)
источник

OK

Oleksandr Khotemskyi in JS for testing
Вячеслав Ткачук
у меня несколько кейсов где нужно проверить ошибки. Ошибки разные и все на 400. Т.е. несколько кейсов на статус 200/201 и несколько на 400е. В ответ получаю JSON и как то со статус-кодами не пошло)
ошибки же в боди приходят?
источник

OK

Oleksandr Khotemskyi in JS for testing
Вячеслав Ткачук
у меня несколько кейсов где нужно проверить ошибки. Ошибки разные и все на 400. Т.е. несколько кейсов на статус 200/201 и несколько на 400е. В ответ получаю JSON и как то со статус-кодами не пошло)
я такое через try/catch проверяю, негативные тесты
источник

ES

Eugene Stogniy in JS for testing
Вячеслав Ткачук
у меня несколько кейсов где нужно проверить ошибки. Ошибки разные и все на 400. Т.е. несколько кейсов на статус 200/201 и несколько на 400е. В ответ получаю JSON и как то со статус-кодами не пошло)
Пример с Гот ГитХаба

got.post('https://example.com', {
 hooks: {
   beforeRetry: [
     (options, error, retryCount) => {
       if (error.response.statusCode === 413) { // Payload too large
         options.body = getNewBody();
       }
     }
   ]
 }
});
источник

SK

Slava Kharchenko in JS for testing
Гайз может кто-то сталкивался, есть моковский ретрай (wdio v6):
rmochaOpts: {
 retries: 1,
},

Он отрабатывает, но ран падает что не очень хорошо , помню в wdio v.4  такое работало отлично:
[chrome 86.0.4240.111 mac os x #0-0]    ✖ C8708945 Close ahead of schedule campaign
[chrome 86.0.4240.111 mac os x #0-0]    ✓ C8708945 Close ahead of schedule campaign
источник

OK

Oleksandr Khotemskyi in JS for testing
Eugene Stogniy
Пример с Гот ГитХаба

got.post('https://example.com', {
 hooks: {
   beforeRetry: [
     (options, error, retryCount) => {
       if (error.response.statusCode === 413) { // Payload too large
         options.body = getNewBody();
       }
     }
   ]
 }
});
это немного другое, это retry
источник

ES

Eugene Stogniy in JS for testing
Oleksandr Khotemskyi
это немного другое, это retry
(error.response.statusCode === 413) - вот это имелось в виду - обработка ошибок как я понимаю - а как её уже сделаешь - Я вообще за Карате Фреймворк - все реализованно до нас
источник

OK

Oleksandr Khotemskyi in JS for testing
Eugene Stogniy
(error.response.statusCode === 413) - вот это имелось в виду - обработка ошибок как я понимаю - а как её уже сделаешь - Я вообще за Карате Фреймворк - все реализованно до нас
нет спасибо )
источник

OK

Oleksandr Khotemskyi in JS for testing
не настолько тут сложная проблема чтобы переезжать на java+cucumber
источник

ES

Eugene Stogniy in JS for testing
Oleksandr Khotemskyi
не настолько тут сложная проблема чтобы переезжать на java+cucumber
1, переезд никуда не нужен
2, Кукамбер вообще не при делах
3, человек только стартует автоматизацию - и как вариант писать свое гениальное творение либо заюзать готовое
источник

OK

Oleksandr Khotemskyi in JS for testing
Вячеслав Ткачук
у меня несколько кейсов где нужно проверить ошибки. Ошибки разные и все на 400. Т.е. несколько кейсов на статус 200/201 и несколько на 400е. В ответ получаю JSON и как то со статус-кодами не пошло)
export const expectErrorInBody = async (code: () => Promise<any>, contains: string): Promise<void> => {
   try {
       await code();
   } catch (error) {
       if (!error?.response?.body?.message) {
           throw error
       }
       expect(error.response.body.message).toContain(contains)
       // All good, simply return from function.
       return;
   }
   throw new Error(
       `Expected request:

   ${code}
   
       to be failed with message "${contains}"`)
}


я себе такой вот утилитный экспект сделал на проекте
источник

OK

Oleksandr Khotemskyi in JS for testing
Oleksandr Khotemskyi
export const expectErrorInBody = async (code: () => Promise<any>, contains: string): Promise<void> => {
   try {
       await code();
   } catch (error) {
       if (!error?.response?.body?.message) {
           throw error
       }
       expect(error.response.body.message).toContain(contains)
       // All good, simply return from function.
       return;
   }
   throw new Error(
       `Expected request:

   ${code}
   
       to be failed with message "${contains}"`)
}


я себе такой вот утилитный экспект сделал на проекте
а потом юзаешь
источник

ВТ

Вячеслав Ткачук... in JS for testing
Огромное спасибо, попробую так
источник

OK

Oleksandr Khotemskyi in JS for testing
Eugene Stogniy
1, переезд никуда не нужен
2, Кукамбер вообще не при делах
3, человек только стартует автоматизацию - и как вариант писать свое гениальное творение либо заюзать готовое
Поясни про переезд не нужен? Там же другой язык и совсем другая структура тестов
источник