线下课第二期_接口测试进阶_20180421

有问题请回帖

schema校验

https://testerhome.com/api/v3/topics/6040.json

<dependency>
    <groupId>io.rest-assured</groupId>
    <artifactId>json-schema-validator</artifactId>
    <version>3.1.0</version>
</dependency>

添加导入

import static io.restassured.module.jsv.JsonSchemaValidator.*;

filter机制

    @Test
    public void testJsonInBase64(){
        given().filter( (req, res, ctx)->{
            Response resOrigin=ctx.next(req, res);
            ResponseBuilder responseBuilder=new ResponseBuilder().clone(resOrigin);
            //responseBuilder.setBody("{ \\"SOGO\\": { \\"name\\" : \\"搜狗\\"} }");
            String decodedContent=new String(
                    Base64.getDecoder().decode(
                            resOrigin.body().asString().trim()
                    )
            );
            responseBuilder.setBody(decodedContent);
            Response resNew=responseBuilder.build();

            return resNew;
        })
                //.get("https://xueqiu.com/v4/stock/quote.json?code=SOGO")
                .get("http://127.0.0.1:8000/base64.json").prettyPeek()
        .then()
                .statusCode(200)
                .body("SOGO.name", equalTo("搜狗"));
    }

#记得带上自己的cookie信息,从chrome开发者工具里自动生成这个命令
curl 'https://xueqiu.com/v4/stock/quote.json?code=SOGO'    | base64

swagger

官网:https://swagger.io/

图形界面的swagger editor

git clone https://github.com/swagger-api/swagger-editor.git
npm start

命令行版本

brew install swagger-codegen
#windows 用jar包方式 wget https://oss.sonatype.org/content/repositories/releases/io/swagger/swagger-codegen-cli/2.2.1/swagger-codegen-cli-2.2.1.jar
swagger-codegen help
swagger-codegen generate -i pet.yaml -l spring

验证默认生成的mock服务

curl -X GET "http://127.0.0.1:8080/v2/pet/findByStatus?status=available&status=pending" -H "accept: application/json"

作业

作业一

https://xueqiu.com/v4/stock/quote.json?code=SOGO
实现这个接口的schema校验

作业二

把这个接口 https://testerhome.com/api/v3/topics/6040.json 先进行base64加密。然后搭建起来一个demo网站。再使用RestAssured的filter解密base54进行断言验证。

作业三

运行成功swagger editor,截图回帖