web-dev-qa-db-ja.com

Restassuredを使用した認証を必要とするRestAPIをテストする方法

Json応答を取得する前に、認証を必要とするRestAPIをテストしたいと思います。 Forexa。 Rest APIにアクセスしたい場合: http://192.168.xx.xx:9000/dashboards/all/list/m1/p1/sch1

その後

まだログインしていない場合は、ログインHTMLページにリダイレクトされ、ログイン後、Json出力が表示されます。

今、私はJavaで同じように、安心のコードを書きたいと思います。これを使用してログインできるかどうかはわかりません。

だから私は同じための簡単なコードを書いた::

public class TestNGSimpleTest1 {

    @Test
    public void testAdd() {
            //expect().
            //statusCode(400).
            //body("Status", equalTo("Success")).
            //when().
            //get("http://localhost:9000/dashboards/all/list/m1/p1/sch1");
            //System.out.println("Response received is ::" +res);   
            Response res = get("http://localhost:9000/dashboards/all/list/m1/p1/sch1");
            assertEquals(200,res.getStatusCode());
            String json = res.asString();
            System.out.println("Response received is :: " +json);
    }

したがって、ここでは、Json応答を取得する代わりに、HTMLソースページ応答を取得しています。

だから、私の質問は、可能であれば、ログインしてJsonの応答を取得する方法です。

前もって感謝します。

7
undefined

JIRAのデフォルト認証を使用している場合は、プリエンプティブ認証が必要です。以下はサンプルコードです。

RestAssured.baseURI = System.getProperty("baseurl");
PreemptiveBasicAuthScheme authScheme = new PreemptiveBasicAuthScheme();
authScheme.setUserName("admin");
authScheme.setPassword("admin");
RestAssured.authentication = authScheme;

サンプルコードは、送信するすべてのリクエストの前に認証を行うのに役立ちます。

8
Powpow

この方法はうまく機能します。ログイン資格情報の送信に加えて、200ステータスコードも同時に確認します

given().auth().basic(username, password).when().get("/uri/").then().statusCode(200);
3
user8715994

あなたはこれを試すことができます:

given().auth().preemptive().basic(username, password).when().get("{yourApiURL}").then().statusCode(200);
2
Rafa

あなたはおそらくフォーム認証を探しています:

given().auth().form("username", "password"). .. 

オプションで、HTMLログインページがどのように表示されるかを説明する3番目のパラメーターとしてFormAuthConfigのインスタンスを提供する必要があります。

1
Johan

以下のコードは私のために働いた:

JsonPath response = RestAssured
.given()
    .header("Authorization", "Basic " + encodedString)
    .when()
    .get(GET_Push_API)
.then()
    .statusCode(401)
    .extract().jsonPath();

参照-例14: https://www.programcreek.com/Java-api-examples/index.php?api=com.jayway.restassured.RestAssured

0
Thanga