【问题标题】:Getting response as session expired for and API在会话过期和 API 时获取响应
【发布时间】:2023-02-07 22:01:39
【问题描述】:

我有两个类 DB_SearchElastic_Search,它们从 STAGE 和 PROD 生成响应,但是当我使用 testng.xml 文件并行运行这两个类时,一个类得到了完整的响应,但另一个类得到了 session-expired -回复。

这是两个类:

public class DB_Search {

    @Test
    public void FinBlock() throws IOException, ParseException {

        SessionFilter session = new SessionFilter();
        RestAssured.baseURI = "login_api";
        String Response = given().auth().preemptive().basic("******", "****").filter(session).when()
                .get(RestAssured.baseURI).then().extract().response().getCookie("RAY_SESSION_ID");

        Response resp = given().cookie("RAY_SESSION_ID", Response).filter(session).when().get("API").then().extract()
                .response();

        FileWriter filewriter = new FileWriter("C:\\Users\\***\\eclipse-workspace\\API_test\\Files\\output.json");
        BufferedWriter bufferedWriter = new BufferedWriter(filewriter);
        bufferedWriter.write(resp.asString());
        bufferedWriter.close();
    }
}
public class Elastic_search {

    @Test
    public void FinBlock() throws IOException, ParseException {
        SessionFilter session = new SessionFilter();
        RestAssured.baseURI = "Login_API";
        String Response = given().auth().preemptive().basic("****", "***").filter(session).when()
                .get(RestAssured.baseURI).then().extract().response().getCookie("RAY_SESSION_ID");

        Response resp = given().cookie("RAY_SESSION_ID", Response).filter(session).when().get("main_api").then()
                .extract().response();

        FileWriter filewriter = new FileWriter("C:\\Users\\***\\eclipse-workspace\\API_test\\Files\\output1.json");
        BufferedWriter bufferedWriter = new BufferedWriter(filewriter);
        bufferedWriter.write(resp.asString());
        bufferedWriter.close();

    }
}

【问题讨论】:

  • 嗨,这两个课程中的哪一个确实失败了?
  • @Z-100 有时它会 db_search 有时是 elastic_search 类。
  • 那么两个课程都失败了,只是不是同时失败了? RestAssured.baseURI 值是故意不同的吗?测试是否独立进行? - 如果您一次只开始一项测试,请手动进行;他们都工作吗?
  • @Z-100 两个类都不会失败,任何一个都会失败,RestAssured.baseURI 是登录 API,因此两个类都会不同。如果我独立运行这些类,我将得到响应。
  • 你以前试过调试吗?我对 resp 的值感兴趣,就在调试器命中它之后。在调试模式下同时运行这两个测试,并在 Response resp = ... 行创建一个换行符 -> 然后检查响应的值。

标签: java json rest-assured


【解决方案1】:

您的两个测试都为静态变量 RestAssured.baseURI 设置了值。因此你的线程会干扰。

要解决这个问题,您应该在每个测试中的特定请求配置中设置基本路径,或者使用 get 中端点的完整路径。

【讨论】:

    猜你喜欢
    • 2016-01-07
    • 2014-08-14
    • 2018-01-31
    • 2014-05-14
    • 1970-01-01
    • 2016-02-02
    • 2015-10-24
    • 2017-11-08
    • 2013-07-08
    相关资源
    最近更新 更多