Что пошло не так при вызове RestAssured API - PullRequest
0 голосов
/ 25 октября 2018

Я использую следующий код для создания проблемы на Jira, которая размещена на моей локальной машине.Но я получаю код ошибки 400. Я не могу выяснить, что пошло не так, и все отлично работает, когда я выполняю вызов API от почтальона.

Я использую документацию API, доступную в расположении ниже дляthis - https://developer.atlassian.com/server/jira/platform/jira-rest-api-examples/

enter image description here enter image description here

public static void main (String [] args) выдает исключение MalformedURLException, FileNotFoundException {

    RestAssured.baseURI = "http://localhost:8080";
    String headerKey=null;
    String headerValue = null;

    String body = "{\r\n" + 
            "    \"fields\": {\r\n" + 
            "       \"project\":\r\n" + 
            "       {\r\n" + 
            "          \"key\": \"GOOG\"\r\n" + 
            "       },\r\n" + 
            "       \"summary\": \"REST ye mereeery gentlemen.\",\r\n" + 
            "       \"description\": \"Creating of an eeissue using project keys and issue type names using the REST API\",\r\n" + 
            "       \"issuetype\": {\r\n" + 
            "          \"name\": \"Bug\"\r\n" + 
            "       }\r\n" + 
            "   }\r\n" + 
            "}";

    Map<String,String> authInfo = AuthenticateUser.getSessionInfo();
    for(String key:authInfo.keySet()) {
        System.out.println(key+":"+authInfo.get(key));
        headerKey = key;
        headerValue = authInfo.get(key);

    }

    given().header(headerKey,headerValue).body(body).contentType(ContentType.JSON).
    when().post("/rest/api/2/issue/").
    then().statusCode(201);


}

}

Исключение в потоке "main" java.lang.AssertionError: 1 ожидание не выполнено.Ожидаемый код состояния <201>, но был <400>.

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:83)
at org.codehaus.groovy.reflection.CachedConstructor.doConstructorInvoke(CachedConstructor.java:77)
at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrap.callConstructor(ConstructorSite.java:84)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:59)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:238)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:250)
at io.restassured.internal.ResponseSpecificationImpl$HamcrestAssertionClosure.validate(ResponseSpecificationImpl.groovy:483)
at io.restassured.internal.ResponseSpecificationImpl$HamcrestAssertionClosure$validate$1.call(Unknown Source)
at io.restassured.internal.ResponseSpecificationImpl.validateResponseIfRequired(ResponseSpecificationImpl.groovy:655)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:210)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:59)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:169)
at io.restassured.internal.ResponseSpecificationImpl.statusCode(ResponseSpecificationImpl.groovy:123)
at io.restassured.specification.ResponseSpecification$statusCode$0.callCurrent(Unknown Source)
at io.restassured.internal.ResponseSpecificationImpl.statusCode(ResponseSpecificationImpl.groovy:131)
at io.restassured.internal.ValidatableResponseOptionsImpl.statusCode(ValidatableResponseOptionsImpl.java:119)
at com.local.jira.Demo.main(Demo.java:46)

1 Ответ

0 голосов
/ 25 октября 2018

Глядя на скриншот вашего почтальона, я вижу, что вы передали только заголовки и тело, но ваш уверенный код кажется немного переполненным другими ссылками, код 400 - BAD_REQUEST

Я подставилПример кода, который должен помочь. Если вам все еще нужна помощь, вернитесь

{
    RequestSpecification req = RestAssured.given();
    req.header("Content-Type", "application/json");
    req.header("JSESSIONID", "9533");

    req.body("{\n" +
        "    \"fields\": {\n" +
        "       \"project\":\n" +
        "       {\n" +
        "          \"key\": \"TEST\"\n" +
        "       },\n" +
        "       \"summary\": \"REST ye merry gentlemen.\",\n" +
        "       \"description\": \"Creating of an issue using project keys and issue type names using the REST API\",\n" +
        "       \"issuetype\": {\n" +
        "          \"name\": \"Bug\"\n" +
        "       }\n" +
        "   }\n" +
        "}");

    Response resp = req.post("http://localhost:8080/rest/api/2/issue");

    int code = resp.getStatusCode();
    System.out.println("Status Code is : " + code);
    String body = resp.asString();
    System.out.println("Body is : " + body);
    Assert.assertEquals(code, 201);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...