среда, 29 мая 2024 г.

Шпаргалка по XPath и CSS-селекторам

Для написания автотестов используются XPath и CSS-селекторы. Они помогают найти элемент на странице, чтобы потом с ним как-то взаимодействовать (кликнуть, ввести текст, или что-то другое).

Я видела много статей о том, что это вообще такое, но мне очень не хватало шпаргалки по разным селекторам, причем в разрезе «Вот он в CSS и он же в XPath» для сравнения. 

А мне такое для студентов надо. Поэтому решила сделать сама. Вдохновлялась страничкой «Xpath cheatsheet», но сделала на свой вкус — под автоматизацию, а не XPath вообще. И с комментариями, с ними удобнее. 

Пишите, если где-то накосячила. Хотя я все селекторы проверяла на тестовых страницах, но мало ли… И надеюсь, вам такая шпаргалка тоже пригодится! =)

(там таблички нормально отрисовываются и есть содержание кликабельное)

воскресенье, 26 мая 2024 г.

CSS, XPath: локаторы или селекторы? Разбираемся в терминах

 Я обычно слышу такие словосочетания для поиска элементов на HTML-странице:

  • CSS-селекторы
  • XPath-локаторы
Но как правильно их называть? 



Можно ли и то, и то назвать селекторами? Или локаторами? Сходила за уточнениями к Алексею Баранцеву, разработчику инструмента Selenium и автору курсов по автоматизации тестирования (где селекторы и применяем). Итак:

Почему XPath лучше для поиска N-ого элемента, чем nth-child в CSS

В CSS есть псевдокласс :nth-child() — он находит один или более элементов, основываясь на их позиции среди группы соседних элементов. ©

Но у него есть ряд минусов:

  • не срабатывает в firefox (даже когда в хроме всё нормально);
  • срабатывает с оговорками — и поэтому xpath выражение для поиска будет лучше.
Давайте посмотрим на примере.

Создадим такой html-файл (можно сделать текстовый файлик и потом переименовать расширение в «.html»):

<html>
   <body>
          <div attr='1'>Блок 1</div>
  <p>Блок 1</div>
  <div attr='2'>Блок 2</div>
  <div attr='3'>Блок 3</div>
   </body>
</html>

Открываем файлик в хроме (это важно!). 

А теперь попробуем найти второй div. Попробуем через XPath:

//div[2]

Всё работает! Найдет один элемент, второй по счету div:


Теперь попробуем через CSS:

четверг, 23 мая 2024 г.

Как в pm.sendRequest() выполнить запросы в нужном порядке

Это выдержка из статьи «Как подготовить данные для запроса в Postman через pre-request». 


В Postman есть функция pm.sendRequest(), которая позволяет выполнять запросы до выполнения вашего основного запроса. Но есть проблемка, когда мы хотим вызвать несколько запросов подряд...

Кажется, что это будет легко. Просто напишем 2 pre-request и вызовем их подряд:

pm.sendRequest(req1, done); pm.sendRequest(req2, done); 

Но если второй запрос зависит от первого, он упадет. Почему? Потому что функция pm.sendRequests асинхронна. Это значит, что она сразу отправит оба запроса, а не будет дожидаться, когда отработает req1, чтобы запустить req2. 

Что такое pm.sendRequest в Postman

Это выдержка из статьи «Как подготовить данные для запроса в Postman через pre-request». 


Метод pm.sendRequest нужен для того, чтобы асинхронно отправлять запросы в Postman до или после выполнения основного запроса (Pre-request или Post-response скрипты). Документация тут.

Зачем это нужно?

  • Pre-request — подготовить данные для выполнения текущего запроса (перед поиском создаем объект с нужными полями)
  • Post-response — чистим за собой (удаляем созданное в pre-request)

Как подготовить данные для запроса в Postman через pre-request

Принцип хорошего автотеста — «Подготовь себе данные сам. Не надейся, что они уже существуют». Такой тест можно прогнать на любом стенде, даже пустом. Сам себе всё подготовил, прогнал тест, а потом ещё почистил за собой.


В Postman тоже есть возможность подготовить себе данные для запроса. Причем это можно использовать не только для автоматизации, но и для ручного прогона. Удобно же, когда можно запустить конкретный запрос на конкретный метод, а он отработает успешно хоть на пустой базе, хоть на заполненной.

Подготовка данных делается через функцию pm.sendRequest() в pre-request скриптах, и в этой статье я покажу, как её использовать. Показывать буду в стиле «бери и повторяй» с примерами на бесплатной системе Users.

Ссылка на ХАБР


среда, 22 мая 2024 г.

Обновление интерфейса в Postman, где теперь автотесты

Есть у меня видео на канале — Пишем первый автотест в Postman. Само видео и код автотеста остались верными, а вот интерфейс изменился. Посмотрим, как именно.


Было

Были 2 отдельные вкладки:

  • Pre-request scripts — то, что выполняется ДО запроса
  • Tests — то, что выполняется после получения ответа


понедельник, 20 мая 2024 г.

Можно ли устроиться на работу тестировщиком после курсов? Что они дают?


Видео на Youtube

Статья на Хабре

Очень насущный вопрос для многих — можно ли найти работу в тестировании сразу после курсов? Да! (сказал автор курсов, хе-хе-хе)

Я вам больше скажу — можно и БЕЗ курсов устроиться 👀. Более того, грамотные самоучки очень ценятся! Но для такого эффекта надо пахать =))

Об этом и поговорим в статье:

  • как устроиться без курсов — чем запоминаются самоучки (расскажу истории из своей практики), 
  • зачем тогда вообще курсы, что они дают и как помогают трудоустройству,
  • вспомним и про ситуацию "наоборот": курсы есть, знаний нет (вот и не берут!),
  • подведем итоги


Как устроиться без курсов — чем запоминаются самоучки


Они запоминаются способностью самообучаться. На курсах же обычно есть практика, так что когда человек приходит с курсов, ты заранее ожидаешь, что он не просто теорию знает, но что-то сделать может (на простом уровне).

А самоучки обычно рассказывают теорию и хлопают глазами на практические задания. И вот когда самоучка показывает неплохой уровень (не только прочитал, но и ПОНЯЛ) — это запоминается. И думаешь:

- Вау, и это он сам выучил? Круто!

Давайте сразу на примерах. За 11 лет я провела достаточно собеседований, но из кандидатов-самоучек мне запомнились всего двое, сильно выделявшихся на фоне остальных:

пятница, 17 мая 2024 г.

Как настроить Postman для работы с Charles Proxy

Если необходимо через Charles Proxy перехватить данные из Postman, нужно его настроить. Давайте разберемся, как это сделать! 

В этой статье предполагается, что сам Charles уже настроен и работает. Настраивается он по официальной документации.


Настройка Postman 

1. "File" "Setting" → вкладка "Proxy"Proxy configurations for sending requests