繁体   English   中英

如何跨黄瓜步骤传递数据(Test Automation放心的API测试)?

[英]How to pass data across cucumber steps (Test Automation rest assured API test)?

我创建了一个api测试,该测试命中了一个端点并收到了响应,但是我正在努力在另一个黄瓜步骤中使用此响应。

我的第一步使用以下方法:

public Response booking(SharedStepData sharedStepData, String path, BookingType bookingType) throws IOException {
    String url = "https://example.net." + System.getProperty("endpoint") + "/v10/" + path + "Booking";

    RestAssured.useRelaxedHTTPSValidation();
    String payload = createBookingPayload(sharedStepData, bookingType);
    Response response = RestAssured
            .given().contentType(ContentType.JSON)
            .log().all()
            .body(payload)
            .when().post(url)
            .thenReturn();

    ResponseBody body = response.getBody();;
    return response;
}

我知道需要保存此响应,然后在另一步方法中使用它来执行另一项操作,例如使用响应中的特定数据击中另一个端点,有什么想法吗?

您可以在此处使用封装逻辑,并可以从其他类访问变量

public class Test{

    private String bookingResponse;

    public String getBookingResponse(){
        return bookingResponse;
    }

    public void setBookingResponse(String response){
        bookingResponse=response;
    } 
}

调用第一种方法后,可以更新如下的bookingResponse值

Test test=new Test();

test.setBookingResponse(<<Call your first Response Method>>);

每当您要访问上述响应时,都可以使用test.getResponse()方法。 如果您使用相同的Test类实例,它将给出以上响应。

在步骤之间共享状态的方法是将其存储在实现步骤的类中的字段中。

当步骤在不同的类中实现时,在步骤之间共享状态的方法是在两个实现类中共享一个公共对象。 在Java中,惯用的方法是使用依赖项注入。

我已经写了几个关于该主题的博客文章,它们可能对您有用。 最简单的解决方案是使用PicoContainer。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM