Здравствуйте, дорогие друзья! Сегодня я хочу рассказать вам о нашем удивительном канале QA AK, созданным для всех, кто интересуется тестированием программного обеспечения. Наш канал предоставляет уникальную возможность получить ценные знания и опыт в этой области.
QA AK - это не просто канал, а настоящее сообщество профессионалов и энтузиастов, где каждый найдет что-то интересное для себя. Здесь вы сможете узнать о последних тенденциях в мире тестирования, получить советы от опытных специалистов, а также поделиться своими мыслями и вопросами с другими участниками канала.
Наш основной целью является помощь новичкам в изучении мира тестирования, поэтому мы регулярно публикуем полезные материалы, проводим обучающие вебинары и отвечаем на ваши вопросы. Не стесняйтесь обращаться к нам, мы всегда готовы помочь!
Для связи с нами и участия в обсуждениях вы можете обратиться к администратору канала по имени @Doom_t4. Он с удовольствием ответит на все ваши вопросы и поможет вам стать успешным тестировщиком. Присоединяйтесь к нам прямо сейчас и откройте для себя увлекательный мир QA тестирования вместе с QA AK!
22 Jan, 11:01
19 Jan, 14:34
name
, какой оно может быть длины, должно ли значение являться уникальным; name
есть длина (скажем, от 5 до 30 символов), нужно выполнить два кейса с проверкой граничных значений в 5 и 30 символов для этого поля. Если интервьюеры не дадут конкретных требований для значений в каждом поле, то стоит озвучить, сделав допущение, что вы выполнили бы кейсы на граничные значения, используя соответствующую технику тест-дизайна "анализ граничных значений", так как у поля name зачастую бывает фиксированная длина. birthDate
проверяем 29 февраля в високосный год. 17 Jan, 09:02
PUT /user/profile
{
"name": "string",
"email": "string",
"phone": "string",
"birthDate": "string"
}
11 Jan, 08:38
10 Jan, 09:03
07 Jan, 18:38
07 Jan, 18:38
29 Dec, 15:31
28 Dec, 09:07
27 Dec, 09:00
24 Dec, 07:48
20 Dec, 16:00
10 Dec, 09:12
06 Dec, 11:13
25 Nov, 08:59
20 Nov, 10:01
15 Nov, 12:04
pytest --dist loadgroup -n 10 ...
@pytest.mark.xdist_group(name='CreateEntity'),
14 Nov, 11:01
07 Nov, 10:35
squares = [x**2 for x in range(1, 6)]
squares = []
for x in range(1, 6):
squares.append(x**2)
evens = [x for x in range(1, 11) if x % 2 == 0]
result = x**2 if x > 0 else x
results = [x**2 if x % 2 == 0 else -x for x in range(1, 6)]
29 Oct, 10:01
28 Oct, 07:04
25 Oct, 11:29
{
"id": 1,
"name": "John Doe",
"age": 30,
"address": {
"city": "New York",
"zip": "10001"
},
"hobbies": [
{"type": "sports", "name": "basketball"},
{"type": "music", "name": "guitar"}
]
}
SELECT *
FROM users
WHERE data->>'name' = 'John Doe';
SELECT *
FROM users
WHERE (data->>'age')::int > 25;
SELECT *
FROM users
WHERE data->'address'->>'city' = 'New York';
SELECT *
FROM users
WHERE data @> '{"hobbies": [{"name": "guitar"}]}';
11 Oct, 09:01
02 Oct, 12:11
26 Sep, 06:25
23 Sep, 06:44
23 Sep, 06:43
19 Sep, 18:26
13 Sep, 11:01
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
from selenium import webdriver
def test_red_box_adding():
service = Service(ChromeDriverManager().install())
wd = webdriver.Chrome(service=service)
wd.maximize_window()
wd.get('https://www.selenium.dev/selenium/web/dynamic.html')
btn = wd.find_element(By.ID, 'adder')
btn.click()
box = wd.find_element(By.ID, 'box0')
el = box.get_attribute('class')
assert el == 'redbox'
wd.quit()
driver.implicitly_wait(10)
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
<...>
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "box0")))
11 Sep, 09:53
09 Sep, 06:07
27 Aug, 12:53
RETURNING
в SQL-запросе получить данные из модифицируемых строк в процессе их обработки. Представьте, что нам требуется добавить запись в таблицу, где ей автоматически будет присвоен id
, который нам нужно узнать для последующего использования. Выглядеть такой запрос будет следующим образом:INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...)
RETURNING columnId; -- где columnId — наименование колонки с id
INSERT INTO Customer (FirstName, LastName, Address, City, PostalCode, Country, Email)
VALUES ('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway', '[email protected]')
RETURNING CustomerId;
id
добавленной записи с информацией о клиенте.SELECT
для сбора данных.RETURNING
может использоваться в командах INSERT
, UPDATE
и DELETE
. 24 Aug, 07:54
{
"challenges": [
{
"id": 1,
"name": "POST /challenger (201)",
"description": "Issue a POST request on the /challenger end point, with no body, to create a new challenger session. Use the generated X-CHALLENGER header in future requests to track challenge completion.",
"status": false
},
{
"id": 2,
"name": "GET /challenges (200)",
"description": "Issue a GET request on the /challenges end point",
"status": false
},
...
]
}
// Определяем JSON-схему для всего ответа
const schema = {
"type": "object",
"properties": {
"challenges": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": { "type": "integer" },
"name": { "type": "string" },
"description": { "type": "string" },
"status": { "type": "boolean" }
},
"required": ["id", "name", "description", "status"]
}
}
},
"required": ["challenges"]
};
/*
Небольшие пояснения к схеме:
type: "object" — основной объект JSON должен быть объектом.
properties: { "challenges": ... } — определяет, что объект должен содержать свойство challenges, которое является массивом.
items: { ... } — схема для каждого элемента массива challenges.
required: [...] — массив, содержащий обязательные параметры, которые должны присутствовать в каждом элементе challenges.
*/
// Импортируем библиотеку AJV
const Ajv = require('ajv');
// Создаем экземпляр класса AJV
const ajv = new Ajv();
// Конвертируем тело ответа, полученное от сервера, в JSON
const responseData = pm.response.json();
// Выполняем валидацию JSON-ответа на соответствие схеме
const valid = ajv.validate(schema, responseData);
// Создаем тест, в котором проверяем, прошла ли валидация
pm.test("JSON body validation", function() {
pm.expect(valid).to.be.true;
});
// Если валидация не прошла, выводим ошибки в console
if (!valid) {
console.log(ajv.errors);
}
18 Aug, 19:14
09 Aug, 14:21
25 Jul, 09:00
22 Jul, 07:00
29 Jun, 18:31