使用POST http方法时,我无法发布Add Place API [英] I am unable to post an Add Place API when using POST http method

查看:139
本文介绍了使用POST http方法时,我无法发布Add Place API的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


io.restassured.path.json.exception.JsonPathException:无法解析
JSON文档

io.restassured.path.json.exception.JsonPathException: Failed to parse the JSON document

为这些功能文件步骤编写的代码中引发错误:

  Given  Add new location with "<name>" "<language>" "<address>" parameters
  Then  user calls "AddPlaceAPI" with http "POST" method  
  Then  API successful response with "status" as "OK"

这些步骤的stepDefinition代码

     @Given("Add new location with {string} {string} {string} parameters")
    public void Add_new_location_with_three_parameters(String name_G,String address_G,String language_G) throws IOException {
        res=given().spec(requestSpecification())
                .body(data.googleAddPlace(name_G,address_G,language_G));

    }
    @Then("user calls {string} with http {string} method")
    public void user_calls_with_http_method(String resource_G,String http_method)
    {
        APIResources resourceAPI = APIResources.valueOf(resource_G);
        System.out.println("Resource value" + resourceAPI.getResource());
        resspec =new ResponseSpecBuilder().expectStatusCode(200).expectContentType(ContentType.JSON).build();
        if(http_method.equalsIgnoreCase("POST"))
                response= res.when().post(resourceAPI.getResource());

        else if(http_method.equalsIgnoreCase("GET"))
                response= res.when().post(resourceAPI.getResource());
    }


    @Then("API successful response with {string} as {string}")
    public void api_successful_response_with_as(String string, String string2) {
        // Write code here that turns the phrase above into concrete actions

        assertEquals(getJsonPath(response,string),string2);
    }

getJsonPath 方法定义抛出错误的地方

getJsonPath method Definition where it is throwing Error

public String getJsonPath(Response response,String key)
    {
            String resp=response.asString();
            JsonPath   js = new JsonPath(resp);
            return js.get(key).toString();
        }

在此处输入图片描述
Junit错误日志


io.restassured.path.json.exception.JsonPathException:无法在io.restassured.path.json.JsonPath $ ExceptionCatcher.invoke(JsonPath.java:1002)解析JSON文档
io.restassured.path.json.JsonPath $ 4.doParseWith(JsonPath.java:967)上的b $ b io.restassured.path.json.JsonPath $ JsonParser.parseWith(JsonPath.java:1047)$ b上的
$ b在io.restassured.path.json.JsonPath.get(JsonPath.java:202)
在资源.Utils.getJsonPath(Utils.java:56)
在stepDefinations.stepDefination.api_successful_response_with_as(stepDefination .java:117)✽.API处的
成功响应,状态为确定(文件:/// C:/ Users / gaura / eclipse-workspaceNew / APIFramework / src / test / java / features / googlemapsValidation.feature:6)
原因:groovy.json.JsonEx感知:Lexing在第1行,第1行,第1行失败,在读取<时,无法识别有效的JSON值或
标点符号。
在groovy.json.JsonLexer.nextToken(JsonLexer.java:86)
在groovy.json.JsonLexer $ nextToken.call(未知源)
在org.codehaus.groovy.runtime。 callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
在org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
在org.codehaus.groovy.runtime。 callsite.AbstractCallSite.call(AbstractCallSite.java:130)
在io.restassured.internal.path.json.ConfigurableJsonSlurper.parse(ConfigurableJsonSlurper.groovy:97)
在io.restassured.internal.path。 json.ConfigurableJsonSlurper $ parse.callCurrent(未知
源)
在org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51)
在org.codehaus.groovy在org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:185)
处的.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:171)
io.restassured.path.json.JsonPath $ 4 $ 1.method(JsonPath.java:965)
在io.restassured.internal.path.json.ConfigurableJsonSlurper.parseText(ConfigurableJsonSlurper.groovy:83)
io.restassured.path.json.JsonPath $ ExceptionCatcher.invoke(JsonPath.java:1000)
在io.restassured.path.json.JsonPath $ 4.doParseWith(JsonPath.java:967)
在io .restassured.path.json.JsonPath $ JsonParser.parseWith(JsonPath.java:1047)
在io.restassured.path.json.JsonPath.get(JsonPath.java:202)
在resources.Utils .getJsonPath(Utils.java:56)
在stepDefinations.stepDefination.api_successful_response_with_as(stepDefination.java:117)
在java.base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本地
方法)java.base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke(未知
源)java.base / jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(未知$ b)中的
$ b来源)
在java.base / java.lang.reflect.Method.invoke(未知源)
在io.cucumber.java.Invoker.invoke(Invoker.java:27)
在io.cucumber。 java.JavaStepDefinition.execute(JavaStepDefinition.java:27)
在io.cucumber.core.runner.PickleStepDefinitionMatch.runStep(PickleStepDefinitionMatch.java:63)
在io.cucumber.core.runner.TestStep。 executeStep(TestStep.java:64)
在io.cucumber.core.runner.TestStep.run(TestStep.java:49)
在io.cucumber.core.runner.PickleStepTestStep.run(PickleStepTestStep。 java:46)io.cucumber.core.runner.TestCase.run(TestCase.java:51)中的
io.cucumber.core.runner.Runner.runPickle(Runner.java:66)中的

在io.cucumber.junit.PickleRunners $ NoStepDescriptions.run(PickleRunners.java:149)
在io.cucumber.junit.FeatureRunner.runChild(FeatureRunner.java:83)
在io .cucumber.junit.FeatureRunner.runChild(FeatureRunner.java:24)在org.junit上的
。 Runners.ParentRunner $ 4.run(ParentRunner.java:331)
在org.junit.runners.ParentRunner $ 1.schedule(ParentRunner.java:79)
在org.junit.runners.ParentRunner.runChildren( ParentRunner.java:329)org.junit.runners.ParentRunner.access $ 100(ParentRunner.java:66)
org.junit.runners.ParentRunner $ 2.evaluate(ParentRunner.java:293)
在org.junit.runners.ParentRunner $ 3.evaluate(ParentRunner.java:306)
在org.junit.runners.ParentRunner.run(ParentRunner.java:413)
在io。 lemon.junit.Cucumber.runChild(Cucumber.java:185)
在io.cucumber.junit.Cucumber.runChild(Cucumber.java:83)
在org.junit.runners.ParentRunner $ 4.run (ParentRunner.java:331)
在org.junit.runners.ParentRunner $ 1.schedule(ParentRunner.java:79)
在org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
在org.junit.runners.ParentRunner.access $ 100(ParentRunner.java:66)
在org.junit.runners.ParentRunner $ 2.evaluate(ParentRunner.java:293)
在io.cucumber.junit.Cucumber $ RunCucumber.evaluate(Cucumber.java:219)
在org.junit。 Runners.ParentRunner $ 3.evaluate(ParentRunner.java:306)
在org.junit.runners.ParentRunner.run(ParentRunner.java:413)
在org.eclipse.jdt.internal.junit4.runner .JUnit4TestReference.run(JUnit4TestReference.java:89)
在org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:41)
在org.eclipse.jdt.internal .junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:541)
在org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:763)
在org.eclipse .jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:463)
在org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:209)

io.restassured.path.json.exception.JsonPathException: Failed to parse the JSON document at io.restassured.path.json.JsonPath$ExceptionCatcher.invoke(JsonPath.java:1002) at io.restassured.path.json.JsonPath$4.doParseWith(JsonPath.java:967) at io.restassured.path.json.JsonPath$JsonParser.parseWith(JsonPath.java:1047) at io.restassured.path.json.JsonPath.get(JsonPath.java:202) at resources.Utils.getJsonPath(Utils.java:56) at stepDefinations.stepDefination.api_successful_response_with_as(stepDefination.java:117) at ✽.API successful response with "status" as "OK"(file:///C:/Users/gaura/eclipse-workspaceNew/APIFramework/src/test/java/features/googlemapsValidation.feature:6) Caused by: groovy.json.JsonException: Lexing failed on line: 1, column: 1, while reading '<', no possible valid JSON value or punctuation could be recognized. at groovy.json.JsonLexer.nextToken(JsonLexer.java:86) at groovy.json.JsonLexer$nextToken.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:130) at io.restassured.internal.path.json.ConfigurableJsonSlurper.parse(ConfigurableJsonSlurper.groovy:97) at io.restassured.internal.path.json.ConfigurableJsonSlurper$parse.callCurrent(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:171) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:185) at io.restassured.internal.path.json.ConfigurableJsonSlurper.parseText(ConfigurableJsonSlurper.groovy:83) at io.restassured.path.json.JsonPath$4$1.method(JsonPath.java:965) at io.restassured.path.json.JsonPath$ExceptionCatcher.invoke(JsonPath.java:1000) at io.restassured.path.json.JsonPath$4.doParseWith(JsonPath.java:967) at io.restassured.path.json.JsonPath$JsonParser.parseWith(JsonPath.java:1047) at io.restassured.path.json.JsonPath.get(JsonPath.java:202) at resources.Utils.getJsonPath(Utils.java:56) at stepDefinations.stepDefination.api_successful_response_with_as(stepDefination.java:117) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) at io.cucumber.java.Invoker.invoke(Invoker.java:27) at io.cucumber.java.JavaStepDefinition.execute(JavaStepDefinition.java:27) at io.cucumber.core.runner.PickleStepDefinitionMatch.runStep(PickleStepDefinitionMatch.java:63) at io.cucumber.core.runner.TestStep.executeStep(TestStep.java:64) at io.cucumber.core.runner.TestStep.run(TestStep.java:49) at io.cucumber.core.runner.PickleStepTestStep.run(PickleStepTestStep.java:46) at io.cucumber.core.runner.TestCase.run(TestCase.java:51) at io.cucumber.core.runner.Runner.runPickle(Runner.java:66) at io.cucumber.junit.PickleRunners$NoStepDescriptions.run(PickleRunners.java:149) at io.cucumber.junit.FeatureRunner.runChild(FeatureRunner.java:83) at io.cucumber.junit.FeatureRunner.runChild(FeatureRunner.java:24) at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.ParentRunner.run(ParentRunner.java:413) at io.cucumber.junit.Cucumber.runChild(Cucumber.java:185) at io.cucumber.junit.Cucumber.runChild(Cucumber.java:83) at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) at io.cucumber.junit.Cucumber$RunCucumber.evaluate(Cucumber.java:219) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.ParentRunner.run(ParentRunner.java:413) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:89) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:41) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:541) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:763) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:463) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:209)


推荐答案

我尝试了c pom.xml文件中所需jar文件的以下版本的组合及其对我的工作正常。您也可以尝试以下方法:

I tried combination of following versions for required jar files in pom.xml file and its working fine for me. You can also try the same:


  1. JUnit-版本:4.1.2

  2. 黄瓜-Java-info.cukes -版本:1.2.4

  3. 黄瓜-junit-info.cukes-版本:1.2.3

  4. 黄瓜-pico容器-info.cukes-版本:1.2.4

  5. 黄瓜-核心-info.cukes-版本:1.2.6

  6. 黄瓜-jvm deps-info.cukes-版本:1.0.5

  7. Rest Assurd-版本:3.0.2

  1. JUnit- version: 4.1.2
  2. Cucumber - java - info.cukes - version: 1.2.4
  3. Cucumber - junit - info.cukes - version: 1.2.3
  4. Cucumber - pico container - info.cukes - version: 1.2.4
  5. Cucumber - core - info.cukes - version: 1.2.6
  6. Cucumber - jvm deps - info.cukes - version: 1.0.5
  7. Rest Assurd - version: 3.0.2

这篇关于使用POST http方法时,我无法发布Add Place API的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆