testcontainers 자바 라이브러리를 사용하여 docker-compose로 정의 된 웹 응용 프로그램을 테스트하려고합니다.WebDriver 컨테이너가 DockerComposeContainer 서비스에 액세스 할 수 없습니다.
DockerComposeContainer에서 서비스를 성공적으로 노출하고 RestTemplate을 사용하여 쿼리 할 수 있습니다. 나는 webdriver를 통해 서비스에 액세스하려고 할 때
String url = format(
"http://%s:%s",
environment.getServiceHost("web_1", 8080),
environment.getServicePort("web_1", 8080)
);
ResponseEntity<String> response = template.getForEntity(url, String.class);
그러나, 나는 연결 거부 오류 - "로컬 호스트 연결을 거부".
@Rule
public BrowserWebDriverContainer chrome = new BrowserWebDriverContainer()
.withDesiredCapabilities(DesiredCapabilities.chrome());
RemoteWebDriver driver = chrome.getWebDriver();
driver.get(url);
웹 드라이브 'localhost'는 서비스가 노출 된 호스트가 아닌 컨테이너 내부의 localhost라고 생각합니다.
노출 된 서비스에 액세스하기 위해 webdriver가 호스트 네트워크에 액세스하게하려면 어떻게해야합니까?
Docker 호스트 IP를 사용하는 솔루션 1이 작동했습니다. 자바에서 environment.ambassadorContainers를 찾을 수 없습니다. – Rod
'environment'는 작성 컨테이너의 이름이고, Java에서는'getAmbassadorContainers()'를 호출해야합니다. –