我正在使用python客户端进行browsermob来记录我的硒测试的流量。Selenium Grid位于带有Chrome和Firefox图像的Docker容器中。我似乎无法正确配置Docker图像以连接到代理和网格。这是我用来创建代理和远程Web驱动程序的代码:
server = browsermobproxy.Server('mylocalpathtobrowsermobbin')
server.start()
proxy = server.create_proxy()
proxy.new_har()
driver = webdriver.Remote(
command_executor='http://127.0.0.1:4444/wd/hub',
desired_capabilities={
'browserName': 'chrome',
'chromeOptions': {
'args': ["--proxy-server={}".format(proxy.proxy)]}
})
这是我的docker-compose文件:
中心: 图片:硒/轮毂 端口: - " 4444:4444"铬合金: 图片:硒/节点 - 铬调味蛋白 卷: -/dev/shm:/dev/shm 链接: - 中心 端口: - " 5900:5900"
我是Docker的新手,我知道我需要揭露代理使用用于连接的端口,但我无法正常工作。感谢任何帮助,谢谢!
根据Sergey的回答回答我自己的问题:我将browsermob-Proxy图像推到了Docker Hub:https://hub.docker.com/r/spothero/browsermob-proxy/
从此存储库中创建的:https://github.com/sskorol/docker-browsermob-proxy
所有信用for to docker文件的Sergey。
我的Docker组成文件:
中心: 图片:硒/轮毂 端口: - " 4444:4444"Firefox: 图片:硒/节点 - 传火 链接: - 中心铬合金: 图片:硒/节点 - 铬调味蛋白 卷: -/dev/shm:/dev/shm 链接: - 中心 端口: - " 5900:5900"Browsermobproxy: 图片:Spothero/Browsermob-Proxy:1.0.0 端口: - " 9090-9191:9090-9191" 暴露: - " 9090-9191" 链接: - 中心 - Firefox - 铬合金
在詹金斯(Jenkins)作业中,我有一个壳步骤:
#!/bin/bashDocker-compose -D- force-recreate睡眠10proxy_ip_address =" $(Docker Inspect -Format {.networkSettings.ipAddress}} browsermobproxy_1)"导出browsermob_container_host = $ proxy_ip_address
我使用环境变量将主机传递给我的测试代码。这是使用代理初始化WebDriver的代码:
import browsermobproxy
self.client = browsermobproxy.Client('localhost:9090')
self.driver = webdriver.Remote(
command_executor=settings.SELENIUM_GRID_HUB,
desired_capabilities={
'browserName': 'chrome',
'chromeOptions': {
'args': ["--proxy-server={}".format(
os.environ.get('BROWSERMOB_CONTAINER_HOST'), self.client.port)]
}
})
希望这会有所帮助!
您也必须在容器中提高BMP。然后将其与网格链接。检查本文以获取想法和密钥实现/配置点。