使用 Rest Assured 进行测试与使用 Rest Assured 和 TestNG。有人可以解释两者之间的区别吗?

Using Rest Assured to test vs using Rest Assured & TestNG. Can someone explain the difference between the two?

他们似乎都在有效地做同一件事。我弄乱了它并使用了不同的值,并且我得到了两个正确的pass/fail。

  @Test
    public static void test_get(){
        RequestSpecification rqs =  new RequestSpecBuilder()
                .setBaseUri("http://localhost:8080")
                .setBasePath("/app/")
                .build();

        ResponseSpecification rss = new ResponseSpecBuilder()
                .expectStatusCode(200)
                .build();

        Response response =  given(rqs, rss).request("GET", "videogames");
    }

@Test
    public static void test_get(){
        RequestSpecification rqs =  new RequestSpecBuilder()
                .setBaseUri("http://localhost:8080")
                .setBasePath("/app/")
                .build();

        Response response =  given(rqs).request("GET", "videogames");

        assertEquals(response.getStatusCode(), 200);
    }

两者之间存在一些差异,当您使用 Rest Assured 的内置断言一段时间后,这些差异会变得更加明显。

需要快速清楚地检查响应体?有 Hamcrest 匹配器。

将请求及其断言保存在一个大方法链中也有助于组织代码并使读取请求更容易。

Rest Assured 允许您像这样安排测试:

RestAssured.given().contentType(ContentType.JSON)
               .when().get(endpoint)
               .then().body("firstname",containsString("Mark"));

这使您可以非常清晰地阅读整个请求和断言life-cycle。发出请求,做断言。几乎不可能对正在发生的事情感到困惑。

在我看来,如果您使用 Rest Assured,您应该使用它的断言方式。它是专门用于处理 API 请求和响应的工具,其方式与 TestNG 之类的工具不同。

代码片段取自:[https://qaautomation.expert/2021/06/14/assertion-of-json-in-rest-assured-using-hamcrest][1]