【问题标题】:How to populate multiple query parameters in an API using Cucumber Scenario outline如何使用 Cucumber Scenario outline 在 API 中填充多个查询参数
【发布时间】:2019-03-15 11:03:52
【问题描述】:

我正在使用 Rest Assured,结合 Cucumber 来测试具有多个查询参数的 API。比方说,API 是

http://dev.abcd.com/mainpath?param1=value1&param2=value2&param3=value3

我想根据 Cucumber 场景改变参数值

Scenario Outline: API returns successfull response on different parameters
    
    Given Main path API is hit 
    When "<param1>","<param2>","<param3>" are passed
    Then the response returns a status code of 200

Examples:
  |param1|param2|param3|
  |value1|value2|value3|
  |value4|value5|value6|

我浏览了文档和另一个示例here,但现在不推荐使用参数方法,而且我不确定是否可以这样做。

大部分教程和文档直接指定以given().queryParam().then() 格式传递参数,我将不得不硬编码参数,这是我不想要的。

关于这方面的任何指示都会有所帮助。

【问题讨论】:

    标签: cucumber rest-assured web-api-testing


    【解决方案1】:

    我稍微更新了功能文件并使用了cucumber data tables 功能来获取值。已包含一个小sn-p 使用放心根据您的URI 拨打电话

    功能

    Given I perform GET operation on URL with param values
    | param1 | param2 | param3 |
    | Value1 | Value2 | Value3 |
    | Value4 | Value5 | Value6 |
    

    步骤定义:

    @Given("^I perform GET operation on URL with param values$")
    public void i_perform_GET_operation_on_URL_with_param_values(DataTable arg1) {
    
        List < Map < String, String >> list = arg1.asMaps(String.class, String.class);
        for (int i = 0; i < list.size(); i++) {
            String Param1 = list.get(i).get("param1");
            String Param2 = list.get(i).get("param2");
            String Param3 = list.get(i).get("param3");
    
            String response = RestAssured.get("http://dev.abcd.com/mainpath?param1=" + Param1 + "&param2=" + Param2 + "&param3=" + Param3).then().extract().asString();
            //Edit suggested by Vamsi Ravi
            //String response = RestAssured.given().baseUri("http://dev.abcd.com").basePath("/mainpath").queryParam("param1",Param1).queryParam("param2",Param2).queryParam("param3", Param3).when().get().then().extract().asString();
    
            System.out.println("The Content is " + response);
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-15
      • 1970-01-01
      • 1970-01-01
      • 2020-07-03
      • 1970-01-01
      相关资源
      最近更新 更多