Java 接口测试 --Rest assured框架用法

依赖地址

<dependency>
    <groupId>io.rest-assured</groupId>
    <artifactId>rest-assured</artifactId>
    <version>3.0.2</version>
</dependency>
<dependency>
    <groupId>io.rest-assured</groupId>
    <artifactId>json-path</artifactId>
    <version>3.0.2</version>
</dependency>
<dependency>
    <groupId>io.rest-assured</groupId>
    <artifactId>json-schema-validator</artifactId>
    <version>3.0.2</version>
</dependency>
<dependency>
	<groupId>org.testng</groupId>
	<artifactId>testng</artifactId>
	<version>7.1.0</version>
	<scope>compile</scope>
</dependency>

一、get请求用法

import static io.restassured.RestAssured.get;
import static io.restassured.RestAssured.given;
public static void main(String[] args) {
    public void gethome() {
        Response response = get("/WoniuBoss4.0/");
    }
}

二、post请求用法

方式一:(参数也可以一起传 注意使用params)

public void login() {
        Response response = given()
                .params("userName","WNCD000","userPass","woniu123","checkcode","0000","remember","Y")
                .post("/WoniuBoss4.0/login/userLogin");
    }

方式二:(参数也可以分开传)

public void login() {
        Response response = given()
                .param("userName", "WNCD000")     //登录需要的参数
                .param("userPass", "woniu123")
                .param("checkcode", "0000")
                .param("remember", "Y")
                .post("/WoniuBoss4.0/login/userLogin");

方式三:(用body字符串传参,推荐。类型是application/json 则只能用body()管理参数)

        Response response = given()
                .contentType("application/x-www-form-urlencoded")
                .body("userName=WNCD000&userPass=woniu123&checkcode=0000&remember=Y")
                .post("/WoniuBoss4.0/login/userLogin");

请求参数为json的发送方式

    public void baidu(){
        HashMap<String,Object> data=new HashMap<String, Object>();
        data.put("id",6040);     //请求参数为json的发送方式
        data.put("title","通过代理安装 appium");
        data.put("name","思寒");    //需要根节点可以再建立个MAP把data套进去
        Response response=given().contentType(ContentType.JSON)
                .body(data)
                .post("http://www.baidu.com");
    }

header,cookie设置

    public void queruRole() {
        Response response = given()
                .cookies(cookie)   //设置cookie
                .header("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36")
                .contentType("application/x-www-form-urlencoded")
                .body("pageSize=10&pageIndex=1&userName=&empName=")
                .post("/WoniuBoss4.0/user/queryUser");
        System.out.println(response.jsonPath().getString("totalPage"));//解析json
    }

全代码

import io.restassured.RestAssured;
import io.restassured.config.SSLConfig;
import io.restassured.response.Response;
import java.util.Map;
import static io.restassured.RestAssured.get;
import static io.restassured.RestAssured.given;
public class LoginTest {
	static String baseURI="http://192.168.1.106:8080";
	static {
        RestAssured.proxy("127.0.0.1",8888);    //用fiddler抓包
    }
    Map<String, String> cookie;   //接受cookie
    public static void main(String[] args) {
        LoginTest login = new LoginTest();
        login.login();
        login.queruRole();
    }
    public void gethome() {
        Response response = get("/WoniuBoss4.0/");
    }
    public void login() {
        Response response = given()
                .contentType("application/x-www-form-urlencoded")
                // 配置SSL 让所有请求支持所有的主机名
                .config((RestAssured.config().sslConfig(new SSLConfig().relaxedHTTPSValidation())))
                .body("userName=WNCD000&userPass=woniu123&checkcode=0000&remember=Y")
                .post("/WoniuBoss4.0/login/userLogin");
        cookie = response.getCookies();   //获取cookie
    }
    public void queruRole() {
        Response response = given()
                .cookies(cookie)   //设置cookie
                .contentType("application/x-www-form-urlencoded")
                .body("pageSize=10&pageIndex=1&userName=&empName=")
                .post("/WoniuBoss4.0/user/queryUser");
        response.getBody().print(); //获得body注意不需要打印了
        System.out.println(response.jsonPath().getString("totalPage"));//解析json
    }
}

三、零碎指令

1.获得响应体,是内存地址

response.getBody() 

2.打印响应body,可以用字符串类型对象接收,第二个不打印

response.print();
response.getBody().asString()

3.获取状态码

response.getStatusCode()

4.获取具体的某一段cookie

response.getCookie("JSESSIONID")

5.获取所有的cookies 得到一个集合

response.getCookies();   //获取cookie

解析json

response.jsonPath().get("totalPage")
response.jsonPath().getString("totalPage")   //获得json报文中的值

利用fiddler抓取发送出去的请求

RestAssured.proxy("127.0.0.1",8888);    //这是设置全局的用fiddler抓包,8888是fiddler设置好的端口
given().proxy("127.0.0.1",8888);     //单个接口
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值