Size: a a a

QA — Автоматизация

2020 April 13

K

KS in QA — Автоматизация
Evgenii B
String expectedJSON = "{\"data\": [{\"id\": \"id-one\", \"foo\": \"bar\"}, {\"id\": \"id-two\", \"bash\": {\"one\": \"test string\", \"two\": 123, \"three\": [1, 2, 3]}}, {\"id\": \"id-three\", \"data-strings\": [\"foo\", \"bar\", \"bash\"]}]}";
       JSONAssert.assertEquals(expectedJSON, response.getBody().asString(), false);
спасибо)
источник

EB

Evgenii B in QA — Автоматизация
Aleksey Smit
Народ, подскажите,плиз. у нас большинство пользователей с мобилок заходят, изначально автотесты я под декстопные браузеры писал, а сейчас начали просить чтобы под мобильные переписал. Как обычно это делают, отдельный сьют тестов под каждое мобильнле устройство? Заметил что хпафы не одни и те же на разных версиях браузеров.
Очевидно ответ на твой вопрос зависит от того, насколько адаптивное у вас приложение и как оно сверстано. Судя по xpath который ты упомянул, у вас нет qa атрибутов, которые бы не менялись в отличии от xpath.

Обычно одного набора тестов хватает под все девайсы.

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

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

Просто в реализации взаимодействий с кнопками у тебя должно быть обращение к другим локаторам.

Если же например на логин форме нужно вместо одного раза нажать два, то соответствующий метод будет иметь внутри себя несколько if / elif вариантов работы.

То есть ты случаи работы с браузером Х и У будут описаны внутри метода login() , а тесты использующие этот метод останутся по своей сути универсальными для всех браузеров / разрешений.


Разбивать разные реализации под разные девайсы / платформы / разрешения можно по-разному:

У тебя может быть explorer_page_object и chrome_page_object, где у каждого есть своя реализация метода. И где у тебя в коде в момент начала тестовой сессии твой основной класс с page object методами будет перенимать поведение от той или иной реализации.

А может быть и в каждом методе на ифах.

Что принять за решение зависит от того, несколько кардинально будут различаться реализации на разных разрешениях/ браузерах.

Если отличии мало и затрагивает пару методов, то имеет смысл в самих методах делать имплементацию с работой разных браузеров.

Если отличий много, то имеет смысл завести отдельные классы на каждый браузер.

Суть при этом не меняется: если поведение для пользователя +- аналогичное,  то наличие разных браузеров не должно диктовать тебе 3 тест набора вместо одного. Вместо этого у тебя будет один тестовый набор, в который ты в качестве входного параметра передаёшь желаемые характеристики браузера
источник

A

Amidoshka in QA — Автоматизация
Есть сайт, на нем есть, формы с заявками. Начал изучать автоматизацию, использую селениум. Сделал пару тестов, а сейчас патч выпускают где эти кнопки в другое место переходят. Какими методами обычно пользуются, что-бы если кнопка уехала тесты не ломались? Спасибо.
источник

A

Amidoshka in QA — Автоматизация
Куда лучше копать для начинающих?
источник

EB

Evgenii B in QA — Автоматизация
1) тесты хочешь не хочешь но иногда нужно будет обновлять, чтобы они были актуальными. Правки на сайте зачастую влекут за собой и правки в тестах
2) Если кнопки не уехали на другую страницу, и остались на месте, а тесты упали, возможно стоит изучить вопрос написания стойких к таким изменениям локаторов.
Например, тебе не нужно в локаторе описывать /div/div/div.../ если у тебя есть уникальный ID кнопки / ввода текста.

можешь посмотреть что-то типа такого:
https://www.youtube.com/watch?v=_TNh2ydpoOw
источник

K

KS in QA — Автоматизация
Evgenii B
String expectedJSON = "{\"data\": [{\"id\": \"id-one\", \"foo\": \"bar\"}, {\"id\": \"id-two\", \"bash\": {\"one\": \"test string\", \"two\": 123, \"three\": [1, 2, 3]}}, {\"id\": \"id-three\", \"data-strings\": [\"foo\", \"bar\", \"bash\"]}]}";
       JSONAssert.assertEquals(expectedJSON, response.getBody().asString(), false);
но как я понимаю, так можно только две строки сравнить..а сравнить два объекта чтобы делать сравнение полей, нельзя?
Сами поля и equals прописаны в другом классе
источник

ES

Eugene Sevostianov in QA — Автоматизация
KS
но как я понимаю, так можно только две строки сравнить..а сравнить два объекта чтобы делать сравнение полей, нельзя?
Сами поля и equals прописаны в другом классе
Можно только нужно в классе переопределить equals.
https://www.javaworld.com/article/3305792/comparing-java-objects-with-equals-and-hashcode.html
источник

ES

Eugene Sevostianov in QA — Автоматизация
ну и тогда уже assertTrue(object1.equals(object2))
источник

K

KS in QA — Автоматизация
Eugene Sevostianov
ну и тогда уже assertTrue(object1.equals(object2))
спасибо)
источник

K

Kirill in QA — Автоматизация
Добрый день! Подскажите, как можно реализовать следующую проверку на java
Имеются группы, содержащие пользователей (/groupID/user). Нужно убедиться, что пользователь может искать другого user'a только внутри своей группы.
источник

VL

Vyacheslav Leonidov in QA — Автоматизация
Kirill
Добрый день! Подскажите, как можно реализовать следующую проверку на java
Имеются группы, содержащие пользователей (/groupID/user). Нужно убедиться, что пользователь может искать другого user'a только внутри своей группы.
Похоже на тестовое задание из dins :)
источник

L

Le in QA — Автоматизация
Всем привет!
Кто нибудь имел опыт запуска Safari с эмуляцией мобильного устройства? Не могу найти эту инфу...
источник

MP

Max Petrov in QA — Автоматизация
Le
Всем привет!
Кто нибудь имел опыт запуска Safari с эмуляцией мобильного устройства? Не могу найти эту инфу...
точно так же, как и хром SafariDriver, SafariOptions и тп
источник

MZ

Marusya Zakharova in QA — Автоматизация
Ребята, закончила курсы по автоматизации, в связи с вирусом...стажировку отложили...есть ли какие ресурсы для тренировки? Java.Благодарю!!!
источник

L

Le in QA — Автоматизация
Max Petrov
точно так же, как и хром SafariDriver, SafariOptions и тп
В Chrome необходимо делать через setExperimentalOption(), но для Safari такого нет, а что есть не помогает. Вроде как эмулятора в Safari даже нет
источник

OA

Olga Arkusha in QA — Автоматизация
Всем приветик  🌻🌼 коллеги, подскажите что-то простое и конкретное. Нужно протестить как будто пользователь находится в другой части света. Не через прокси. Чтоб понять скорость ответа сервера. Как это можно сделать, может кто знает? мануально хотябы
источник

IB

Ildar Bekmansurov in QA — Автоматизация
Olga Arkusha
Всем приветик  🌻🌼 коллеги, подскажите что-то простое и конкретное. Нужно протестить как будто пользователь находится в другой части света. Не через прокси. Чтоб понять скорость ответа сервера. Как это можно сделать, может кто знает? мануально хотябы
почему не через прокси?
источник

P

Pavel in QA — Автоматизация
впн
источник

OA

Olga Arkusha in QA — Автоматизация
да вот и не знаю чем впн и прокси не подходит... наш техлид говорит, найди что то другое) вот решила переспросить
источник

IB

Ildar Bekmansurov in QA — Автоматизация
купить билет на другую часть света за счет конторы)
источник