Привет, я пытаюсь запустить API-тесты с моего рабочего места, используя Serenity BDD и будьте уверены, но прокси-сервер или что-то блокирует меня и вызывает проблему с тайм-аутом соединения
Serenity BDD - код Resassured:
SerenityRest.rest().given().proxy(proxy_host, proxyPort).auth().basic("xxusernmexx", "xxpassword")
.spec(com.api.utils.ReuseableSpecifications.getGenericRequestSpec())
.get("bin/userInfo").
then().
log().all();
Приведенный выше код работает на моем локальном ноутбуке, подключенном к моему рабочему Wi-Fi. но в моей работе это не работает VM (citrix)
Но при использовании одной только Java для построения клиентского компоновщика контента и выполнения запросов с ним это работает. Java-код:
public class api{
private HttpClient client;
Date expires = null ;
String cooki_1 = "";
HashMap<String, String> data_Header_1 = new HashMap<String, String>();
HttpCoreContext localContext ;
BasicCookieStore cookieStore;
HttpClientContext httpClientContext;
String proxy_host = "xxxxxx.xxxxx.intra";
int proxyPort = 8080;
public api()
{
cookieStore = new BasicCookieStore();
localContext= new HttpCoreContext();
httpClientContext = HttpClientContext.create();
Registry<AuthSchemeProvider> authSchemeRegistry = RegistryBuilder.<AuthSchemeProvider>create()
.register(AuthSchemes.NTLM, new NTLMSchemeFactory())
.register(AuthSchemes.BASIC, new BasicSchemeFactory())
.register(AuthSchemes.DIGEST, new DigestSchemeFactory())
.register(AuthSchemes.SPNEGO, new SPNegoSchemeFactory())
.register(AuthSchemes.KERBEROS, new KerberosSchemeFactory())
.build();
httpClientContext.setCookieStore(cookieStore);
NTCredentials credentials = new NTCredentials("xxusernamexx","xxpasswordxx",null,"xxdomainxx" );
CredentialsProvider credProvider = new BasicCredentialsProvider();
credProvider.setCredentials(new AuthScope(proxy_host, proxyPort), credentials );
this.client = HttpClientBuilder.create().setProxy(new HttpHost(proxy_host, proxyPort)).setDefaultAuthSchemeRegistry(authSchemeRegistry)
.setDefaultCredentialsProvider(credProvider).setProxyAuthenticationStrategy(new ProxyAuthenticationStrategy())
.setRedirectStrategy(new LaxRedirectStrategy()).setDefaultRequestConfig(RequestConfig.custom()
.setCookieSpec(CookieSpecs.STANDARD).build()).setDefaultCookieStore(cookieStore).build();
//System.setProperty("java.net.useSystemProxies", "true");
}
public RestResponse postRequest(String url)
{
......
}
Это работает .. на моем рабочем месте (виртуальные машины)
Может кто-нибудь, пожалуйста, дайте мне знать, как реализовать вышеупомянутый Java-код в спокойствиеBDD и будьте уверены, классы