最近想用java做点接口测试,偶然间发现了这个封装的框架,真的太好用啦
引用专栏:
https://blog.csdn.net/qq_34400745/category_9368594.html
pom.xml文件中引入依赖
<!-- 引用testng包 开始-->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.14.3</version>
<scope>test</scope>
</dependency>
<!-- 引用testng包 结束-->
<!-- 引用rest-assured包 开始-->
<dependency>
<groupId>com.jayway.restassured</groupId>
<artifactId>rest-assured</artifactId>
<version>2.8.0</version>
</dependency>
<!-- 引用rest-assured包 结束-->
静态引入包
import static com.jayway.restassured.RestAssured.*; //RestAssured包
import static org.hamcrest.Matchers.equalTo; //body里做断言用到的包
import static org.hamcrest.Matchers.hasXPath; //body里做xpath断言用到的包
Demo-01
public class BDDTest {
@Test(testName = "不带头和参数的请求",enabled = false)
public void test(){
given().
get("http://basic-data-management.makenv.net/basic-data-management/basic/city/getProvinceAndArea").
then().
statusCode(200).body("code",equalTo("200"));
}
@Test(testName="单个参数的请求",enabled = false)
public void test1(){
given().
param("userId",2).
when().
get("https://jsonplaceholder.typicode.com/posts").
then().
statusCode(200).log().all();
}
@Test(testName = "多个参数的请求")
public void test2(){
Map<String,String> parameters=new HashMap<>();
parameters.put("userId", "2");
parameters.put("id", "14");
given()
.params(parameters)
.when().log().all()
.get("http://jsonplaceholder.typicode.com/posts")
.then()
.statusCode(200).log().all();
}
@Test(testName = "指定请求头")
public void test3(){
Map<String,String> parameters=new HashMap<>();
parameters.put("userId", "2");
parameters.put("id", "14");
given()
.header("accept-encoding", "gzip,deflate")
.params(parameters)
.when().log().all()
.get("http://jsonplaceholder.typicode.com/posts")
.then()
.statusCode(200).log().all();
}
@Test(testName = "指定一组请求头")
public void test4(){
Map<String,String> headers=new HashMap<>();
headers.put("accept-encoding", "gzip,deflate");
headers.put("accept-language", "zh-CN");
Map<String,String> parameters=new HashMap<>();
parameters.put("userId", "2");
parameters.put("id", "14");
given()
.headers(headers)
.params(parameters)
.when().log().all()
.get("http://jsonplaceholder.typicode.com/posts")
.then()
.statusCode(200).log().all();
}
}
Demo-02
public class BDDTest02 {
@Test(testName = "响应内容是XML数据,断言编写",enabled = false)
public void test01(){
given()
.get("http://www.thomas-bayer.com/sqlrest/CUSTOMER/10/")
.then()
.body("CUSTOMER.CITY",equalTo("Dallas"),"CUSTOMER.ID", equalTo("10"))
.log().all();
}
@Test(testName = "多个验证点一行代码的写法",enabled = false)
public void test02(){
given()
.get("http://www.thomas-bayer.com/sqlrest/CUSTOMER/10/")
.then()
.body("CUSTOMER.text()",equalTo("10SueFuller135 Upland Pl.Dallas")).log().all();
}
@Test(testName = "xpath表达式完成断言判断")
public void test03(){
given()
.get("http://www.thomas-bayer.com/sqlrest/INVOICE/")
.then()
.body(hasXPath("/INVOICEList/INVOICE[text()='20']")).log().all();
}
}
下次再战,还有一个小时快乐写用例