Size: a a a

QA — Automation

2021 August 24

OC

Oleg Chaplashkin in QA — Automation
Можете посмотреть в сторону паттерн "цепочка обязанностей"
Тогда условный тест можно превратить во что-нибудь такое:

click(button).value(valueBox).shouldBe("123") \
click(button).value(valueBox).shouldBe("124")
..

Но как уже сказали, это не тот случай
Лучше явно разделять логику теста и проверки


Если у вас множество тестов с разными данными - лучше параметризовать это дело, чем плодить инкапсуляцию и выносить логику
источник

OC

Oleg Chaplashkin in QA — Automation
Занимаюсь :)
источник

D

Dasha in QA — Automation
Если тебе интересны цифры, то вот мои: раньше в день по багу, в среднем - 15 багов на спринт в 15 рабочих дней (с хреновым процессами).

Начали делать вменяемый процесс, как устаканилось: сейчас 0-5 в спринт.

Команда небольшая, я одна автотестер, два мануала, 6-8 разрабов.
источник

V

Vladimir in QA — Automation
JDI многие используют в своей практике ?
источник

V

Vladimir in QA — Automation
Как вам JDI vs Selenide ?
источник

RR

Roman Roman in QA — Automation
Serenity лучше)
источник

АЛ

Алексей Ланцов... in QA — Automation
Всем привет! Помогите, пожалуйста, перестать тупить)

У меня такая ситуация:
- тестируемое приложение (на котлине) в докере
- мок-сервер для этого приложения на python, а именно Flask
- тесты в pytest.
Хочется сделать фикстуры, которые будут без лишних вопросов поднимать окружение, но если докер я осилил, то как поднять моксервер я чот туплю.

conftest лежит в корне, мок - в mock/main.py
Пытаюсь сделать так. в conftest.py:
from mock import main

@pytest.fixture(scope="module")
def launch_mock(request: pytest.FixtureRequest):
   main.app.run()
   request.addfinalizer(main.shutdown_server)

в main.py:

from flask import Flask
from flask import request

app = Flask(__name__)


def shutdown_server():
   func = request.environ.get('werkzeug.server.shutdown')
   if func is None:
       raise RuntimeError('Not running with the Werkzeug Server')
   func()


Естесственно, когда вызывается фикстура launch_mock, процесс подписает, так как в нормальном режиме эксплуатации app есть консоль с логами. Как запустить мок, чтобы он был в фоне и стопался по завершению тестов?
источник

A

Alexander in QA — Automation
Воспользуйтесь хаком
источник

EB

Evgenii B in QA — Automation
Мок в докере?
источник

АЛ

Алексей Ланцов... in QA — Automation
нет ещё
источник

VC

Vlad Cheslavlev in QA — Automation
Спасибо большое, завтра проверю)
источник

A

Alexander in QA — Automation
screenDiff не пробывал, но скриншоты норм добавляло у меня ) (AddAttachment)
источник

EB

Evgenii B in QA — Automation
Я бы тушил мок сервер извне. Ну то есть мок сервер сам не знает когда ему убить себя, правда? В Python есть контекстные менеджеры, если можно написать его, то любое действие может происходить в тестах в рамках запуска /закрытия контекстного менеджера мока. Это что касается high level абстракции.

Но по сути внутри это остановка процесса мок-сервера и все. Так можно сделать в тестах и завести под это дело метод
источник

VC

Vlad Cheslavlev in QA — Automation
Да дифы тоже вроде добавляются в текущий шаг, просто пытался понять, как вообще работает аллюре цикл. Надо ли стартовать кейс/шаг вручную или всё биндится с помощью плагина. Но вроде всё само биндится, поэтому не мог понять, как достать id
источник

A

Alexander in QA — Automation
allureLifecycle.Instance  это синглтон , и он создается один раз при  первом обращении
источник

СС

Сказочный Сникерс... in QA — Automation
источник

СС

Сказочный Сникерс... in QA — Automation
Тут посмотри, как раз твоя ситуация и несколько вариантов. Процесс/тред, фласк/simplehttpserver/socket
источник

i

iBljad in QA — Automation
Не силен в питоне и вообще реализация вызывает вопросы, но почему нельзя просто запустить мок в (асинк?) треде?
источник

EB

Evgenii B in QA — Automation
Можно сделать что угодно, но я бы предложил оценить скорость поднятия/сворачивания мок сервера и делать это в одном треде, если это быстро. Либо изначально подымать мок сервер как часть инфры и тушить его когда это удобно делать через сигнал к управляющему этим моком сервису (например, это может быть docker-compose).
источник

АЛ

Алексей Ланцов... in QA — Automation
Спасибо, изучу
источник