Selenium автоматизированное тестирование вопросов интервью [с ответами]

Оглавление

1. Как судить о наличии элемента в селене?

2. Могут ли элементы hidden или display = none располагаться в селене?

3. Как обеспечить успешность работы элементов в селене? Другими словами, как убедиться, что элемент, на который я нажимаю, должен быть кликабельным?

4. Как улучшить скорость выполнения селенового скрипта?

5. Вариант использования часто нестабилен в процессе работы, то есть в этот раз может пройти, а в следующий раз не пройдет Как повысить стабильность варианта использования?

6. Какова стратегия выполнения вашего варианта использования автоматизации?

7. Что такое непрерывная интеграция?

8. Нужно ли подключаться к базе данных для проверки данных при автоматизированном тестировании?

9. Среди атрибутов id, name, class, xpath, css selector какой из них вы предпочитаете и почему?

10. Как найти на странице динамически загружаемые элементы?

11. Как найти элементы, атрибуты которых изменяются динамически?

12. Будет ли selenium после перехода по ссылке автоматически ждать загрузки страницы?

13. Каков принцип работы клиента webdriver?

14. Что такое протокол вебдрайвера?

15. Какой протокол веб-драйвера используется при запуске браузера?

16. Что такое шаблон проектирования объектов страницы?

17. Как выбрать вариант со значением=xx в раскрывающемся списке?

18. Как выделить элементы после их позиционирования (в целях отладки)?

19. Что такое утверждение?

20. Если бы вы выбирали решение для автоматизированного тестирования, какой язык вы бы выбрали: java, js, python или ruby?

21. Нужно ли в режиме настройки объекта страницы добавлять утверждение к методу позиционирования на странице?

22. Как реализовать переход на страницу в режиме дизайна объекта страницы?

23. Откуда берутся автоматизированные тест-кейсы?

24. Как вы думаете, что является самым большим недостатком автоматизированного тестирования?

25. Что такое стратифицированное тестирование?

26. Можно ли использовать webdriver для тестирования интерфейса?

27. В чем разница между get и post?

28. Тестовая система (структура B/S), которая использовалась в компании, внезапно недоступна Вам необходимо проверить и восстановить ее Какие у вас методы проверки?

Изучив большинство интерфейсов или методов Selenium, вы можете пойти на собеседование для автоматизированного тестирования, в основном автоматизированного тестирования Selenium. Следующее резюме этих вопросов может помочь вам.


1. Как судить о наличии элемента в селене?

Ответ: isElementPresent 

2. Могут ли элементы hidden или display = none располагаться в селене?

Ответ: Не могу найти 

3. Как обеспечить успешность работы элементов в селене? Другими словами, как убедиться, что элемент, на который я нажимаю, должен быть кликабельным?

Ответ: (1) Добавьте время интеллектуального ожидания элемента: driver.implicitly_wait(30)

(2) Используйте метод try, чтобы найти идентификатор, имя, класс, путь x и селектор css разными способами.Если первый метод не работает, вы можете автоматически попробовать второй метод.

(3) Selenium гарантирует успешность элементов через позиционирование элементов.Конечно, методов позиционирования для него много, и должны быть подходящие.Однако в процессе реализации автоматики качественное автоматизированное тестирование не может быть гарантировано тестировщиками Разработчики должны стандартизировать свои привычки разработки, такие как добавление уникальных имен, идентификаторов и т. д. к элементам страницы, что может значительно повысить точность позиционирования элементов. Конечно, если разработчики не работают стандартизированно, мы стараемся использовать относительное адресное позиционирование при поиске элементов, что может уменьшить влияние позиционирования элементов на изменения страницы. Пока наше позиционирование элементов является точным, мы можем гарантировать, что каждая операция будет соответствовать ожидаемым результатам. 

4. Как улучшить скорость выполнения селенового скрипта?

Ответ: На скорость выполнения Selenium-скриптов влияет множество факторов, таких как скорость сети, сложность операций, скорость загрузки страницы, время ожидания, которое мы задаем в скрипте, количество потоков, выполняющих скрипт и т.д. Поэтому нельзя в одностороннем порядке гнаться за скоростью бега, а можно обеспечить стабильность, а самое главное добиться стабильного регрессионного тестирования.

1) Мы можем улучшить скорость по следующим аспектам:

1. Сократите количество операций.Если страницу, которую мы хотим протестировать, можно открыть только после трех или четырех шагов, мы можем открыть ее напрямую через URL-адрес, чтобы уменьшить количество ненужных операций.

2. Прервать загрузку страницы.Если страница загружает слишком много контента, мы можем проверить причину медленной загрузки.Если загруженный контент не влияет на наш тест, установить тайм-аут, чтобы прервать загрузку страницы.

3. При установке времени ожидания вы можете использовать сон, чтобы зафиксировать время, или вы можете обнаружить появление элемента и прервать ожидание, чтобы увеличить скорость.

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

5. Вариант использования часто нестабилен в процессе работы, то есть в этот раз может пройти, а в следующий раз не пройдет Как повысить стабильность варианта использования?

Ответ: time.sleep(), driver.implicitly_wait(30), используйте try для захвата и обработки исключений.В это время нам нужно проанализировать причину нестабильности, а затем целенаправленно решить проблему.

Далее, в основном, следующие аспекты:

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

Во-вторых, причина для Selenium: Selenium 1.0 и 2.0 все еще разные, и некоторые функции иногда эффективны, а иногда недействительны при работе под 2.0. Это случай с функцией mouseover(), которой нам следует избегать.

3. При многопоточности тестовые случаи влияют друг на друга. Хотя скорость работы выше при использовании многопоточности, если связь между вариантами использования плохо спроектирована, это также будет затронуто.Если вариант использования A выполняется до варианта использования B, это повлияет на вариант использования B; в противном случае нет проблем . В этом случае, если ваш автоматизированный тестовый проект предполагается многопоточным, вы должны заранее ослабить привязку тест-кейса к тесту, хотя это не имеет к этому никакого отношения, поскольку порядок выполнения многопоточности не контролируется.

6. Какова стратегия выполнения вашего варианта использования автоматизации?

Ответ: Стратегия выполнения автоматизированных тестовых случаев зависит от цели автоматизированного тестирования.Обычно существуют следующие стратегии:

1. Автоматизированный тест-кейс используется для мониторинга.Для этого мы ставим автоматический тест-кейс на регулярное выполнение.Если он выполняется каждые пять минут или час, то на дженкинсе можно создать задание на время.

Во-вторых, варианты использования, которые должны быть возвращены. Некоторые тестовые случаи, такие как тестовые случаи BVT, нам необходимо регрессировать и выполнять, прежде чем какие-либо изменения в продуктах компании будут запущены. Затем мы устанавливаем тестовый пример для запуска выполнения и привязываем нашу автоматическую тестовую задачу к разработанной задаче сборки на jenkins. Когда разработчики пишут код в среде моделирования, наши автоматические тестовые примеры будут запущены для выполнения.

3. Тестовые случаи, которые не нужно выполнять часто. Как и в случае с полными тест-кейсами, нам не нужно постоянно возвращаться к выполнению, в конце концов, затраты времени все равно есть, а некоторые неосновные бизнес-линии не нуждаются в частом возврате. Мы используем ручное выполнение для этого типа тестового примера: создайте задачу в jenkins и создайте ее вручную, когда она должна быть выполнена.

7. Что такое непрерывная интеграция?

Ответ: Непрерывная интеграция возникла из экстремального программирования (XP), практики программного обеспечения.Этап интеграции в процессе разработки программного обеспечения является длительным и непредсказуемым процессом. В процессе интеграции может возникнуть большое количество проблем, поэтому процесс интеграции должен быть как можно меньше и как можно больше.На самом деле, непрерывная интеграция относится к непрерывной интеграции программного обеспечения. Непрерывная интеграция в простейшем виде включает в себя инструмент для отслеживания изменений в системе контроля версий (SVN и т. д.). Этот инструмент может автоматически компилировать и тестировать ваше приложение при обнаружении изменений.

8. Нужно ли подключаться к базе данных для проверки данных при автоматизированном тестировании?

Ответ: Автоматизация UI не требуется, но потребуется тестирование интерфейса

9. Среди атрибутов id, name, class, xpath, css selector какой из них вы предпочитаете и почему?

Ответ: Почти все элементы css и xpath можно найти

10. Как найти на странице динамически загружаемые элементы?

Ответ. Инициируйте событие динамически загружаемого элемента, пока не появится динамический элемент, и не найдите его.

11. Как найти элементы, атрибуты которых изменяются динамически?

Ответ: xpath или css находит через сверстников, родителей и детей. 

12. Будет ли selenium после перехода по ссылке автоматически ждать загрузки страницы?

Ответ: Да, дождитесь загрузки страницы

13. Каков принцип работы клиента webdriver?

Ответ: Принцип реализации Webdriver: Изучив исходный код selenium-webdriver, выяснилось, что принцип реализации webdriver не является непостижимым и непредсказуемым. Здесь, взяв в качестве примера реализацию ruby-биндинга webdriver в firefox-webdriver, кратко представим принцип работы webdriver.Когда тестовый скрипт запускает firefox (Firefox), selenium-webdriver сначала запускает браузер firefox в новом потоке. Если в тестовом скрипте указан профиль firefox, то запускать его с этим профилем, иначе запускать новый профиль и запускать firefox; firefox обычно запускается безудаленным методом, после запуска selenium-webdriver привяжет firefox к определенному порту , после завершения привязки экземпляр firefox будет существовать как удаленный сервер веб-драйвера; клиент (то есть тестовый скрипт) создает сеанс и отправляет запрос на удаленный сервер через http-запрос в сеансе , а удаленный сервер анализирует запрос, выполняет соответствующую операцию и возвращает ответ; клиент принимает ответ и анализирует его возвращаемое значение, чтобы решить, следует ли перейти к шагу 3 или завершить сценарий; это рабочий процесс веб-драйвера, который выглядит сложным На самом деле, когда вы понимаете реализацию веб-драйвера После понимания принципа должно быть относительно просто понять вышеперечисленные проблемы. webdriver разработан в соответствии с классическим шаблоном проектирования сервер-клиент. Серверная часть — это удаленный сервер, которым может быть любой браузер. Когда наш сценарий запускает браузер, браузер является удаленным сервером, и его обязанностью является ожидание отправки клиентом запроса и ответа; клиентская часть — это просто наш тестовый код, и мы тестируем некоторые варианты поведения в коде, такие как открытие браузера, переход по определенному URL-адресу и другие операции отправляются тестируемому браузеру в виде http-запросов, то есть удаленному серверу.Удаленный сервер принимает запрос, выполняет соответствующую операцию и возвращает статус выполнения, возвращаемое значение и т. д. в ответной информации;

14. Что такое протокол вебдрайвера?

答:Протокол проводной сети WebDriver 

15. Какой протокол веб-драйвера используется при запуске браузера?

Ответ: HTTP-протокол.

16. Что такое шаблон проектирования объектов страницы?

Ответ. Объекты страницы относятся к объектам, используемым для взаимодействия с пользователями в интерфейсе пользовательского интерфейса. Он может относиться ко всей странице или к области на странице. Page Objects — это интерактивный объект вашего тестового кода, который представляет собой абстрактное моделирование фактического пользовательского интерфейса. Объекты страницы могут уменьшить написание повторяющихся кодов. Например, многие страницы имеют одинаковые верхний и нижний колонтитулы, навигатор и другие части. Если они абстрагированы, их можно использовать в других местах после всего лишь одного написания.

17. Как выбрать вариант со значением=xx в раскрывающемся списке?

Ответ: Требуется второе позиционирование 

18. Как выделить элементы после их позиционирования (в целях отладки)?

Ответ: Сбросить атрибуты элемента, добавить фон и границу к позиционированным элементам. 

19. Что такое утверждение?

Ответ: Утверждение по-английски — это утверждение, а по-английски — проверка утверждений. Утверждение — это логическое выражение, задающее состояние, которое программа уже должна иметь, или условие, которому должен удовлетворять набор программных переменных в какой-то момент во время выполнения программы.

20. Если бы вы выбирали решение для автоматизированного тестирования, какой язык вы бы выбрали: java, js, python или ruby?

A: Используйте язык, с которым вы знакомы 

21. Нужно ли в режиме настройки объекта страницы добавлять утверждение к методу позиционирования на странице?

Ответ: Не надо

22. Как реализовать переход на страницу в режиме дизайна объекта страницы?

Ответ: получить, нажать (могут быть подводные камни)

23. Откуда берутся автоматизированные тест-кейсы?

Ответ: извлеченный из варианта использования вручную, вы можете обратиться к стратегии выполнения варианта использования автоматизации. 

24. Как вы думаете, что является самым большим недостатком автоматизированного тестирования?

Ответ: Нестабильный, надежный, сложный в обслуживании, стоимость и выгода не прямо пропорциональны.

25. Что такое стратифицированное тестирование?

Ответ: тестирование пользовательского интерфейса, тестирование интеграции/интерфейса и модульное тестирование можно считать многоуровневым тестированием.

26. Можно ли использовать webdriver для тестирования интерфейса?

Ответ: Это сложно, и тестирование интерфейса не рекомендуется.

27. В чем разница между get и post?

Ответ: Потому что использование GET-запросов не приведет к каким-либо действиям. Отсутствие действия означает, что HTTP-запрос GET не даст никаких результатов на сервере. Но безопасный метод не означает, что никаких действий не производится, здесь безопасный метод означает только то, что информация не будет изменена. POST — это запрос, который может изменить ресурс на сервере. Например, в блоге CSDN пользователь отправляет статью или читатель отправляет комментарий через POST-запрос, потому что ресурс (то есть определенная страница) отличается после отправки статьи или комментария или изменения ресурса.

Разница между двумя методами запроса:

1. Для запроса GET запрошенные данные будут добавлены после URL-адреса, чтобы отделить URL-адрес и передать данные с помощью ?, а также соединить несколько параметров с помощью &. Формат кодирования URL использует кодировку ASCII вместо uniclde, что означает, что все символы, отличные от ASCII, должны быть закодированы перед передачей. Запрос POST: запрос POST помещает запрошенные данные в тело пакета HTTP-запроса. Вышеупомянутый элемент = ленточная пила - это фактические данные передачи. Поэтому данные для GET-запросов отображаются в адресной строке, но не для POST-запросов.

2. Размер передаваемых данных. В спецификации HTTP нет ограничений на длину URL и размер передаваемых данных. Но в реальном процессе разработки для GET определенные браузеры и серверы имеют ограничения на длину URL-адреса. Поэтому при использовании GET-запросов передаваемые данные ограничиваются длиной URL. Для POST, поскольку это не передача значения URL, он не будет ограничен теоретически, но на самом деле каждый сервер будет ограничивать размер отправляемых данных POST, а Apache и IIS имеют свои собственные конфигурации.

3. Безопасность POST более безопасен, чем GET 

28. Тестовая система (структура B/S), которая использовалась в компании, внезапно недоступна Вам необходимо проверить и восстановить ее Какие у вас методы проверки?

отвечать:

1. Невозможно зайти на сайт сразу после ввода доменного имени.До этого сайт был нормальным, но вдруг на него не зайти.

1) Проверьте, нормально ли работает FTP и можете ли вы войти в систему. Если вы не можете войти в систему, обратитесь напрямую к провайдеру доменного имени. Если это проблема с провайдером доменного имени, свяжитесь с ним напрямую.

2) Может ли доменное имя третьего уровня, предоставленное пространством, получить доступ к веб-сайту и открыть веб-сайт (доменное имя третьего уровня дается в подарок для пространства), если к нему нет доступа, это должно быть проблемой пространства. .

3) В стартовом меню компьютера введите cmd, во всплывающем черном поле введите: ping ваше доменное имя, затем нажмите Enter, если вы не видите IP или IP адрес не совпадает с адресом вашего хоста, значит что разрешение доменного имени неверно. Это проблема с доменным именем, и доменное имя необходимо проанализировать повторно.

2. При посещении сообщается об ошибке 404 (страница не найдена), что означает, что содержимое сайта в норме и есть проблема с программой.Проверьте, завершена ли программа.

3. Ошибка MySQL Server при посещении веб-сайта.Это ошибка подключения к базе данных.Проверьте файл подключения к базе данных и базу данных на наличие ошибок.

4. При посещении сайта возникает ошибка 500. 1. Войдите на FTP-сервер, чтобы проверить наличие каких-либо аномальных или отсутствующих файлов, указывающих на вторжение на веб-сайт, и немедленно свяжитесь с производителем веб-сайта для устранения неполадок. 2. Если в пространстве нет отсутствующих файлов, а каталог программы FTP или ошибка 500 возникает сразу после установки, убедитесь, что в пространстве включена функция scandir(), чтобы проверить, отключена ли эта функция.

Изучив большинство интерфейсов или методов Selenium, вы можете пойти на собеседование для автоматизированного тестирования, в основном автоматизированного тестирования Selenium. Следующее резюме этих вопросов может помочь вам.

1. Что такое селен?
Selenium — это среда автоматизированного веб-тестирования с открытым исходным кодом, в основном основанная на автоматизированном веб-тестировании пользовательского интерфейса. Текущая версия постепенно увеличила автоматизированное тестирование мобильного терминала. Selenium поддерживает несколько языков для разработки автоматизированных тестовых сценариев, включая Java, Python, C#, Javascript и т. д. Selenium поддерживает кроссбраузерное тестирование платформы.

2. Поддерживает ли Selenium автоматическое тестирование настольных приложений.
Selenium не поддерживает автоматическое тестирование программного обеспечения для настольных компьютеров. Selenium находит элементы на основе атрибутов элементов веб-страницы, в то время как другие инструменты автоматического тестирования программного обеспечения для настольных компьютеров находят элементы на основе местоположения элементов рабочего стола. Конечно, они также находят элементы на основе атрибуты элементов рабочего стола.

3. Поддерживает ли Selenium исполнительный механизм варианта использования.
Двигатель как двигатель. Selenium не является модулем для управления и выполнения тестовых случаев и наборов тестов. Нам нужна сторонняя среда модульного тестирования для реализации управления вариантами использования и выполнения вариантов использования. Например, в Java есть Junit или testNG, а в Python — фреймворк модульного тестирования unittest.

4. Есть ли в Selainum библиотека для чтения файлов excel
Нет, тут нужен сторонний инструмент. Например, плагин Apache POI.

5. Из каких компонентов состоит селен?
Самой ранней из них была Selenium IDE, которая поддерживает только подключаемый модуль, установленный на fiefox, и поддерживает сценарии автоматизации записи. Есть и
удаленный RC, и Grid, и webdriver. Самое главное, что мы обычно делаем, это использовать webdriver.

6. Каковы ограничения или дефекты Selenium
       За исключением программного обеспечения для Интернета и мобильных приложений, Selenium не поддерживает автоматизированное тестирование программного обеспечения для настольных компьютеров. Отчеты о тестировании программного обеспечения и управление вариантами использования могут
полагаться только на сторонние подключаемые модули, такие как Junit/TestNG и unittest. Поскольку это бесплатное программное обеспечение, у него нет поставщика для предоставления поддержки и услуг.Если у вас возникнут какие-либо проблемы, вы можете обратиться за помощью только к сообществу селена. Другое дело, что порог вхождения для селена может быть немного высок, и для игры нужно иметь определенную языковую базу программирования.

7. В селене, каковы различные методы поиска элементов
ID/имя класса/имя/текст ссылки/партиаллинктекст/Xpath/селектор CSS

8. Что такое implicitlyWait?
implicitlyWait — это неявное ожидание, обычно используемое при поиске элементов. Например, я установил максимальное время 10 секунд для поиска элемента. После использования
implicitlyWait, если элемент не найден в первый раз, он будет продолжать цикл, чтобы найти элемент в течение 10 секунд. Если оно превышает 10 секунд, будет сообщено об ошибке тайм-аута.

9. Что такое manifestWait
?Это явное ожидание, то есть все равно придется ждать 10 секунд.Если ставить 10-секундный таймаут, то это функция селениума2.В
селениум3 такого интерфейса пока не нашел .

10. Что такое ожидание потока?
Иногда нам нужно принудительно установить ожидание потока.Thread.sleep(2000), экземпляр драйвера является текущим потоком.

11. Что такое pollingEvery?
Это делается для того, чтобы сделать одну вещь после установки периода времени. Например, следующие настройки будут искать элементы один раз в секунду.  Ожидание WebDriverWait = новый Ожидание
 WebDriver(водитель,30)  ;


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

Guess you like

Origin blog.csdn.net/m0_68405758/article/details/130063537