🔍 Хочешь работать тестировщиком, но не знаешь, где искать вакансии для Junior?
Мы уже всё нашли за тебя! Подписывайся и получай лучшие предложения 🚀 в нашем Telegram канале "Вакансии QA".
Если у вас впереди собеседование на позицию QA-специалиста, где нужно знание Python, Selenium или тестирования API, — тогда вам сюда.
1. Сравнение List, Tuple и Set в Python
✅ Кратко:
Используйте
listдля изменяемых коллекций,tuple— для неизменяемых, иset, если вам нужны только уникальные значения.
2. Что такое генератор списков (List Comprehension)?
Это компактный и удобный способ создавать списки в Python.
squares = [x**2 for x in range(5)] # [0, 1, 4, 9, 16]
Можно добавить условия:
even_squares = [x**2 for x in range(10) if x % 2 == 0]
3. Lambda-функция vs обычная функция
# Lambda add = lambda a, b: a + b
# Normal function
def add(a, b):
return a + b
✅ Используйте лямбду для простых одноразовых функций.
4.Что такое декоратор в Python?
Декораторы добавляют дополнительное поведение к функции, не меняя саму функцию.
def decorator(func):
def wrapper():
print("Before")
func()
print("After")
return wrapper
@decorator
def greet():
print("Hello")
5. Работа с файлами в Python
with open("file.txt", "r") as f:
data = f.read()
Используйте with, чтобы автоматически закрыть файл.
6. Implicit, Explicit и Fluent ожидания в Selenium
| Тип ожидания | Что делает | Где используется |
|---|---|---|
| Implicit | Ждет появления любого элемента | Устанавливается глобально, применяется везде |
| Explicit | Ждет конкретный элемент | Подходит для динамического контента |
| Fluent | То же, что explicit, но с интервалом опроса и игнорированием ошибок | Отлично работает с флейковыми элементами |
✅ Совет: используйте явные ожидания (explicit) и не комбинируйте их с неявными (implicit), чтобы избежать багов.
7. Работа с выпадающими списками (dropdown) в Selenium
from selenium.webdriver.support.ui import Select
dropdown = Select(driver.find_element(By.ID, "country"))
dropdown.select_by_visible_text("India")
8. Переключение между окнами в Selenium
main = driver.current_window_handle
for handle in driver.window_handles:
if handle != main:
driver.switch_to.window(handle)
Используйте .switch_to.window(handle), чтобы переключиться на нужное окно или вкладку.
9. Обработка всплывающих alert-окон в Selenium
alert = driver.switch_to.alert print(alert.text) alert.accept() # or alert.dismiss()
10. Как работать с iframe в Selenium
driver.switch_to.frame("iframe_id")
# interact inside iframe
driver.switch_to.default_content()
11. Что такое Page Object Model (POM)?
Отделите логику от взаимодействия с UI, создавая отдельные классы для каждой страницы.
Пример:
class LoginPage:
def __init__(self, driver):
self.driver = driver
self.username = driver.find_element(By.ID, "username")
def login(self, user, pwd):
self.username.send_keys(user)
✅ Преимущества: упрощает поддержку и повторное использование кода.
12. Что такое API? Что такое REST?
- API — это интерфейс, который позволяет системам взаимодействовать друг с другом.
- REST — это архитектурный стиль, использующий стандартные HTTP-методы (GET, POST, PUT, DELETE).
Пример:
GET /users → возвращает данные пользователей
13. Проверка API в Postman
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
Проверяем наличие поля в ответе:
pm.expect(jsonData).to.have.property("userId");
14. Тестирование API на Python с использованием requests
import requests
response = requests.get("https://jsonplaceholder.typicode.com/posts/1")
assert response.status_code == 200
print(response.json())
15. Тестирование POST API в Python
payload = {
"title": "foo",
"body": "bar",
"userId": 1
}
response = requests.post("https://jsonplaceholder.typicode.com/posts", json=payload)
assert response.status_code == 201
Перевод статьи «Crack Your QA Interview: 15 Most Common Questions with Answers (Python + Selenium + API)».