我们如何在放心的情况下传递多个标题?

时间:2016-01-22 00:04:31

标签: http-headers rest-assured

我是新来的放心和Java,我正在尝试做一个非常基本的测试,检查响应是200 ok的API。 请问您能告诉我在下面的脚本中需要更改什么才能传递多个标题ID,Key和ConId?

import org.junit.Test;
import com.jayway.restassured.*;
import com.jayway.restassured.http.ContentType;
import static org.hamcrest.Matchers.*;
import static com.jayway.restassured.RestAssured.*;

public class APIresponse

{

    public static void main(String[] args) 
        {
            APIresponse apiresponse = new APIresponse();
            apiresponse.response();
        }

    @Test
    public void response ()
    {
        baseURI="http://testme/api/";
        given().
            header("Id", "abc"). 
            param("Key", "NuDVhdsfYmNkDLOZQ").
            param("ConId", "xyz").
        when().
            get("/uk?Id=DT44FR100731").
        then().
            contentType(ContentType.JSON).
            body("response.code", equalTo("200"));
    }

}

5 个答案:

答案 0 :(得分:12)

添加多个标头的最简单方法是在.header(headername,headervalue)

之后多次重复.given()
given().
  header("Id", "abc").
  header("name","name").
  header("","")
  ...

您可以在此github link的测试套件中找到使用REST-Assured框架传递标头的不同方法。

修改

验证Rest-Assured中的响应状态:

expect().statusCode(200),log().ifError().given()...... 

或者选择一个如何测试此github link

的响应标头的示例

答案 1 :(得分:3)

您还可以创建和添加多个标题的地图对象,如下所示

    Header h1= new Header("Accept", "*/*");
    Header h2 = new Header("Accept-Language", "en-US");
    Header h3 = new Header("User-Agent", "Mozilla/5.0");
    List<Header> list = new ArrayList<Header>();
    list.add(h1);
    list.add(h2);
    list.add(h3);

    Headers header = new Headers(list);
    request.headers(header);

答案 2 :(得分:0)

或者您可以使用RestAssured中的Headers(),它支持您同时添加多个标题以进行请求。

Headers description

答案 3 :(得分:0)

替换如下:

.c

答案 4 :(得分:0)

这是我如何使用 RequestSpecification 并添加了两个标头。

@Test
public void PostRequest() {
    String appKey = "777";// userID is unique
    RequestSpecification myreq = RestAssured.given();
    myreq.header("Content-Type", "application/json");
    myreq.header("Authorization", "Bearer 777");
    // Create Json Object to store attributes
    JSONObject myjson = new JSONObject();
    myjson.put("app_key", appKey);
    myjson.put("status", "critical")
    // Attach those attributes to Body after convert them in to JsonString
    myreq.body(myjson.toString());
    // Post the request with URL
    Response MyRes = myreq.post("https://api.bigpanda.io/data/v2/alerts");
    int ActualStatuscode = MyRes.getStatusCode();
}