线下课第二期_接口测试入门_20180414

有疑问请回帖,不要在zoom或者直播上提问

创建项目

maven项目

添加2个依赖即可

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.testerhome.stuq.restassured</groupId>
    <artifactId>demo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>io.rest-assured</groupId>
            <artifactId>rest-assured</artifactId>
            <version>3.0.6</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>

    </dependencies>

    <properties>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.source>1.8</maven.compiler.source>
    </properties>
</project>

RestAssured入门代码

import org.junit.Test;

import static io.restassured.RestAssured.*;
import static io.restassured.matcher.RestAssuredMatchers.*;
import static org.hamcrest.Matchers.*;
public class Xueqiu {
   @Test
   public void testSearch(){
       //信任https的任何证书
       useRelaxedHTTPSValidation();

       //given开头表示输入数据
       given().log().all()
           //query请求
           .queryParam("code", "sogo")
           //头信息
           .header("Cookie", "device_id=864d4cb52ace61737d69da102e7e996d; __utmz=1.1516097049.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); s=fv11u1xhjc; xq_a_token=229a3a53d49b5d0078125899e528279b0e54b5fe; xq_a_token.sig=oI-FfEMvVYbAuj7Ho7Z9mPjGjjI; xq_r_token=8a43eb9046efe1c0a8437476082dc9aac6db2626; xq_r_token.sig=Efl_JMfn071_BmxcpNvmjMmUP40; Hm_lvt_1db88642e346389874251b5a1eded6e3=1523358353; u=851523358353984; __utmc=1; __utma=1.1295158553.1516097049.1523673254.1523696123.10; __utmt=1; Hm_lpvt_1db88642e346389874251b5a1eded6e3=1523696133; __utmb=1.3.10.1523696123")
       //表示触发条件
       .when()
           .get("https://xueqiu.com/stock/search.json")
       //对结果断言
       .then()
           .log().all()
           //状态码断言
           .statusCode(200)
           //字段断言
           .body("stocks.name", hasItems("搜狗"))
           .body("stocks.code",hasItems("sogo"));
   }
}

作业

把成功的截图回复此贴

作业一

用nc或者telent手工发送http协议数据包,模拟访问百度的/index.html 了解http协议的过程

作业二

用charles或者burpsuite在android模拟器上抓雪球的接口请求

作业三

篡改雪球的接口返回内容,把特定的文本变成自己的名字或者id,比如
![](/uploads/photo/2018/850dda46-7b9d-4c21-ab86-f76c1cb21831.png!large =300x)

作业四

使用maven项目,找一个雪球的接口,发送请求并断言结果里面的字段

常见的http测试用例