我们如何使用基于Rest Assured的框架来实现API测试用例的并行执行(GET/POST)



请找到以下API请求的基类。由于静态请求/响应,我无法进行并行测试执行。我的框架是基于Cucumber、Junit、Java、Json的请求。

public class APIreq {
private static Integer statusCode = 0;
private static String statusLine = null;
private static String resource = null;
protected static Response getResponse;
protected static Response postResponse;
public static JSONObject request = null;
public static JSONObject fileRequest = null;
protected static void postRequest(JSONObject requestBody, String endpoint) throws IOException {
resource1 = endpoint;
request = requestBody;
HashMap<String, String> headerMap = new HashMap<>();
headerMap.put( "Content-Type", "application/json" );
headerMap.put("Authorization",ABCD);
try {
postResponse = RestAssured.given()
.log()
.all()
.headers( headerMap )
.body( request.toString() )
.post( Hooks.targetURL + resource1 )
.then()
.extract()
.response();
postResponse.prettyPrint();
statusCode = postResponse.getStatusCode();
statusLine = postResponse.getStatusLine();
} catch (Exception e) {
logger.error( "Error: " + e.getMessage() );
}
}
public static void assertJsonPostReq(String attribute, String expectedValue) {
io.restassured.path.json.JsonPath jsonPathEvaluator = postResponse.jsonPath();
String attributeValue = jsonPathEvaluator.get(attribute);
SYSO( attribute + ": Expected: " + expectedValue + ", Actual: " + attributeValue );
Assert.assertTrue(attributeValue.contains(expectedValue));
}

}

诚实的意见

如果你只是想自动化并行API测试,那么最好尝试Karate,这可能是一个开销,但从长远来看是值得的

空手道-并行执行过程

GitHub链接

空手道BDD测试用例场景示例

同样,基于您目前使用Cucumber作为测试框架,您将很容易理解这一点,因为Karate使用BDD语法。您还可以使用Cucumber HTML报告工具来创建报告。

相关内容

  • 没有找到相关文章

最新更新