Size: a a a

2020 October 30

А

Алексей in atinfo chat
Escudo Escobar
господа. посовветуйте какой подход применить.
Например сайт, пусть будет для продажи автомобилей.
Есть фильтр, например по марке.
Как проверить. что фильтр работает ?
Выбрать значение например Toyota и чекать все 20-30 страниц по 20 результатов. что там именно Toyota а не BMW или Audi ?
конечно это достаточно просто проверить в selenide, но если таких страниц 300 или 400... это ж сколько времени уйдет...
посмотри на проект. Если он современный - машины будет отдавать АПИ. Можно запрашивать АПИ и получать списки машин по хттп почти мгновенно
источник

ИС

Игорь Середа... in atinfo chat
Elbrus K2
У тебя просто какое-то инженерное представление через розовые очки, мы не пишем красивый код ради кода, мы решаем бизнес цели клиента, ему всё равно что там внутри, если он работает. Быть может если у тебя маленький проект и 1 тест в неделю, то ты сидишь вылизываешь его и занимаешься оптимизацией, а в большинстве контор кроме тестов у тебя еще много активностей 😉 и поверь мне +1 лишний индекс это даже не 1% от всех проблем на проекте
Это у тебя странное представление, что для того, чтобы качественно писать, надо напрягаться, и тратить неделю времени на один тест. Алексей говорит, что нужно нанимать людей, которые не видят в этом проблемы. Я его в этом поддерживаю. Наберут тех, для кого не проблема O(N^2) не проблема, клиент же этого не замечает.... До поры...
источник

А

Алексей in atinfo chat
Elbrus K2
У тебя просто какое-то инженерное представление через розовые очки, мы не пишем красивый код ради кода, мы решаем бизнес цели клиента, ему всё равно что там внутри, если он работает. Быть может если у тебя маленький проект и 1 тест в неделю, то ты сидишь вылизываешь его и занимаешься оптимизацией, а в большинстве контор кроме тестов у тебя еще много активностей 😉 и поверь мне +1 лишний индекс это даже не 1% от всех проблем на проекте
чел, как только ваш проект из стартапа и инхаус проекта превращается в хайлоад с нормальными бизнес целями (а не продаться первому встречному гуглу), сразу же начинаются инженерные решения. Потому что там отсутсвие оптимизаций приводит к тому, что твоя апишка держит 30 рпс на ноду вместо 3000. Просто потому что кто то в цикле каждый раз в бд ходит, а не один раз и кешировать
источник

EK

Elbrus K2 in atinfo chat
Игорь Середа
Это у тебя странное представление, что для того, чтобы качественно писать, надо напрягаться, и тратить неделю времени на один тест. Алексей говорит, что нужно нанимать людей, которые не видят в этом проблемы. Я его в этом поддерживаю. Наберут тех, для кого не проблема O(N^2) не проблема, клиент же этого не замечает.... До поры...
Ты останешься при своем мнении и на этом мы закончим 😎
источник

EK

Elbrus K2 in atinfo chat
Алексей
чел, как только ваш проект из стартапа и инхаус проекта превращается в хайлоад с нормальными бизнес целями (а не продаться первому встречному гуглу), сразу же начинаются инженерные решения. Потому что там отсутсвие оптимизаций приводит к тому, что твоя апишка держит 30 рпс на ноду вместо 3000. Просто потому что кто то в цикле каждый раз в бд ходит, а не один раз и кешировать
Как только я ушёл из стартапа по многим причинам я больше нигде за 9 лет не встретил людей, которые бы цеплялись к коду, как ты 😁
Не знаю кто тебя так обидел
источник

EK

Elbrus K2 in atinfo chat
Вопрос считаю закрытым. Код ради кода это тупо.
источник

O

Oleg in atinfo chat
Escudo Escobar
господа. посовветуйте какой подход применить.
Например сайт, пусть будет для продажи автомобилей.
Есть фильтр, например по марке.
Как проверить. что фильтр работает ?
Выбрать значение например Toyota и чекать все 20-30 страниц по 20 результатов. что там именно Toyota а не BMW или Audi ?
конечно это достаточно просто проверить в selenide, но если таких страниц 300 или 400... это ж сколько времени уйдет...
Я вообще не очень понимаю какой смысл в тесте на случайных данных. Если его автоматизировать это будет очень сложный тест. Если там вдруг не будет тойот, то все, тест провалился? А как мы узнаем, что вернулись все тойоты из базы? Реализуем в тесте такой же фильтр и будем в базу ходить проверять?

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

IB

Ildar Bekmansurov in atinfo chat
Escudo Escobar
господа. посовветуйте какой подход применить.
Например сайт, пусть будет для продажи автомобилей.
Есть фильтр, например по марке.
Как проверить. что фильтр работает ?
Выбрать значение например Toyota и чекать все 20-30 страниц по 20 результатов. что там именно Toyota а не BMW или Audi ?
конечно это достаточно просто проверить в selenide, но если таких страниц 300 или 400... это ж сколько времени уйдет...
можно же перенести тест на сторону апи, дернуть запрос и чекнуть
источник

А

Алексей in atinfo chat
Elbrus K2
Как только я ушёл из стартапа по многим причинам я больше нигде за 9 лет не встретил людей, которые бы цеплялись к коду, как ты 😁
Не знаю кто тебя так обидел
нитко не обижал, я в хайлоаде работал. Когда у тебя вечерняя нагрузка в 1100 рпс на ноду, а свеженаписанный челом код еле выдает 100, тогда и начинаешь понимать, зачем все это. А до этого да, жили на проекте где ПХП YII выдерживало 18 рпс на сервак и не тужили, там всего клиентов в день 120 человек
источник

А

Алексей in atinfo chat
там как код не напишешь, все равно работать будет
источник

АК

Артем Кузьменко... in atinfo chat
Коллеги, добрый день.
У меня вопрос связанный с подготовительными действиями перед тестом. Что для этого использовать?
Раньше я писал отдельные функции для нужных мне действий и дергал их прямо в тесте.
Потом начал использовать фикстуры для таких действий. Но потом столкнулся с ограничениями связанными с параметризацией фикстур.
Насколько я понял фикстуру параметризуют какими-то константными значениями при описании самой фикстуры.
@pytest.fixture(scope="class", params=[('login1','pass1')])
def auth(request):

Т.е. я не могу в тесте указывая фикстуру указать набор параметров для этой фикстуры. Но и в таком случае фикстура будет вызываться несколько раз с каждым параметром. Тут наверное все параметры надо как 1 значение передавать - кортеж.

Где-то я читал, что фикстуры для таких случаев не используют. Что для таких вещей пишут специальные функции или классы.

Так вот у меня вопрос, как организовывать такого рода тесты. Куда девать подготовку к тесту?

Вот кейсы.

1. Создать пост с любым именем (по идее это функция или метод с параметром name)
2. Изменить имя поста созданного на шаге 2

1. Создать пост с любым именем (по идее это функция или метод с параметром name)
2. Удалить пост созданный на шаге 1

Как бы вы делали тест из этих кейсов, как бы организовали подготовку создания поста из шага 1?
источник

A

AKozyrev@ in atinfo chat
Артем Кузьменко
Коллеги, добрый день.
У меня вопрос связанный с подготовительными действиями перед тестом. Что для этого использовать?
Раньше я писал отдельные функции для нужных мне действий и дергал их прямо в тесте.
Потом начал использовать фикстуры для таких действий. Но потом столкнулся с ограничениями связанными с параметризацией фикстур.
Насколько я понял фикстуру параметризуют какими-то константными значениями при описании самой фикстуры.
@pytest.fixture(scope="class", params=[('login1','pass1')])
def auth(request):

Т.е. я не могу в тесте указывая фикстуру указать набор параметров для этой фикстуры. Но и в таком случае фикстура будет вызываться несколько раз с каждым параметром. Тут наверное все параметры надо как 1 значение передавать - кортеж.

Где-то я читал, что фикстуры для таких случаев не используют. Что для таких вещей пишут специальные функции или классы.

Так вот у меня вопрос, как организовывать такого рода тесты. Куда девать подготовку к тесту?

Вот кейсы.

1. Создать пост с любым именем (по идее это функция или метод с параметром name)
2. Изменить имя поста созданного на шаге 2

1. Создать пост с любым именем (по идее это функция или метод с параметром name)
2. Удалить пост созданный на шаге 1

Как бы вы делали тест из этих кейсов, как бы организовали подготовку создания поста из шага 1?
привет, шаг 1 надо оборачивать в фикстуру. - то есть это будет   setup для теста, который возвращает имя поста для дальнейших действий
источник

АК

Артем Кузьменко... in atinfo chat
AKozyrev@
привет, шаг 1 надо оборачивать в фикстуру. - то есть это будет   setup для теста, который возвращает имя поста для дальнейших действий
тогда у меня вопрос. А если мне надо передать имя поста в фикстуру?
Как это сделать?
в параметре метода я же не могу это сделать?
```
test_delete_post(create_post)     <--- вот как сюда параметр передать. Мне не подходит вариант с описанием в самой фикстуре
источник

АК

Артем Кузьменко... in atinfo chat
Мне кажется речь об этом https://docs.pytest.org/en/latest/example/parametrize.html#indirect-parametrization
Кто то это юзал?
Если мы используем indirect=True то мы останавливаемся в брейкпоинте тела фикстуры, если нет, то это просто параметризация обычная.
import pytest


@pytest.fixture()
def generate_name(request):
   return [x * 2 for x in request.param]


@pytest.mark.parametrize("generate_name", [(2, 3)], indirect=True)
def test_indirect(generate_name):
   print()
   print(generate_name)
   assert generate_name == [4, 6]
источник

A

AKozyrev@ in atinfo chat
Артем Кузьменко
Мне кажется речь об этом https://docs.pytest.org/en/latest/example/parametrize.html#indirect-parametrization
Кто то это юзал?
Если мы используем indirect=True то мы останавливаемся в брейкпоинте тела фикстуры, если нет, то это просто параметризация обычная.
import pytest


@pytest.fixture()
def generate_name(request):
   return [x * 2 for x in request.param]


@pytest.mark.parametrize("generate_name", [(2, 3)], indirect=True)
def test_indirect(generate_name):
   print()
   print(generate_name)
   assert generate_name == [4, 6]
да, надо использовать indirect. вместо return поробуй yield
источник

АК

Артем Кузьменко... in atinfo chat
AKozyrev@
да, надо использовать indirect. вместо return поробуй yield
А что даст мне yield?
он вернет выполнение к тесту, а после вернет к фикстуре.
Это явно не для моего случая...

Или я не понял смысла вашей идеи...
источник
2020 October 31

S

Someone in atinfo chat
Подскажите плиз, как правильно сделать окружение для тестирования Web UI под Safari, если нету реальной шайтан машины от apple? Поднять локально/в облаке виртуалку с OSX (тот еще квест) и там  настроить Selenium ноду под Safari? Или возможно есть более элегантные варианты? Почему нету ни единого публичного докер имеджа для Safari браузера? Не ужели все так сложно, или я чего-то не понимаю. Пожалуйсто ткните в решение. Заранее огромное спасибо!
источник

NK

ID:0 in atinfo chat
https://ain.ua/2020/10/27/microsoft-predstavila-issledovanie-udalennoj-raboty/
Отсутствие костюмов и командного духа. Microsoft представила исследование удаленной работы.
Руководители и работники компаний не хотят возвращаться к прежнему формату офисной работы после пандемии большинство компаний собирается оставить гибкий график и в будущем.
источник

R(

Roman (rpwheeler) in atinfo chat
Someone
Подскажите плиз, как правильно сделать окружение для тестирования Web UI под Safari, если нету реальной шайтан машины от apple? Поднять локально/в облаке виртуалку с OSX (тот еще квест) и там  настроить Selenium ноду под Safari? Или возможно есть более элегантные варианты? Почему нету ни единого публичного докер имеджа для Safari браузера? Не ужели все так сложно, или я чего-то не понимаю. Пожалуйсто ткните в решение. Заранее огромное спасибо!
> Почему нету ни единого публичного докер имеджа для Safari браузера? Не ужели все так сложно, или я чего-то не понимаю.

Потому что это Apple. Проприетарная система и платформа.  Хотя отдельные попытки были, в целом у Apple никогда не было особого желания сделать так чтобы то что они делают работало на других платформах, если это не связано с продажами их хард-продуктов. Сафари под Windows перестали выпускать году так в 2012.   Я ещё застал времена когда даже тестировщику для того чтобы просто собирать iOS продукт даже внутри своей же команды была нужна девелопер лицензия от Apple за 99 баксов в год.
источник

EK

Elbrus K2 in atinfo chat
Someone
Подскажите плиз, как правильно сделать окружение для тестирования Web UI под Safari, если нету реальной шайтан машины от apple? Поднять локально/в облаке виртуалку с OSX (тот еще квест) и там  настроить Selenium ноду под Safari? Или возможно есть более элегантные варианты? Почему нету ни единого публичного докер имеджа для Safari браузера? Не ужели все так сложно, или я чего-то не понимаю. Пожалуйсто ткните в решение. Заранее огромное спасибо!
Я пользовался Perfecto для удаленного запуска, репортинга и статистики, там есть мак и много чего другого, включая мобайл и даже IE11
источник