Size: a a a

2020 July 15

Н

Нурсултан in Rude QA
у меня типа такого вот
источник

ТЭ

Тачами Экстович... in Rude QA
Вообще имеет смысл посмотреть на mockserver, или mountebank. Они одновременно, и как сервер с моками работают (проще фронт тестить), и как прокси.
источник

ТЭ

Тачами Экстович... in Rude QA
Нурсултан
у меня типа такого вот
ща
источник

ТЭ

Тачами Экстович... in Rude QA
А что за Server?

У нас просто так:
from browsermobproxy import Client
self.client = Client(url=self.proxy_url, params=self.params, options=self.options)
источник

ТЭ

Тачами Экстович... in Rude QA
А, понятно, ты еще сам бинарь видимо поднимаешь. У нас это засолено
источник

Н

Нурсултан in Rude QA
я так понял сервер - это ебала которая бинарь поднимает
источник

ТЭ

Тачами Экстович... in Rude QA
Ну, да. Выглядит норм. После того как server.start() сделал, можно клиент создавать
источник

ТЭ

Тачами Экстович... in Rude QA
А на клиенте есть поле client.proxy, которое уже в капабилити можно передать. Это хост и порт, вроде как.
источник

ТЭ

Тачами Экстович... in Rude QA
Тачами Экстович
Вот так в капабилити добавляю:
if proxy_url is not None:
   proxy = Proxy()
   proxy.http_proxy = proxy_url
   proxy.ssl_proxy = proxy.http_proxy
   proxy.add_to_capabilities(caps)
return caps
Вот так ставим:
self.proxy_url = self.client.proxy

И потом этот урл тут используется.
источник

ТЭ

Тачами Экстович... in Rude QA
Нурсултан
я так понял сервер - это ебала которая бинарь поднимает
Ты потестирую свой класс Proxy отдельно. Дерни server.start — проверь, что запустился прокси. Создай клиент, и дерни у сервера ручку GET /proxy, чтобы убедится что порт выделен.

Без браузера и селеноида.
источник

ТЭ

Тачами Экстович... in Rude QA
У нас с ggr + selenoid прокси, моки, все работает как часики.
источник

Н

Нурсултан in Rude QA
Нурсултан
а как сам Proxy() объект создается?

class Proxy():
   def __init__():
       self.server = browsermobproxy.Server(PATH_TO_EXECUTOR)

   def __start_server(self):
       self.server.start()

   def __create_proxy(self):
       return self.server.create_proxy(
           params={
               'trustAllServers': True,
           }
       )

   def stop_server(self):
       self.server.stop()

   def get_proxy(self):
       self.__start_server()
       return self.__create_proxy()
в капсы я вот так кидаю

driver fixture в coftest.py
proxy_server = ProxyManager()
proxy = proxy_server.get_proxy()

# тут всякие хромопшнс делаются

desired_capabilities = chrome_options.to_capabilities()
proxy.add_to_webdriver_capabilities(desired_capabilities)

# инициализация драйвера
источник

Н

Нурсултан in Rude QA
Тачами Экстович
Ты потестирую свой класс Proxy отдельно. Дерни server.start — проверь, что запустился прокси. Создай клиент, и дерни у сервера ручку GET /proxy, чтобы убедится что порт выделен.

Без браузера и селеноида.
локально тестил, все ок
источник

Н

Нурсултан in Rude QA
ща тогда посмотрю еще, посибо
источник

BO

Boris Osipov in Rude QA
Нурсултан
ща тогда посмотрю еще, посибо
у тебя с контейнера с браузером с селеноида, сетевой доступ до тачки где тесты бегут(и прокси поднят) точно есть сетевой доступ?
источник

Н

Нурсултан in Rude QA
Boris Osipov
у тебя с контейнера с браузером с селеноида, сетевой доступ до тачки где тесты бегут(и прокси поднят) точно есть сетевой доступ?
ну, я так понимаю да, иначе ведь нода не поднялась бы, наверное
источник

BO

Boris Osipov in Rude QA
Нурсултан
ну, я так понимаю да, иначе ведь нода не поднялась бы, наверное
Поднялась бы
источник

ТЭ

Тачами Экстович... in Rude QA
Boris Osipov
Поднялась бы
Он же туда делает запросы за сессией
источник

BO

Boris Osipov in Rude QA
Тачами Экстович
Он же туда делает запросы за сессией
ну я делаю запрос за сессией к моей тачке в гугл клауде с локальной пеки. это не значит что тачка в клауде имеет доступ к порту на моей пеке
источник

ТЭ

Тачами Экстович... in Rude QA
А, ну логично.
источник