Cucumber get API
1. 测试接口
1 2 3 | Request URL: http: / / 10.194 . 109.125 / EnvironmentMonitor / ICSQuickLogin Request Method: GET Status Code: 200 OK |
2. Test Runner 文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | 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" ); / / } } |
3. feature 文件
1 2 3 4 5 | Feature: API test Scenario: Login API first page Given Get Login Then Check Login |
4. Given Then 方法文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | package APITestCase.Login; import APITestCase.Login.data.EnviData; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; import groovy.util. Eval ; 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.lang.reflect. Type ; import java.util.HashMap; import java.util.Iterator; import java.util. List ; import java.util. Map ; import static io.restassured.RestAssured.given; import static org.hamcrest.Matchers.containsString; public class LoginAPI { public Response loginFirstPageResponse; @Given ( "Get Login" ) public void loginFO(){ String baseURI = "http://10.194.109.125" ; String basePath = "EnvironmentMonitor" ; String methodPath = "ICSQuickLogin" ; Map <String,String> headerMap = new HashMap(); / / headerMap.put( "X-Requested-With" , "XMLHttpRequest" ); headerMap.put( "Accept" , "application/json,text/javascript" ); RequestSpecification loginAPILink = new RequestSpecBuilder().addHeaders(headerMap).build(); / / String cls = loginAPILink.getClass().getName(); Response loginResponse = given().spec(loginAPILink).baseUri(baseURI).basePath(basePath).log(). all ().get(methodPath); / / Response loginResponse = given().spec(loginAPILink).body("").baseUri(baseURI).basePath(basePath).log(). all ().get(methodPath); String bodyStr = loginResponse.asString(); System.out.println( "no format:" + bodyStr); this.loginFirstPageResponse = loginResponse; / / transfer string response to List object Type type = new TypeToken< List <EnviData>>(){}.getType(); Gson gson = new GsonBuilder().setPrettyPrinting().create(); List <EnviData> responsListObj = gson.fromJson(bodyStr, type ); String responseFromListToString = gson.toJson(responsListObj); / / System.out.println( "format:" + responseFromListToString); / / with json format Iterator<EnviData> it = responsListObj.iterator(); while (it.hasNext()){ EnviData listElement = it. next (); System.out.println( "Deserializatforion -- Environment: " + listElement.getEnvironment()); listElement.setIsSSO(false); / / if (listElement.getEnvironment().equals( "DT5" )){ / / listElement.setIsSSO(false); / / } } String responseFromListToStringUpdate = gson.toJson(responsListObj); System.out.println( "format new value :" + responseFromListToStringUpdate); / / with json format } @Then ( "Check Login" ) public void checkLoginResponse() { this.loginFirstPageResponse.then().body( "[1].Alias" , containsString( "DT" )); } } |
从feature方法执行
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2018-03-21 http://xx.xxx.xxx.xx:8080/把路径设置成http服务访问的形式
2018-03-21 Scrapy: 初识Scrapy