【问题标题】:How can i solve proxy problem when using AWS device farm?使用 AWS 设备场时如何解决代理问题?
【发布时间】:2020-09-16 11:02:43
【问题描述】:

我正在尝试执行我们可以在站点下方获取的 aws 设备场示例代码。 https://docs.aws.amazon.com/devicefarm/latest/testgrid/getting-started-local.html

// Import the AWS SDK for Java 2.x Device Farm client:
...

// in your tests ...
public class MyTests {
  // ... When you set up your test suite
  private static RemoteWebDriver driver;

  @Before
  void setUp() {
    String myProjectARN = "...";
    DeviceFarmClient client  = DeviceFarmClient.builder().region(Region.US_WEST_2).build();
    CreateTestGridUrlRequest request = CreateTestGridUrlRequest.builder()
      .expiresInSeconds(300)
      .projectArn(myProjectARN)
      .build();
    CreateTestGridUrlResponse response = client.createTest.GridUrl(request);
    URL testGridUrl = new URL(response.url());
    // You can now pass this URL into RemoteWebDriver.
    WebDriver driver = new RemoteWebDriver(testGridUrl, DesiredCapabilities.firefox());
  }
  
  @After
  void tearDown() {
    // make sure to close your WebDriver:
    driver.quit();
  }

}

执行上述代码后,出现错误,消息是这样的。

java.net.UnknownHostException: devicefarm.us-westt-2.amazonaws.com

我猜代码由于代理服务器而无法解析主机。 我该如何解决这个问题?

谢谢。

【问题讨论】:

    标签: amazon-web-services proxy aws-device-farm


    【解决方案1】:

    您能否确认哪一行抛出了 java.net.UnknownHostException: devicefarm.us-westt-2.amazonaws.com。是client.createTest.GridUrl(request) 还是WebDriver driver = new RemoteWebDriver(testGridUrl, DesiredCapabilities.firefox());

    如果是client.createTest.GridUrl(request),请按照https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/section-client-configuration.html中提到的代理配置进行

    【讨论】:

    • 感谢您的回复。错误发生在 client.createTest.GridUrl(request) 上,正如你所说,这个问题的原因是代理设置。我可以通过使用 ProxyConfiguration.Builder 来解决这个问题。我提到了下面的链接。 docs.aws.amazon.com/sdk-for-java/v2/migration-guide/…(2.x版本同步客户端配置示例)
    【解决方案2】:

    我现在的setUp方法是这样的。

    @Before
    public void setUp() {
        try {
            ProxyConfiguration.Builder proxyConfig = ProxyConfiguration.builder();
            proxyConfig.endpoint(new URI("<YOUR PROXY URL>"));
            proxyConfig.username("<YOUR USER ID>");
            proxyConfig.password("YOUR PASSWORD");
            ApacheHttpClient.Builder httpClientBuilder =
                    ApacheHttpClient.builder()
                                    .proxyConfiguration(proxyConfig.build());
    
            String myARN = "<YOUR ARN>";
            DeviceFarmClient client  = DeviceFarmClient.builder()
                    .credentialsProvider(DefaultCredentialsProvider.create())
                    .region(Region.US_WEST_2)
                    .httpClientBuilder(httpClientBuilder)
                    .overrideConfiguration(ClientOverrideConfiguration.builder().build())
                    .build();
            CreateTestGridUrlRequest request = CreateTestGridUrlRequest.builder()
                    .expiresInSeconds(300)        // 5 minutes
                    .projectArn(myARN)
                    .build();
            URL testGridUrl = null;
            CreateTestGridUrlResponse response = client.createTestGridUrl(request);
            testGridUrl = new URL(response.url());
            driver = new RemoteWebDriver(testGridUrl, DesiredCapabilities.chrome());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    

    再次感谢您。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-20
      • 1970-01-01
      • 2020-03-07
      • 1970-01-01
      • 2018-03-03
      • 1970-01-01
      • 2020-12-27
      • 2021-02-17
      相关资源
      最近更新 更多