Cucumber post API

发布时间 2023-03-22 21:08:51作者: 筱筱的春天

1. 接口

Request URL: http://10.194.109.125/UserHabit/ICSUI/QuickLogin
Request Method: POST
Status Code: 204 No Content

 

2. feature 文件

Feature: API test


  Scenario: Login with role
    Given  LoginWithRole
      |Environment       |DT5                   |
      |UserId            |allencckan            |
      |BusinessFunctionId|2                     |
      |BusinessFunction  |BOCC                  |
      |RoleId            |16                   |
      |RoleName          |Assistant BOCC Manager|
      |FromEntry         |/QuickAccess/ICSUI    |
    Then LoginWithRoleSuccess

 

3. TestRunner文件

package APITestCase.TestRunner;

import io.cucumber.junit.Cucumber;
import io.cucumber.junit.CucumberOptions;
import io.cucumber.testng.AbstractTestNGCucumberTests;
import org.junit.runner.JUnitCore;
import org.junit.runner.RunWith;


@RunWith(Cucumber.class)
@CucumberOptions(
        features = "src/APITestCase/Resources/",
        glue = {"Login/"},
        plugin = {"pretty","json:src/TestResult/cucumber.json","junit:src/TestResult/cucumber.xml"},
        tags = "@Smoke"
//        dryRun = true
)

//
public class TestRunner  extends AbstractTestNGCucumberTests{
//    public static void main(String[] args){
//        //System.out.println("args");
//        //System.out.println(args);
////        JUnitCore.main("TestRunner.TestRunner");
//    }
}

 

4. 公共方法封装文件

package APITestCase.APICommonMethods;

import static io.restassured.RestAssured.*;

import io.restassured.response.Response;
import io.restassured.specification.RequestSpecification;

public class commonMethods {
    public Response postRequest(String baseURI, String basePath, String methodPath, RequestSpecification requestSpecification){
        Response postResponse = with().spec(requestSpecification).baseUri(baseURI).basePath(basePath).log().all().when().post(methodPath);
        return postResponse;
    }
}

 

5. Given Then 方法

package APITestCase.Login;

import APITestCase.APICommonMethods.commonMethods;
import io.cucumber.java.en.Given;
import io.cucumber.java.en.Then;
import io.restassured.builder.RequestSpecBuilder;
import io.restassured.response.Response;
import io.restassured.specification.RequestSpecification;

import java.util.HashMap;
import java.util.Map;

import static io.restassured.RestAssured.given;

public class LoginWithRole {
    public Response loginWithRoleResponse;
    @Given("LoginWithRole")
    public void loginRole(Map<String, String> dataTable){
        commonMethods cm = new commonMethods();
        String baseURI = "http://10.194.109.125";
        String basePath = "UserHabit";
        String methodPath = "ICSUI/QuickLogin";
        Map<String,String> headerMap =new HashMap();
        headerMap.put("Accept", "application/json,text/javascript");
        headerMap.put("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
        RequestSpecification loginRole = new RequestSpecBuilder().addHeaders(headerMap).addParams(dataTable).build();
        Response loginRoleResponse = cm.postRequest(baseURI,basePath,methodPath,loginRole);
        this.loginWithRoleResponse = loginRoleResponse;
    }

    @Then("LoginWithRoleSuccess")
    public void logninWithRole(){
        this.loginWithRoleResponse.then().statusCode(204);
    }
}