2017-03-14 5 views
1

안심할 수있는 Java 및 Api 테스트를 사용하는 것이 처음이므로 제발 친절하게 대해주십시오. 내가 안부를 사용하여 베어러 인증을 사용하는 API를 테스트하지 못하면 테스트가 실패합니다. - java.net.ConnectException : 연결이 거부되었습니다. 연결보증 된 무기명 인증

이 문제는 인증과 관련이 있지만 확실하지 않습니다. "무기명"사용법. 나는 주변을 수색했는데 어떻게 든 내 사용자 이름과 암호를 사용하여 초기 요청을해야한다고 생각합니다. 그런 다음 토큰을 다시 가져 와서 베어러 인증에 사용합니다. 누군가 아주 간단한 예를 들어이 작업을 수행하도록 도와 줄 수 있습니까?

내 코드

import com.jayway.restassured.RestAssured; 
import static com.jayway.restassured.RestAssured.*; 
import static org.hamcrest.Matchers.hasItem; 

@BeforeTest 
    public void setUp() { 
     RestAssured.enableLoggingOfRequestAndResponseIfValidationFails(); 
     RestAssured.authentication = preemptive().basic("username","password"); 

} 

@Test 
public void successfulTest() { 
    given() 
      .contentType("application/json; charset=UTF-8"); 

    when(). 

      get("http://mydomain/testpath/Id=2"). 
    then(). 
      statusCode(200); 

} 

답변

0

내 오이 단계 정의는 다음과 같습니다이다

// Class variables 
    private String token_resource = "/yourApp/oauth/token?username="; 
    private String endpoint_rest="https://your.app.domain.com/"; 
    private String acessToken; 

    @When("^user gets access token using userId \"(.+)\" and password \"(.+)\"$") 
public void getAccessToken(String userName, String password){ 
    RequestSpecification requestSpec = RestAssured.with(); 
    requestSpec.given().contentType("application/json"); 
    requestSpec.headers("Authorization", "Basic your-string-here"); 
    Response response = requestSpec.post(endpoint_rest + token_resource + userName + "&password=" + password + "&client_id=yourApp&grant_type=password"); 
    String responseMsg = response.asString(); 
    System.out.println(">> responseMsg=" + responseMsg); 
    assertTrue("Missing access token",responseMsg.contains("access_token")); 
    System.out.println(">> Get Access token RESPONSE: " + responseMsg); 

    DocumentContext doc = JsonPath.parse(responseMsg); 
    acessToken= doc.read("access_token"); 

    System.out.println(" >> doc.read access_token= " + acessToken); 
} 

대부분은 엔드 포인트가 코딩 된 방법에 따라 달라집니다.

내가 이런 종류의 것을 배우고 싶을 때 나는 안심하고 examples으로 가서 검색한다.

Here 예를 들면.

관련 문제