Size: a a a

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

2020 November 12

AB

Alexei Barantsev 🗹... in QA — Автоматизация
хотя кажется я вру. они уже написали обёртку, так что прямое обращение к JS не требуется
https://www.rubydoc.info/github/jnicklas/capybara/Capybara/Session:open_new_window
источник

AB

Alexei Barantsev 🗹... in QA — Автоматизация
(сейчас внутри этой обёртки вызов JS, а потом будет обращение к специальной функции selenium 4 для открытия нового окна)
источник

AB

Alexei Barantsev 🗹... in QA — Автоматизация
Alexei Barantsev 🗹
(сейчас внутри этой обёртки вызов JS, а потом будет обращение к специальной функции selenium 4 для открытия нового окна)
источник

W

Wazzkabar in QA — Автоматизация
Python. Selenium вывод логов console из chrome.
Нашла решение задачи ввиде:
 from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

# enable browser logging
d = DesiredCapabilities.CHROME
d['loggingPrefs'] = { 'browser':'ALL' }
driver = webdriver.Chrome(desired_capabilities=d)

# load the desired webpage
driver.get('http://foo.com')

# print messages
for entry in driver.get_log('browser'):
   print(entry)


Сейчас у меня реализовано всё примерно как:
в фикстуре:
 self.driver = webdriver.Chrome() 

в тесте:
 app.session.login_superadmin_sand()
       for log in app.driver.get_log('browser'):
           print(log)


Есть ли разница?

При моей реализации у меня выводятся данные в виде
 {'level': 'SEVERE', 'message': <здесь реквест> - Failed to load resource: the server responded with a status of 401 (UNAUTHORIZED)', 'source': 'network', 'timestamp': 1605167828560}
{'level': 'SEVERE', 'message': <реквест> 110:66330 Object', 'source': 'console-api', 'timestamp': 1605167828567} и тд

это то, что требуется? или это не то?
источник

EG

Edward Galiaskarov in QA — Автоматизация
Alexei Barantsev 🗹
хотя кажется я вру. они уже написали обёртку, так что прямое обращение к JS не требуется
https://www.rubydoc.info/github/jnicklas/capybara/Capybara/Session:open_new_window
спасибо, я кстати наткнулся где-то на эту обертку, но в документации поиском поискал и не нашел - спасибо
источник

i

i think it's okay in QA — Автоматизация
Mem Kekovich
Ещё можно для экспы взять свагер схему
Мавен сваггер кодеген плагин
Указать в качестве хттп ра и глянуть какой код генерится, чтобы примерно представлять как даже из бдд ра можно делать красивый хттп слой и конфиги
https://viclovsky.github.io/%D0%B0%D0%B2%D1%82%D0%BE%D1%82%D0%B5%D1%81%D1%82%D1%8B%20%D0%BD%D0%B0%20api/2018/05/09/swagger-rest-assured/
выглядит просто, только я не совсем понял как они  там с api работают (т.е как обращаются к конкретным ендпоинтам)
и второе предложение не до конца понял
Блог
Генерация Rest-assured клиента из документации с помощью Swagger
Swagger - один из самых известных фреймворков для работы с REST API. Он поддерживает большое количество языков программирования, с помощью него можно документировать код и генерировать API клиенты из документации. Из коробки swagger предоставляет генерацию следующих клиентов: Jersey1.x, Jersey2.x, OkHttp, Retrofit1.x, Retrofit2.x, Feign, RestTemplate, RESTEasy, Vertx, Google API Client Library for Java. Но попробовав большинство из них мы пришел к выводу, что для автоматизации тестирования ни один из них не подходит. Они не имеют достаточно точек расширения, ответ всегда мапится на ответ из документации, запрос не всегда удобно кастомизировать, что крайне важно для автоматизации тестирования. Также нет возможности сразу валидировать ответ. Хотелось получить клиент, который получался генерацией из документации и при этом отвечал всем требованиям, которому мы к нему предъявляли. Поэтому мы написали свой клиент на основе Rest-assured и добавили его в swagger-codegen.
источник

i

i think it's okay in QA — Автоматизация
i think it's okay
https://viclovsky.github.io/%D0%B0%D0%B2%D1%82%D0%BE%D1%82%D0%B5%D1%81%D1%82%D1%8B%20%D0%BD%D0%B0%20api/2018/05/09/swagger-rest-assured/
выглядит просто, только я не совсем понял как они  там с api работают (т.е как обращаются к конкретным ендпоинтам)
и второе предложение не до конца понял
Блог
Генерация Rest-assured клиента из документации с помощью Swagger
Swagger - один из самых известных фреймворков для работы с REST API. Он поддерживает большое количество языков программирования, с помощью него можно документировать код и генерировать API клиенты из документации. Из коробки swagger предоставляет генерацию следующих клиентов: Jersey1.x, Jersey2.x, OkHttp, Retrofit1.x, Retrofit2.x, Feign, RestTemplate, RESTEasy, Vertx, Google API Client Library for Java. Но попробовав большинство из них мы пришел к выводу, что для автоматизации тестирования ни один из них не подходит. Они не имеют достаточно точек расширения, ответ всегда мапится на ответ из документации, запрос не всегда удобно кастомизировать, что крайне важно для автоматизации тестирования. Также нет возможности сразу валидировать ответ. Хотелось получить клиент, который получался генерацией из документации и при этом отвечал всем требованиям, которому мы к нему предъявляли. Поэтому мы написали свой клиент на основе Rest-assured и добавили его в swagger-codegen.
private ApiClient api;
   
@Before
public void createApi() {
   api = ApiClient.api(ApiClient.Config.apiConfig().reqSpecSupplier(
               () -> new RequestSpecBuilder().setConfig(config().objectMapperConfig(objectMapperConfig().defaultObjectMapper(gson()))).addFilter(new ErrorLoggingFilter()).setBaseUri("http://petstore.swagger.io:80/v2")));
}

@Test
public void someTest() {
Map<String, Integer> inventory = api.store().getInventory().executeAs(validatedWith(shouldBeCode(SC_OK)));
assertThat(inventory.keySet().size(), greaterThan(0));
}
источник

MK

Mem Kekovich in QA — Автоматизация
i think it's okay
https://viclovsky.github.io/%D0%B0%D0%B2%D1%82%D0%BE%D1%82%D0%B5%D1%81%D1%82%D1%8B%20%D0%BD%D0%B0%20api/2018/05/09/swagger-rest-assured/
выглядит просто, только я не совсем понял как они  там с api работают (т.е как обращаются к конкретным ендпоинтам)
и второе предложение не до конца понял
Блог
Генерация Rest-assured клиента из документации с помощью Swagger
Swagger - один из самых известных фреймворков для работы с REST API. Он поддерживает большое количество языков программирования, с помощью него можно документировать код и генерировать API клиенты из документации. Из коробки swagger предоставляет генерацию следующих клиентов: Jersey1.x, Jersey2.x, OkHttp, Retrofit1.x, Retrofit2.x, Feign, RestTemplate, RESTEasy, Vertx, Google API Client Library for Java. Но попробовав большинство из них мы пришел к выводу, что для автоматизации тестирования ни один из них не подходит. Они не имеют достаточно точек расширения, ответ всегда мапится на ответ из документации, запрос не всегда удобно кастомизировать, что крайне важно для автоматизации тестирования. Также нет возможности сразу валидировать ответ. Хотелось получить клиент, который получался генерацией из документации и при этом отвечал всем требованиям, которому мы к нему предъявляли. Поэтому мы написали свой клиент на основе Rest-assured и добавили его в swagger-codegen.
В смысле?) общая суть - отдать юзеру паблик интерфейсы (клиенты) а там внутри уже все метолы описаны и сигнатура методов
Конфигуришь апи клиент в своём отдельном классе обертке, и делаешь билд методы для паблик интерфейсов из сваггера сделанных
источник

MK

Mem Kekovich in QA — Автоматизация
Из тестов просто создаёшь клиент и получаешь доступ к методам апихи
Вот это api.store и есть создание экземпляра класса с методами апи этой группы
Я обычно это все скрываю за оберткой, чтобы в тестах чище было
источник

i

i think it's okay in QA — Автоматизация
Mem Kekovich
Из тестов просто создаёшь клиент и получаешь доступ к методам апихи
Вот это api.store и есть создание экземпляра класса с методами апи этой группы
Я обычно это все скрываю за оберткой, чтобы в тестах чище было
> Из тестов просто создаёшь клиент и получаешь доступ к методам апихи
Я вроде понял.
У меня просто был вопрос к тому, как автор понял какой метод вызывать ( т.е название метода и т.д), но видимо оно в файле описано и всё
источник

MK

Mem Kekovich in QA — Автоматизация
i think it's okay
> Из тестов просто создаёшь клиент и получаешь доступ к методам апихи
Я вроде понял.
У меня просто был вопрос к тому, как автор понял какой метод вызывать ( т.е название метода и т.д), но видимо оно в файле описано и всё
Ну обычно в сваггере ж написано как метод называется ) плагин если не трогать mustache шаблон делает плюс минус такое же название 🤷🏻‍♂️
источник

MK

Mem Kekovich in QA — Автоматизация
Только есть проблема иногда, когда разрабы пишут свагер схему на отвали :) и плагин падает на генерации - трейс помогает, но и валидацию свагер схемы никто не отменял
источник

i

i think it's okay in QA — Автоматизация
Mem Kekovich
Ну обычно в сваггере ж написано как метод называется ) плагин если не трогать mustache шаблон делает плюс минус такое же название 🤷🏻‍♂️
Спасибо. Буду пробовать
источник

i

i think it's okay in QA — Автоматизация
А про http-слои и про конфиги - это видимо про "упаковывание" внутренностей, чтоб код выглядел "прилично"
источник

MK

Mem Kekovich in QA — Автоматизация
i think it's okay
А про http-слои и про конфиги - это видимо про "упаковывание" внутренностей, чтоб код выглядел "прилично"
Тип того. Зачем всю подноготную выносить в тесты
источник

VS

Victoria Shepard in QA — Автоматизация
это закладки делать?
источник

K

Kanstantsin in QA — Автоматизация
питонесты есть? может кто сравнить pylenium и seleniumbase? кому что больше зашло?
источник

А

Алексей in QA — Автоматизация
Kanstantsin
питонесты есть? может кто сравнить pylenium и seleniumbase? кому что больше зашло?
а какая цель?
источник

K

Kto? in QA — Автоматизация
Всем привет! подскажите плз, у меня есть в папке src - два файла для запуск в тестНГ - например:  
Example1.xml  - c 10тью тестами
Example12.xml - с 1м тестов.
Когда запускаю - Example2 - почему то запускается Example1. как сделать так что бы я четко мог запускать примеры которые указал? спасибо

Команда для запуска:
mvn clean test -Dsurrefirre=src/****/Example1.xml
источник

А

Алексей in QA — Автоматизация
инструменты ведь выбирают с какой-то целью, а не просто так
источник