java - 出现错误 io.restassured.internal.ValidatableResponseImpl 无法转换为 io.restassured.response.Response

标签 java json rest-assured

运行测试时出现以下错误。我正在尝试将 API 响应打印到文件,但是测试失败并引发错误。调用的响应采用 JSON 格式,采用 GZIP 格式。 任何想法和想法都将不胜感激。

错误: io.restassured.internal.ValidatableResponseImpl 无法转换为 io.restassured.response.Response

这是我的代码:

package TestPackage;

import org.testng.Assert;
import org.testng.annotations.Test;
import static io.restassured.RestAssured.given;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
import io.restassured.response.Response;


public class ApiServerTest {

    String baseQAURL = "http://some:8282/getworkitemwithtime";


    @Test
    public void apiServerTest() throws FileNotFoundException{

        Response srvrResponse = (Response) given().
                                param("starttime", "2017-08-10T11:17:00").
                                param("endtime", "2017-08-10T11:17:01").
                                when().
                                get(baseQAURL).
                                then().
                                log().
                                all();

            System.out.println(srvrResponse.getStatusCode());
            Assert.assertEquals(srvrResponse.getStatusCode(), 200);

            srvrResponse.asString();
            PrintStream out = new PrintStream(new FileOutputStream("C:\\Test\\output.txt"));
            System.setOut(out);


    }

}

最佳答案

评论是正确的 - 您需要提取响应以在请求上下文之外使用。

实际上你可以优化你的代码:

import io.restassured.config.LogConfig;
import org.testng.annotations.Test;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintStream;

import static io.restassured.RestAssured.config;
import static io.restassured.RestAssured.given;

public class TestLogging {

    String baseQAURL = "https://httpbin.org/get";

    @Test
    public void apiServerTest() throws FileNotFoundException {
        config = config().logConfig(new LogConfig().defaultStream(new PrintStream(new File("C:\\Test\\output.txt"))));

        given().
                param("starttime", "2017-08-10T11:17:00").
                param("endtime", "2017-08-10T11:17:01").
                when().
                get(baseQAURL).
                then().
                log().
                all()
                .assertThat().statusCode(200);
    }
}

关于java - 出现错误 io.restassured.internal.ValidatableResponseImpl 无法转换为 io.restassured.response.Response,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45624726/

相关文章:

javascript - DropZone.js 判断何时上传成功

javascript - DataTables Javascript数据源 'No Data Available'

java - 放心java.net.SocketException

java - 计算数组中数字的频率

java - 我可以在本地无线网络上制作安卓游戏吗?

android - 存储自定义对象的数组列表

java.lang.ClassCastException : java. util.LinkedHashMap 无法转换为 com.testing.models.Account

RestAssured oAuth2 http 状态码 401

java - 从 Eclipse 推送到 github 时项目丢失

java - 我该如何诊断这个长时间运行的java程序中的内存泄漏?