Вы ищете вопросы для интервью с огурцами? Здесь, в этом посте, мы рассмотрим популярные вопросы интервью об огурцах вместе с их ответами и примерами.
Прежде чем продолжить, не пропустите следующие публикации
Cucumber BDD для автоматизированного тестирования
Вопросы для собеседования по Selenium
Вопросы для собеседования по ручному тестированию
Вопросы для собеседования по автоматическому тестированию
Вопросы для интервью с DevOps
Вопросы для интервью с почтальоном
Наиболее часто задаваемые вопросы и ответы для интервью с огурцами
1) Какие файлы нужны в фреймворк Cucumber?
Ответ: Cucumber — это инструмент, используемый для запуска автоматических приемочных тестов, созданных в формате BDD. Одной из самых выдающихся особенностей этого инструмента является возможность выполнять функциональные описания в виде простого текста (написанные на языке Gherkin) в виде автоматических тестов.
Преимущества Cucumber
< li>Он ориентирован на взаимодействие с конечным пользователем
Тесты Cucumber написаны простым текстом на английском языке, поэтому люди, не обладающие техническими навыками, могут также писать сценарии
Это позволяет нам привлекать заинтересованные стороны бизнеса, которые не могут легко читать код
Позволяет быстро и легко настроить и выполнять
Широкие возможности повторного использования кода в тестах
Его можно интегрировать с Selenium и другими средами тестирования, такими как JUnit & TestNG
2) Какие файлы необходимы для среды Cucumber?
Ответ: Файлы, необходимые для среды Cucumber, перечислены ниже:
Файл функций —Файл функций имеет расширение .feature. Он имеет один или несколько тестовых сценариев, описанных в виде простого текста. Тесты написаны с такими ключевыми словами, как «тогда», «когда», «фон», «схема сценария», «функция», «и», «но» и т. д. Таким образом, это файл, который поддерживает функции и их описания.
Файл определения шага —Этот файл имеет расширение .java. В основном он обеспечивает сопоставление шагов тестового сценария, описанных в файле функций, с кодом автоматизации. Таким образом, когда Cucumber выполняет шаг, описанный в файле функций, он ищет файл определения шага и выполняет соответствующие функции, сопоставленные с этим шагом.
Файл TestRunner — этот файл имеет расширение . Ява. Он связывает файл определения шага и файл признаков. Это дает пользователю возможность выполнить один или несколько файлов функций. В нем указан путь к файлу определения шага и файлу функции.
3) Какие разные ключевые слова используются в файле функции?
Ответ: разные ключевые слова, используемые в файл функции
Функция
Предыстория
Сценарий
Схема сценария
Дано
Когда
Тогда
И
Но
4) Объясните схему сценария в Cucumber framework.
Ответ. Схема сценария используется для запуска определенного сценария с более чем одним набором данных в нескольких комбинациях. В функциональном файле может быть меньше строк, если мы воспользуемся помощью схемы сценария. Данные, которые будут передаваться во время выполнения, не должны быть жестко закодированы в файле функций, если мы используем схему сценария.
В Scenario Outline значения времени выполнения передаются как параметры, заключенные в <> в файле функций. Набор данных представлен в табличном формате, разделенном вертикальной чертой, которая начинается с ключевого слова Examples.
Файл функций с реализацией Scenario Outline.
123456789
Функция: проверка входа администратора Схема сценария: вход нескольких пользователей TestGiven Пользователь переходит на страницу входа администратора. Когда заголовок страницы — «Добро пожаловать в AdminThen», пользователь вводит «<Name>» и «<EmployeeId>». Примеры: | Имя | Идентификатор сотрудника | | Адам | 3678 | | Сэм | 2589 |
5) Объясните фон ключевого слова в структуре Cucumber.
Ответ. Ключевое слово «Фон» используется для описания шага теста или группы шагов теста, которые являются общими для каждого теста в файле функций. Тест с фоном выполняется перед всеми тестовыми сценариями в файле функций.
Таким образом, ключевое слово Background используется для запуска сценария в качестве предварительного условия для других сценариев в файле функций.
Файл функций с Фоновая реализация
12345678910
Функция: проверка входа администратора. Предыстория: тест входа пользователя. Пользователь переходит на страницу входа администратора. Когда заголовок страницы — «Добро пожаловать в администратора». Страница удаления участникаЗатем кнопка «Удалить участника» должна быть видна
В приведенном выше примере мы тестируем функцию проверки входа администратора. У нас есть два сценария: добавление нового пользователя администратором и удаление пользователя администратором. Предварительное условие для обоих этих сценариев определяется фоновым сценарием — проверка входа пользователя, и он должен выполняться два раза перед каждым из сценариев.
6) Объясните примеры ключевых слов в структуре Cucumber.
Ответ. В Cucumber можно реализовать подход, основанный на данных, с помощью ключевого слова Examples. Структура сценария в файле функций должна сопровождаться частью примеров, состоящей из нескольких наборов данных, которые будут передаваться во время выполнения.
Раздел «Примеры» в файле функций должен иметь заголовки, соответствующие переменным в схеме сценария, за которыми следует символ (|). Каждая строка под заголовком представляет набор данных. Таким образом, если после заголовка есть две строки, тестовый сценарий должен выполняться два раза с двумя разными наборами данных.
Файл функций с примерами реализации
12345678
Функция: Схема регистрации нового пользователя. Схема: Тест проверки регистрации. Пользователь переходит на страницу регистрации. Затем пользователь вводит «<Имя>», «<Фамилия>» и «<Электронная почта>». Примеры: | Имя | Фамилия | Электронная почта | | Роб | Смит | abc@gmail.com| | Деу | Альфред | xyz@gmail.com|
7) Объясните BDD.
Ответ: BDD означает «Разработка, управляемая поведением». В Behavior Driven Development тесты разрабатываются на простом английском языке, создаются с точки зрения конечного пользователя и описывают характеристики приложения.
Структура Behavior Driven Development расширяет сотрудничество и координацию между членами гибкой команды разработчиков, тестировщиков, бизнес-аналитики, владельцы продуктов, клиенты и другие заинтересованные стороны. Он не требует никаких технических знаний, написан простым текстом и не требует технической ясности.
Фреймворк Behavior Driven Development, такой как Cucumber, помогает преодолеть любой разрыв в понимании между заинтересованными сторонами бизнеса и разработчиками. Ниже перечислены некоторые преимущества разработки, основанной на поведении:
Поскольку все члены команды и заинтересованные стороны вносят свой вклад в разработку проекта, это обеспечивает максимальное покрытие тестами.
Поскольку тесты разработаны в виде простого текста, есть правильное понимание и знание бизнес-требований.
Инструменты тестирования, такие как Cucumber и SpecFlow, в Behavior Driven Development помогают автоматизировать сценарии.
Разработка, управляемая поведением, помогает добиться повторного использования кода в значительной степени.
Параметризация данных может быть легко реализована в разработке, управляемой поведением.
Разработка, управляемая поведением, обеспечивает простую интеграцию с такими инструментами непрерывной интеграции, как Jenkins.
8) Опишите файл функции на примере.
Ответ: Feature-файл — это запуск тестов в Cucumber. Все тестовые сценарии описаны здесь простым текстом. Он может содержать один или несколько тестовых сценариев одновременно. Рекомендуется создавать отдельный файл функций для каждой отдельной функции.
Если мы используем Eclipse IDE, файл функций можно создать, выбрав наш проект, затем щелкнув правой кнопкой мыши и выбрав Новая опция. Затем нажмите Файл. Затем мы должны указать имя файла с расширением .feature.
Файл функций обычно содержит некоторые ключевые слова, описанные на языке Gherkin. Давайте обсудим некоторые из них:
Функция – определяет конкретную функцию, которую мы будем тестировать.
Описание – это не является обязательным и описывает, с чем работает эта функция.
Сценарий – Описывает конкретный сценарий.
Дано – Описывает предварительные условия тестового сценария.
Затем – описывает ожидаемый результат теста.
И — описывает некоторые дополнительные условия для проверки.
Реализация файла функций. size:4;tab-size:4;font-size:12px!important;line-height:15px!important>Feature: Проверка платежа Описание: Проверка того, может ли пользователь совершить платеж Сценарий: Проверка типа оплаты кредитной картой Данный пользователь переходит на страницу оплаты кредитной картой. Затем должна быть включена кнопка «Продолжить оплату» и должна быть произведена оплата кредитной картой.
123456
Функция: Проверка платежа Описание: Проверка наличия пользователь может совершить платеж Сценарий: проверьте тип оплаты кредитной картой Пользователь переходит на страницу оплаты кредитной картой Затем должна быть активна кнопка «Продолжить платеж» И платеж кредитной картой должен быть выполнен.
9) Опишите файл определения шага с примером.
Ответ: Прежде всего мы создали файл функций с тестовыми сценариями. Но Cucumber по-прежнему не знает, какой код запускать для конкретного сценария. Это определяется файлом определения шага, который дает однозначное сопоставление каждого сценария в файле функций с выполняемой функцией.
Таким образом, файл определения шага представляет собой файл с расширением .java.и содержит все методы в классе с аннотациями, которые сопоставляют их со сценариями в файле функций. Все ключевые слова, используемые в файле функций, добавляются в файл определения шага в виде аннотаций, а затем импортируется пакет cucumber.api.java.en.
Теперь давайте создадим файл определения шага. для Подтверждения оплаты функции в файле функции, описанном выше.
Реализация файла определения шага. -размер:4;размер табуляции:4;размер шрифта:12px!важно;высота строки:15px!важно>импортировать огурец.api.java.en.Given; импортировать огурец.api.java.en.Then; импортировать огурец.api.java.en.And; public class PaymentVerification{ @Given ("^Пользователь переходит на страницу оплаты кредитной картой$") + адрес); } @Then ("^Кнопка «Продолжить оплату» должна быть включена$") public void verify_payment_button_status () { System.out.println ("Кнопка включена "); } @And ("^Платеж кредитной картой должен быть выполнен$") public void verify_payment_status () { System.out.println ("Платеж кредитной картой выполнен успешно"); } }
10) Как добиться параметризации в Cucumber framework?
Ответ: Мы можем добиться параметризации в Cucumber. Это помогает передавать несколько наборов данных во время выполнения в нескольких комбинациях. Мы можем выполнить параметризацию данных следующими способами:
С помощью примеров ключевых слов.
Без помощи примеров ключевых слов.
Схема сценария в файле функций должна сопровождаться по части Примеры. Он состоит из нескольких наборов данных, которые должны передаваться во время выполнения.
Раздел «Примеры» в файле функций должен иметь заголовки, соответствующие переменным в схеме сценария, за которыми следует символ (|). Каждая строка под заголовком представляет набор данных. Таким образом, если после заголовка есть две строки, тестовый сценарий должен запускаться два раза с двумя разными наборами данных.
Давайте рассмотрим файл функций, имеющий функцию регистрации нового пользователя, описанную ранее. Теперь давайте теперь создадим файл определения шага, соответствующий этому файлу функций.
Реализация файла определения шага с примерами. -размер вкладки:4;размер вкладки:4;размер шрифта:12px!важно;высота строки:15px!важно>импортировать огурец.api.java.en.Given; импортировать огурец.api.java.en.Then; public class ParameterizationWithExample { @Given ("^Пользователь переходит на страницу регистрации$") public void navigation_to_registration () { System.out.println ("Переход к регистрации выполнен"); } @Then ("^Пользовательский ввод "(.*)" и "(.*)" и "(.*) "$") public void user_input (String fname, String lname, String email){ System.out.println ("Имя: " + fname); System.out.println ("Фамилия: " + lname); System.out.println ("Электронная почта: " + электронная почта); } }
1234567891011121314
импорт огурца.api.java.en.Given;импорт огурца.api.java.en.Then;public class ParameterizationWithExample {@Given («^Пользователь переходит на страницу регистрации$») (“Переход к регистрации выполнен”); } @Then (“^Пользовательские вводы “(.*)” и “(.*)” и “(.*)”$”)public void user_input (String fname, String lname, String email) { System.out.println (“Имя: ” + fname); System.out.println(“Фамилия: ” + lname); System.out.println (“Электронная почта: ” + электронная почта); } }
В приведенном выше примере мы передали три значения Имя, Фамилия и Электронная почта во время выполнения, не требуя жесткого кодирования тестовых данных в файле определения шага. С помощью операторов User inputs “(.*)” и “(.*)” и “(.*) Cucumber понимает, что существует три параметра времени выполнения. Кроме того, три параметра передаются в качестве аргументов методу user_input.
Теперь давайте посмотрим, как выполнить параметризацию данных без примеров.
Реализация файла функций.
Функция. Запуск приложения “Материалы для тестирования программного обеспечения” Сценарий: Запуск материалов для тестирования программного обеспечения. URL Дано Перейдите к «https://www.softwaretestingmaterial.com/»
В приведенном выше примере , мы передали URL-адрес непосредственно в операторе Given в файле функций.
Реализация кода определения шага. -размер:4;размер вкладки:4;размер шрифта:12px!важно;высота строки:15px!важно>импорт огурца.api.java.en.Given; импортировать огурец.api.java.en.Then; public class ParameterizationWithoutExample { @Given ("^Перейти к "([^"]*)"$") public void navigation (String url) { System .out.println ("URL: " + url); } }
В приведенном выше примере мы передали одно значение https://www.softwaretestingmaterial.com/который выполняется во время выполнения, не требуя жесткого кодирования тестовых данных внутри файла определения шага. С помощью инструкции Navigate to ”([^”]*) Cucumber понимает, что существует один параметр времени выполнения. Кроме того, этот параметр передается в качестве аргумента методу навигации.
11) Как тег Options используется в среде Cucumber?
Ответ: тег Cucumber Options является частью файла TestRunner и представляет собой аннотацию с именем @CucumberOptions. Он содержит такие параметры, как функция и клей. Параметр функции имеет путь к файлу функции, а параметр клея имеет путь к файлу определения шага.
Мы должны импортировать org.junit.runner.RunWith для аннотации @RunWith и cucumber.api.CucumberOptions< /strong> для аннотации @CucumberOptions.
12) Какие ключевые слова используются для создания сценария в Cucumber?
Ответ: различные ключевые слова, используемые в Огурец для написания сценария
Дано
Когда
Тогда
И
13) Объясните назначение ключевых слов, которые используются для написания сценария в Cucumber.
Ответ:
ключевое слово «Дано» используется для указания предварительного условия. для сценария. Ключевое слово «Когда» используется для указания операции, которая должна быть выполнена. Ключевое слово «Тогда» используется для указания ожидаемого результата выполненное действие. Ключевое слово «И» используется для объединения одного или нескольких утверждений в одно утверждение.
14) Назовите любые два инструмента управления сборкой, которые можно интегрировать с Cucumber?
Gradle
Maven
15) Опишите файл TestRunner. с примером.
Ответ. Файл TestRunner содержит класс JUnit. Он содержит аннотации @RunWith и @CucumberOptions. Нам нужно импортировать org.junit.runner.RunWith и cucumber.api.CucumberOptions для аннотаций @RunWith и @CucumberOptions соответственно.
@CucumberOptions имеет такие параметры, как функции, клей, теги, плагин и так далее. Параметр features содержит расположение файла характеристик. Параметр tags используется для включения или исключения сценария с тегами в файле функций при выполнении. Если мы указываем (~) перед именем тега, мы просто исключаем этот сценарий из выполнения.
Параметр plugin используется для отчетов Cucumber в различных форматах, таких как HTML, JSON и т. д. на. красиво, html: test-outputvalues в плагине используется для создания HTML-отчета в папке тестовых выходных данных в рамках фреймворка. Параметр strict используется для проверки того, не включен ли какой-либо шаг в файл определения шага, а параметр dryRun используется для проверки правильности сопоставления между определением шага. файл и файл функции.
Внутри класса JUnit мы можем добавить аннотации, такие как @BeforeClass и @AfterClass, чтобы запустить предварительное или постусловие для теста. Мы должны импортировать org.junit.BeforeClass и org.junit.AfterClass для аннотаций @BeforeClass и @AfterClass соответственно.
Реализация кода файла TestRunner.
1234567891011121314151617181920212223242526
import org.junit.runner.RunWith; = “src/test/java/features”, Glue = {“stepDefinitions”}, plugin = {“pretty”, “html:test-output”}, strict = true, dryRun = false, tags = {“~@Smoke ” , “@Payment”})public class TestRunner { @BeforeClasspublic void before () { System.out.println (“Выполняется перед всеми тестами”); } @AfterClasspublic void after () { System.out.println (“Выполняется после всех тестов”); }}
16) Можно ли интегрировать Cucumber с Selenium?
Ответ: Да, мы можем интегрировать Cucumber с Selenium. Прежде всего, нам нужно скачать jar-файл Selenium-server-standalone по ссылке ниже и добавить его в наш проект:
https://www.selenium.dev/downloads/
Далее мы следует перейти в репозиторий Maven по приведенной ниже ссылке:
https://mvnrepository.com/search?q=Cucumber
Затем загрузите следующие банки огурцов, перечисленные ниже, и добавьте их в проект:
JUnit
Gherkin
Cucumber-JUnit
Cucumber-Java
Hemcrest-core
Cucumber — отчетность
Cucumber — html
Cucumber — ядро
Cobertura — покрытие кода< li>Огурец – jvm –deps
Затем нам нужно установить плагин Cucumber Eclipse, для чего нам нужно перейти к «Установить новое программное обеспечение» из меню «Справка» в Eclipse, а затем добавить ссылку: http://cucumber.github.io/cucumber-eclipse/update-site/для установки.
Затем мы должны создать файл функций с пошаговыми сценариями тестирования на языке Gherkin, файл определения шагов для фактической реализации сценариев в коде Selenium и файл запуска тестов для запустите тесты Cucumber.
17) Какой язык используется в Cucumber?
Ответ: Язык, который понимает Cucumber, называется Gherkin. Это простое английское представление поведения приложения. Он используется для определения тестовых случаев. Он разработан, чтобы быть нетехническим и понятным для человека, и в совокупности описывает варианты использования, относящиеся к программной системе. Это удобный для чтения доменный язык (DSL).
18) Определить язык программирования, используемый Cucumber?
Ответ. Инструмент Cucumber обеспечивает поддержку множества языков программирования, таких как Java, .Net, Ruby и т. д. Его также можно включить в несколько инструментов, таких как Capybara, Selenium и т. д.
19) Что такое хуки в Фреймворк Cucumber?
Ответ. Блок кода, помеченный хуками в Cucumber, может запускаться до или публиковать сценарий с помощью аннотаций @Before и @After. Таким образом, хуки помогают контролировать поток программы и оптимизировать строки кода.
Могут быть сценарии, требующие выполнения определенных предварительных условий, таких как запуск приложения, установление соединения с базой данных, настройка тестовых данных и т. д. Кроме того, необходимо выполнить определенные постусловия, такие как разрыв соединения с базой данных, закрытие браузера, обновление тестовых данных, выход из приложения и т. д.
Все эти условия обрабатываются в Cucumber с помощью хуков. Хук @Before выполняется перед реальным сценарием, а хук @After выполняется после фактического сценария, даже если тест, соответствующий фактическому сценарию, не пройден.
Мы должны import огурец.api.java.en.Before< /strong> для аннотации @Before и import огурец.api.java.en.After для аннотации @After.
Реализация кода с ловушками.
Файл функций.
< li>Функция: создание счета-фактуры
Сценарий: проверка создания счета-фактуры в формате pdf
Данный пользователь переходит на страницу счета-фактуры
Затем пользователь сможет открыть счет в формате pdf
Сценарий: проверьте поля счета-фактуры
Дано. Пользователь открывает счет-фактуру
Затем пользователь должен увидеть сумму платежа в счете-фактуре.
В приведенный выше файл функций мы включили два сценария.
импорт огурца.api.java.en.Дано;импорт огурца.api.java.en.Затем;импорт огурца.api.java.en.До;импорт огурца.api.java.en.После;общедоступный класс InvoiceValidation { @Given («^Пользователь переходит на страницу счета-фактуры$») }@Then (“^Пользователь должен иметь возможность открыть счет в формате pdf$”) public void open_invoice_pdf () { System.out.println (“Счет открыт в формате pdf”); }@Given (“^Пользователь открывает счет-фактуру$”) public void open_invoice () { System.out.println (“Счет-фактура открыт”); }@Then (“^Пользователь должен видеть сумму платежа в счете-фактуре$”)public void verify_payment_invoice () { System.out.println (“Счет-фактура содержит сумму платежа”);}@Before public void precondition () { System .out.println(“Метод запускается перед всеми сценариями”); }@After public void postcondition () { System.out.println (“Метод запускается после всех сценариев”); }}
В приведенном выше примере, поскольку есть два сценария, предварительное условие метода тестирования с аннотацией @Before и постусловие метода тестирования с аннотацией @After должны выполняться дважды.
20) Как прокомментировать структуру Cucumber?
Ответ: Мы можем добавить комментарии в код Cucumber. Комментарии включаются в код в основном для документации, а не для включения логики программы. Это облегчает понимание кода и отладку ошибок. Кроме того, комментарии можно размещать в любом месте кода.
Внутри файла функций комментарии добавляются после символа (#), а определение шага содержит комментарии после символа (//).
Файл функций с комментариями.
Функция: Проверка клиента
# Сценарий с клиентом
Сценарий: Проверка сведений о клиенте
< сильный>Данный пользователь переходит на страницу информации о клиенте
Файл определения шага с комментариями
123456789
import огурец.api.java.en.Given;public class CustomerInformation { @Given (“^Пользователь переходит на страницу информации о клиенте$”)//метод сопоставления сценария @Given в файле функцийpublic void navigation_to_customerInformation () { System.out.println («Информационная страница клиента просматривается»); }}
21) Как использовать регулярные выражения в среде Cucumber?
Ответ: Мы можем использовать регулярные выражения в среде Cucumber внутри определения шага. файл. Регулярное выражение можно использовать для объединения двух или более похожих шагов в файле функций в методе тестирования в файле определения шага. Кроме того, регулярное выражение используется для параметризации данных в Cucumber в качестве функции Регистрация нового пользователя.в файле функций, описанном ранее.
Реализация файла функций.
Функция: Расписание занятий учащихся
Описание: Проверка расписания занятий учащихся
Сценарий: подтвердите количество часов, потраченных на научные предметы
Дано Учащиеся изучают химию во вторник
Учитываются Учащиеся изучают математику во вторник
Учитывая, что у студента есть 30-минутный перерыв
Файл определения шага с регулярным выражением. -размер вкладки:4;размер вкладки:4;размер шрифта:12px!важно;высота строки:15px!важно>импортировать огурец.api.java.en.Given; public class StudentSchedule { @Given ("^Студенческие занятия ([^"]*) во вторник$") public void student_Tuesday_schedule (String subject) { if (subject.equals (" ;Химия")){ System.out.println ("Студент изучает химию во вторник"); } else { System.out.println ("Студент изучает математику во вторник"); } } @Given ("^У студента есть 30-минутная перемена$") public void student_recess () { System.out.println ("Время перемены у учащегося составляет тридцать минут"); } }
12345678910111213141516
import огурец.api.java.en.Given;public class StudentSchedule { @Given (“^Студенческие занятия ([^”]*) во вторник$”)public void student_Tuesday_schedule (String subject) { if (subject.equals (” Химия”)){ System.out.println (“Студент изучает химию во вторник”); } else { System.out.println (“Студент изучает математику во вторник”); } }@Given (“^У студента тридцать минут перемены $”)public void student_recess () { System.out.println (“Время перерыва для учащихся – тридцать минут”); }}
В приведенном выше примере мы вычислили химию и математику предмета в одном методе student_Tuesday_schedule, не требуя жесткого кодирования тестовых данных в файле определения шага. С помощью оператора Студенческие исследования ([^”]*) мы объединили два утверждения Данные (Студент изучает химию во вторник и Студент изучает математику во вторник) в одном. метод.
22) Как пропустить тесты в Cucumber framework?
Ответ: Мы можем пропустить тесты в среде Cucumber с помощью концепции тегов, которая входит в CucumberOptions в файле TestRunner. Мы можем пометить сценарий в файле функций с помощью ключевого слова help @<<tagname>>.
Сценарий внутри файла функций может иметь один или несколько тегов. С помощью тегов мы можем разделить тестовые сценарии. Мы можем упомянуть эти помеченные сценарии внутри тегов.параметр в разделе @CucumberOptions в файле TestRunner. Чтобы пропустить тесты в Cucumber, мы должны передать выражение ~<<tagname>> в параметре tags.
Реализация файла функций с тегами.
Feature : Сведения о страховке
@Information
Сценарий: проверка информации о страховке,
предоставленной пользователю. Страница информации о страховании
@Premium
Сценарий: проверка информации о страховых взносах
ДаннаяПользователь находится на странице страховой премии
Реализация кода файла TestRunner для пропуска теста.
В приведенном выше примере, поскольку есть два сценария с тегами @Information и @Premium, будет запущен тестовый сценарий с @Information, а тестовый сценарий @Premium будет пропущен, поскольку параметр tags = {“~@Premium”} добавлен в файл TestRunner в разделе @CucumberOptions.
23) Как установить приоритет для тестов в Cucumber framework? >
Ответ: Мы можем установить приоритет тестов в Cucumber, чтобы определить порядок выполнения. Мы используем хуки Cucumber для управления потоком выполнения. Но это можно изменить с помощью порядка.
Возьмем файл определения шага, содержащий два метода тестирования с аннотациями @Before. Чтобы контролировать последовательность их выполнения, мы можем использовать оператор @Before (order = int). Это гарантирует, что методы тестирования выполняются поэтапно. Это означает, что метод тестирования с порядком = 1 должен выполняться перед методом с порядком = 2.
Таким образом, мы можем установить приоритет для тестового метода таким образом, чтобы метод с более низким порядком выполнялся первым, а затем тестовый метод с более высоким порядком.
Реализация файла определения шага.
1234567891011121314151617
импорт огурца.api.java.en.Given;импорт огурца.api.java.en.Before;public class PriorityTest { @Given (“^Пользователь переходит на страницу изменения порядка$”) («Страница переупорядочения просматривается»); }@Before (order = 2) public void precondition1 () { System.out.println (“Предварительное условие1 должно быть выполнено”); }@Before (order = 1) public void precondition2 () { System.out.println (“Предварительное условие2 должно быть выполнено”); }}
В приведенном выше примере метод тестирования precondition2 [имеющий порядок = 1] должен быть выполнен первым, а затем метод тестирования precondition1 [ имеющий порядок = 2]. Наконец, будет выполнен тестовый метод navigate_reorder.
24) Как запустить предварительный тест для сценария в среде Cucumber?
Ответ: Мы можем запустить предварительный тест для сценария в Cucumber. Сценарий внутри файла функций может иметь один или несколько тегов. С помощью тегов мы можем разделить тестовые сценарии.
Блок кода, помеченный хуками в Cucumber, может выполняться до сценария с помощью аннотации @Before. Таким образом, помеченные хуки помогают контролировать поток программы. Может быть сценарий, который требует выполнения определенного предварительного условия.
Такая ситуация обрабатывается в Cucumber с помощью помеченных хуков. @Before («Имя тега сценария»)выражение используется для выполнения определенного предварительного условия для сценария. Для аннотации @Before нам нужно импортировать огурец.api.java.en.Before.
Реализация файла функций с перехваченными тегами в сценариях.
Функция:< /strong> Купить страховку
@Dental
Сценарий: чтобы подтвердить покупку стоматологической страховки
Данный пользователь находится на Страница стоматологической страховки
@Car
Сценарий: подтверждение покупки страховки автомобиля
Дано Пользователь находится на странице страхования автомобиля
@Accidental
Сценарий: чтобы подтвердить покупку страховки от несчастного случая
Дано< /strong> Пользователь находится на странице страхования от несчастного случая
В приведенный выше файл функций мы включили три сценария.
Реализация файла определения шага. -размер:4;размер табуляции:4;размер шрифта:12px!важно;высота строки:15px!важно>импортировать огурец.api.java.en.Given; импортировать огурец.api.java.en.Before; public class Insurance { @Given ("^Пользователь находится на странице стоматологического страхования$") public void navigation_dental_Insurance () { System.out.println ("Навигация на страницу стоматологического страхования") ; } @Given ("^Пользователь находится на странице автострахования$") public void navigation_car_Insurance () { System.out.println ("Переход на страницу автострахования"); } @Given ("^Пользователь находится на странице страхования от несчастных случаев$") } @Before ("@Car") public void preconditionCar () { System.out.println ("Метод запускается до сценария автострахования"); } @Before ("@Dental") public void preconditionDental () { System.out.println ("Метод запускается перед сценарием стоматологического страхования"); } @Before ("@Accidental") public void preconditionAccidental () { System.out.println ("Метод запускается перед страхованием от несчастных случаев"); } }
123456789101112131415161718192021222324252627
import огурец.api.java.en.Given;import огурец.api.java.en.Before;public class Insurance {@Given (“^Пользователь находится на странице стоматологической страховки$”)public void navigation_dental_Insurance () { System.out .println (“Навигация на страницу стоматологического страхования”); }@Given (“^Пользователь находится на странице автострахования$”)public void navigation_car_Insurance () { System.out.println (“Переход на страницу автострахования”); }@Given (“^Пользователь находится на странице страхования от несчастного случая$”)public void navigation_accidental_Insurance () { System.out.println (“Переход на страницу страхования от несчастного случая”); }@Before (“@Car”) public void preconditionCar () { System.out.println (“Метод запускается перед сценарием автострахования”); }@Before (“@Dental”) public void preconditionDental () { System.out.println (“Метод запускается до сценария стоматологического страхования”); }@Before (“@Accidental”) public void preconditionAccidental () { System.out.println (“Метод запускается перед страхованием от несчастного случая”); } }
В приведенном выше примере тестовый метод preconditionCar [имеющий @Before (“@Car”)] должен выполняться перед методом navigate_car_Insurance. так как он помечен @Car в файле функций. Можно сказать, что preconditionCarМетод аналогичен предварительному условию для метода navigate_car_Insurance.
Тестовый метод preconditionDental [имеющий @Before («@Dental»)] должен выполняться до >navigate_dental_Insurance, так как он помечен тегом @Dental в файле функций. Можно сказать, что метод preconditionDental подобен предварительному условию метода navigate_dental_Insurance.
Метод тестирования preconditionAccidental [с @Before («@Accidental»)] должен выполняться перед методом navigate_accidental_Insurance, так как он помечен тегом @Accidental в файле функций. Можно сказать, что метод preconditionAccidental аналогичен предварительному условию для метода navigate_accidental_Insurance.
25) Как запустить выбранный тест из группы тестов во фреймворке Cucumber?
Ответ: Мы можем запустить выбранный тест из группы тестов в Cucumber framework с помощью концепции тегов. Это относится к @CucumberOptions в файле TestRunner. Мы можем пометить сценарий в файле функций с помощью ключевого слова help @<<tagname>>.
Сценарий внутри файла функций может иметь один или несколько тегов. С помощью тегов мы можем разделить тестовые сценарии. Мы можем упомянуть эти помеченные сценарии внутри тегов.параметр в разделе @CucumberOptions в файле TestRunner. Чтобы запустить выбранный тест в Cucumber, мы должны передать значение <<tagname>>, а чтобы исключить его из выполнения, мы должны передать <<~tagname>> в параметре tags.
Давайте рассмотрим Функция: Купить страховку в файле функций, описанном ранее.
Код Реализация файла TestRunner для запуска выбранного теста.
В приведенном выше примере есть три сценария, но должны выполняться только тестовые сценарии с тегами @Dental, @Car, а тестовый сценарий с тегом @Accidental не должен включаться в выполнение.
26) Почему клей свойств, используемый в теге параметров огурца?
Ответ: клей свойств используется с тегом параметров огурца, который является частью файла TestRunner. Он принимает местоположение или путь к файлу определения шага.
Код Реализация файла TestRunner с помощью клея. размер вкладки webkit: 4; размер вкладки: 4; размер шрифта: 12 пикселей! важно; высота строки: 15 пикселей! важно> импортировать org.junit.runner.RunWith; импортировать огурец.api.CucumberOptions; импорт огурца.api.junit.Cucumber; @RunWith (Cucumber.class) @CucumberOptions (features = "src/test/java/features ", Glue = {"stepDefinitions"}) public class TestRunner {
Ответ. Набор тестов – это платформа, содержащая тесты. случаев, тестовых данных, определенных параметров и конфигураций, собирает результаты тестов и записывает их.
28) Как генерировать отчеты с помощью Cucumber?
Мы можем генерировать выходные данные/отчет огурца с помощью различных команд огурца. em>>cucumber add.feature –format pretty
Файл отчета будет храниться в папке самого проекта.
В заключение:
Мы надеюсь, что эти вопросы и ответы о собеседовании Selenium Webdriver Cucumber помогут пройти собеседование.
Если у вас есть какие-либо другие вопросы и ответы Ответив на вопросы, пожалуйста, не стесняйтесь комментировать ниже, и мы ответим на ваши вопросы.
TAG: qa