[英]How to target a specific Cucumber Feature File (Automation Test) via Jenkins?
[英]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.