Этот пост, посвященный вопросам для собеседования с Protractor, предназначен для подготовки кандидатов к ответам на распространенные вопросы, с которыми они могут столкнуться при подаче заявления на работу в Protractor Automation. Он охватывает как базовые, так и расширенные вопросы для интервью с транспортиром. Прежде чем двигаться дальше, давайте рассмотрим некоторые неизбежные вопросы интервью, такие как «Почему вы выбрали тестирование программного обеспечения в качестве своей карьеры» и «Объясните свою платформу автоматизации тестирования».
Похожие публикации:
- Учебное пособие по тестированию Protractor
- Вопросы для собеседования по Selenium
- Вопросы для собеседования по TestNG
- Вопросы для собеседования по ручному тестированию
- Вопросы для собеседования по контролю качества программного обеспечения
- Вопросы для собеседования по тестированию баз данных
- Вопросы для собеседования по SQL
- Вопросы для собеседования по API-тестированию< li>Вопросы на собеседовании по мылу
1. Что такое Protractor?
Protractor — это сквозная тестовая среда для приложений Angular и Angular JS. Protractor запускает тесты для вашего приложения, работающего в реальном браузере, взаимодействуя с ним так, как это делал бы пользователь. Protractor — это порт node.js для webdriver.io, который представляет собой JavaScript-реализацию платформы Selenium.
Protractor — это программа Node.js, которая поддерживает тестовые платформы, такие как Jasmine, Mocha и Cucumber.
2. Какие предварительные условия необходимы для запуска Protractor?
Чтобы запустить Protractor, нам нужно установить Selenium WebDriver и Node.js. Мы можем загрузить пакет Protractor с помощью npm.
Узнайте, как установить Selenium (последняя версия)
3. Как Protractor, Selenium Server и Selenium WebDriver взаимодействуют друг с другом?
Protractor — это комплексная тестовая среда для приложений AngularJS. Protractor – это программа Node.js, которая поддерживает тестовые платформы Jasmine и Mocha.
Selenium — это фреймворк для автоматизации браузера. Selenium включает в себя Selenium Server, API-интерфейсы WebDriver и драйверы браузера WebDriver.
Protractor работает вместе с Selenium, чтобы обеспечить автоматизированную тестовую инфраструктуру, которая может имитировать взаимодействие пользователя с приложением Angular, работающим в браузере или на мобильном устройстве.
/p>
4. Почему вы выбираете Protractor при тестировании приложения, созданного на Angular или Angular JS, а не на Selenium?
Нет правила, согласно которому вы должны использовать Protractor, если пользовательский интерфейс создан с помощью Angular или AngularJS. Это зависит от ваших требований и знаний команды. Оба этих инструмента (Protractor и Selenium) помогают нам в безупречной автоматизации браузера.
Вы можете просто использовать обычный Selenium для тестирования приложений Angular. Protractor просто упрощает тестирование приложения Angular. Protractor — это платформа для тестирования приложений Angular.
Он имеет автоматическое ожидание элементов, и вы можете получить доступ к определенным элементам Angular с помощью .model и .binding. Кроме того, он реализует объекты страницы во фреймворке, что делает тесты более удобными в сопровождении при правильном использовании.
Некоторые моменты, которые следует учитывать при принятии решения о том, использовать Protractor или нет. Эти моменты являются некоторыми из особенностей Protractor, которые делают его достойным тестирования приложений AngularJS.
1. Protractor представляет собой оболочку WebDriverJS и поддерживает платформы разработки, управляемые поведением, такие как Jasmine, Cucumber, Mocha и т. д.,
2. Транспортир работает в связке с Selenium. Он предлагает некоторые другие новые стратегии поиска, которые автоматизируют тестирование приложений AngularJS.
3. Protractor использует Selenium Grid для одновременного запуска нескольких браузеров.
4. Protractor очень хорошо справляется с проблемами синхронизации $http или $timeout, возникающими из-за Angular/Angular JS.
5. Код Angular/Angular JS написан на JavaScript/TypeScript, и Protractor поддерживает оба этих языка.
5. Можно ли использовать Protractor для тестирования приложений JS, отличных от Angular?
Да. Protractor можно использовать для тестирования не-Angular JS или не-Angular-приложений.
<сильный>6. Какие среды тестирования поддерживаются Protractor?
Protractor поддерживает две среды разработки, управляемой поведением (BDD), такие как Jasmine и Mocha.
7. Что такое Jasmine?
Jasmine — это среда тестирования JavaScript с открытым исходным кодом. Он предназначен для работы на любой платформе с поддержкой JavaScript. Он не требует DOM и имеет чистый и очевидный синтаксис, так что мы можем легко писать тесты.
8. Что такое мокко?
Mocha – это среда тестирования JavaScript для программ Node.js, включающая поддержку браузера, асинхронное тестирование, отчеты о покрытии тестами и использование любой библиотеки утверждений.
9. Что такое Typescript?
TypeScript — это надмножество JavaScript, скомпилированное в JavaScript. TypeScript — это строго типизированный объектно-ориентированный компилируемый язык, разработанный и поддерживаемый Microsoft. TypeScript можно использовать для разработки приложений JavaScript для выполнения как на стороне клиента, так и на стороне сервера (Node.js).
10. Что такое файл конфигурации в Protractor?
Файл конфигурации сообщает Protractor, как настроить Selenium Server, какие тесты запускать, как настроить браузеры и какую тестовую среду использовать. Файл конфигурации также может включать один или несколько глобальных параметров. Файл конфигурации содержит пояснения ко всем параметрам конфигурации Protractor. Настройки по умолчанию включают автономный сервер Selenium, браузер Chrome и среду тестирования Jasmine.
11. Что такое файл спецификаций в Protractor?
Spec-файл — это тот файл, в котором мы пишем фактический тестовый код. Он содержит логику и локаторы для взаимодействия с приложением.
12. Как исключить файл спецификации в Protractor?
Вы можете исключить спецификации, добавив их в тег exclude в файле conf.js. Вы также можете добавить шаблоны, чтобы исключить множество тестовых сценариев с похожими именами.
Иногда мы можем столкнуться с ситуацией, когда выполняется всего несколько тестов из всех. В этом случае мы используем тег exclude в нашем файле conf.js, чтобы запустить только несколько тестов. Допустим, мы хотим исключить название теста «myTest.js»
exclude: [myTest.js]
13. Какая польза от directConnect в Protractor?
Protractor может напрямую тестировать Chrome и Firefox без использования Selenium Server. Чтобы использовать это, в файле конфигурации задайте для параметра directConnect: true.
directConnect: true — ваш тестовый скрипт связывается напрямую с драйвером Chrome или драйвером Firefox, минуя какой-либо сервер Selenium. Если это правда, настройки seleniumAddress и seleniumServerJar будут игнорироваться. Если вы попытаетесь использовать браузер, отличный от Chrome или Firefox, возникнет ошибка.
Преимущество прямого подключения к драйверам браузера заключается в том, что ваши тестовые сценарии могут запускаться и работать быстрее.
14. Что такое локаторы в Protractor?
Protractor поддерживает все стратегии расположения элементов, предоставляемые Selenium, а также имеет уникальный набор локаторов, в частности, для идентификации элементов на основе атрибутов AngularJS.
Локаторы Selenium :
by.className
by.css
by.id
by.linkText
by.name
by.partialLinkText
by.tagName
by.xpath
специфические локаторы Angular
by.binding
by. exactBinding
by.model
by.repeater
by.exactRepeater
by.options
Другой локатор элементов, представленный в Protractor:
by.buttonText
by. paritalButtonText
by.cssContainingText
by.deepCss
15. Как добавить собственный локатор для Protractor?
С помощью метода addLocator.
См. этот пример
16. Как вы проверяете состояние диспетчера веб-драйверов и как вы обновляете диспетчер веб-драйверов?
Чтобы проверить состояние диспетчера веб-драйверов, выполните в командной строке следующую команду
статус webdriver-manager
Чтобы обновить webdriver-manager, запустите следующий код в командной строке
webdriver-manager update
17. Что такое ElementFinder?
ElementFinder просто представляет один элемент ElementArrayFinder (и больше похож на вспомогательный объект). В результате все, что можно сделать с помощью ElementFinder, можно сделать и с помощью ElementArrayFinder.
ElementFinder можно рассматривать как WebElement для большинства целей, в частности, вы можете выполнять над ними действия (например, щелкать, получать текст) так же, как и WebElement. Как только действие выполнено в ElementFinder, доступ к последнему результату из цепочки можно получить с помощью метода then. В отличие от WebElement, ElementFinder будет ждать, пока angular установится, прежде чем выполнять поиск или действия.
ElementFinder можно использовать для создания цепочки локаторов, которая используется для поиска элемента. На самом деле ElementFinder не пытается найти элемент, пока не будет вызвано действие, что означает, что они могут быть настроены во вспомогательных файлах до того, как страница станет доступной.
element(by.locator(“locator value”))
<сильный>18. Что такое ElementArrayFinder?
ElementArrayFinder используется для операций над массивом элементов. ElementArrayFinder используется для настройки цепочки условий, идентифицирующих массив элементов. В частности, вы можете вызвать all(locator) и filter(filterFn), чтобы вернуть новый ElementArrayFinder, измененный условиями, и вы можете вызвать get(index), чтобы вернуть один ElementFinder в позиции index.
Подобно jquery, ElementArrayFinder будет искать все ветки DOM, чтобы найти элементы, удовлетворяющие условиям (т. е. все, отфильтровать, получить). Однако ElementArrayFinder фактически не будет извлекать элементы до тех пор, пока не будет вызвано действие, что означает, что его можно настроить во вспомогательных файлах (т. е. объектах страницы) до того, как страница станет доступной, и повторно использовать ее при изменении страницы.
19. Что такое browser.refresh в Protractor?
browser.refreshделает полную перезагрузку текущей страницы и загружает фиктивные модули перед Angular. Предполагается, что загружаемая страница использует Angular. Если вам нужно получить доступ к странице, которая не имеет Angular при загрузке, используйте обернутый веб-драйвер напрямую. :4;-o-tab-size:4;-webkit-tab-size:4;tab-size:4;размер шрифта:12px!важно;высота строки:15px!важно>driver.navigate().refresh ();
1 | драйвер. навигации(). Обновить(); |
20. В чем разница между «GET» и «NAVIGATE» в Protractor?
Get:
метод Get используется для перехода к заданному месту назначения.
browser.get(“https://www.softwaretestingmaterial.com”);
Navigate:
Метод Navigate используется для перехода к заданному месту назначения
browser.navigate()
если мы хотим загрузить предыдущую или следующую страницу в браузере, мы можем использовать функцию «назад» и «вперед».
browser.navigate().back();
browser.navigate(). вперед();
21. Как найти все ссылки на веб-странице с помощью Protractor?
Мы можем найти все ссылки на веб-странице, используя имя тега «a». Обычно все ссылки формируются с помощью тега привязки «a», и все ссылки будут иметь атрибут «href» со значением URL.
22. Как проверить текст всплывающей подсказки с помощью транспортира?
Мы можем проверить текст всплывающей подсказки с помощью транспортира, получив значение атрибута title.
123 | element(by.id(“some”)). getAttribute(“title”).then(function(tooltip){console.log(tooltip)} |
23. Какие действия мыши можно выполнять с помощью Protractor?< p>1. click()
2. doubleClick()
3. contextClick()
4. mouseUp()
5. mouseDown(элемент)
6. mouseMove(элемент)< бр>7. mouseMove(xOffset, yOffset)
8.dragAndDrop(element1, element2)
24. Почему метод getText() возвращает Object вместо String в Protractor?
При использовании Java метод getText() возвращает соответствующий текст из элемента. Однако в Protractor метод getText() возвращает объект типа [objectObject]. В Protractor метод getText() возвращает Promise. Нам нужно разрешить это, чтобы получить текст.
Синтаксис:
< table class=crayon-table>
25. Как получить текст из текстового поля в Protractor?
Используя метод getAttribute, передавая аргумент в качестве значения. Метод getAttribute() возвращает обещание, содержащее String
Syntax:
123 | element(by.xpath(“текстовое поле xpath”).getAttribute(“значение”)) .then(function(textValue){console.log(textValue)}); |
26. Как вы проверяете, существует ли элемент на веб-странице с помощью Protractor?
Чтобы определить, существует ли элемент на веб-странице с помощью функции isPresent
//Элемент существует
expect(element (by.binding('person.name')).isPresent()).toBe(true);
//Элемент отсутствует
ожидаем(элемент(by.binding('notPresent')).isPresent()).toBe(false);
27. Какие методы представлены в классе предупреждений?
В классе предупреждений представлены следующие методы
1. принять()
2. отклонить()
3. получитьтекст()
4. sendKeys()
28. Как установить значение для запроса оповещения в Protractor?
Используя метод sendKeys() класса Alerts, мы устанавливаем значение для подсказки Alert в Protractor. 4;-o-размер вкладки:4;-webkit-размер вкладки:4;размер вкладки:4;размер шрифта:12px!важно;высота строки:15px!важно>browser.switchTo().alert( ).sendKeys("softwaretestingmaterial")
1 | browser.switchTo().alert().sendKeys(“softwaretestingmaterial”) |
29. Как принять оповещение в Protractor?
Используя метод accept() класса Alerts, мы принимаем оповещения в Protractor.
Примечание. Мы должны переключить элемент управления на оповещение с помощью switchTo().alert() перед тем, как принять оповещение. размер вкладки:4;-o-размер вкладки:4;-webkit-размер вкладки:4;размер вкладки:4;размер шрифта:12px!важно;высота строки:15px!важно>browser.switchTo( ).alert().accept()
1 | browser.switchTo().alert().accept() |
30. Как отменить оповещение в Protractor?
Используя метод reject() класса Alerts, мы отменяем или закрываем оповещения в Protractor.
Примечание: нам нужно переключить элемент управления на оповещение используя switchTo().alert() перед отменой оповещения.
1 | browser.switchTo().alert() .dismiss() |
31. Как остановить загрузку страницы в Protractor при загрузке элемента?
Используя Key.ESC для элемента body в Protractor.
1 | browser.actions ().sendKeys(транспортир.Ключ.ESC).perform(); |
32. Как проверить, отображается ли элемент на веб-странице или нет?
Чтобы проверить, отображается ли элемент на веб-странице или нет, мы используем метод isDisplayed() в Protractor. isDisplayed() возвращает логическое значение на основе состояния элемента на веб-странице. Он возвращает true, если элемент отображается, и false, если элемент не отображается.
33. Как проверить, включен ли элемент или нет?
Чтобы проверить, включен ли элемент, мы используем метод isEnabled() в Protractor. Метод isEnabled() возвращает логическое значение в зависимости от состояния элемента. Он возвращает true, если элемент включен, и false, если элемент не включен.
34. Как проверить, выбран ли раскрывающийся список в угловых приложениях?
Чтобы проверить, выбран ли раскрывающийся список в угловых приложениях с использованием Protractor, мы используем метод isSelected(). Метод isSelected() возвращает логическое значение. Он возвращает true, если элемент выбран, и false, если элемент не выбран.
35. Как вы находите Angular на своей странице?
Откройте chrome devtools или firefox и найдите, определен ли «угловой». Ожидается, что для приложений AngularJS переменная 'angular' будет доступна в глобальном контексте.
Примечание. Убедитесь, что ваша версия Angular обновлена — Protractor поддерживает Angular и AngularJS 1.0.6/1.1. 4 и выше.
36. Какие браузеры поддерживает Protractor?
Protractor поддерживает две последние основные версии Chrome, Firefox, Safari и IE.
Полный список поддерживаемых браузеров см. здесь.
Я собираюсь завершить эти вопросы для интервью с транспортиром. Здесь я выбрал несколько постов, которые помогут вам узнать больше о собеседованиях:
- Учебное пособие по тестированию Protractor
- Вопросы для собеседования по Selenium
- Вопросы для собеседования по TestNG
- Вопросы для собеседования по ручному тестированию
- Вопросы для интервью по контролю качества программного обеспечения
- Вопросы для интервью по тестированию баз данных
- Вопросы для интервью по SQL
- Вопросы для интервью по тестированию API
- Вопросы для интервью по Soap
Если у вас есть дополнительные вопросы, не стесняйтесь задавать их через Комментарии. Если вы считаете этот пост полезным, поделитесь им с друзьями в социальных сетях.
TAG: qa
detector