• 代理配置及多套环境的解决方案


    代理

    介于客户端与服务器之间
    可以监听请求和响应信息
    充当防火墙和web过滤器
    在这里插入图片描述

    代理与接口测试

    更直观的排查请求错误
    获取正确的接口请求与响应信息
    开启代理工具监听请求
    获取自动化测试的请求与响应信息
    对比两次请求响应的区别

    使用方法
    1. 开启代理工具监听请求
    2. 配置代理:
      局部:通过proxy()方法
      全局:定义proxy对象
    认证体系

    认证是指验证通信发送者的数字身份的过程
    Rest-assured认证方案

    • OAuth
    • digest
    • certificate 证书认证
    • form 表单认证
    • basic authentication 基本认证
    • Rest-assured 语法
      .auth().basic()
    使用基本认证

    开启本地代理——编写接口测试用例——执行测试用例

    public class TestAuth {
        @Test
        void testAuth(){
            //定义本地代理配置,搭配Charles,方便查看请求数据
            //RestAssured.proxy = host("127.0.0.1").withPort(8888);
            RestAssured.proxy = host("localhost").withPort(8888);
            //忽略https校验
            RestAssured.useRelaxedHTTPSValidation();
            given()
                    .auth().basic("hogwarts","666")
                    .log().headers()
                    .log().body()
            .when()
                    .get("https://httpbin.ceshiren.com/basic-auth/hogwarts/666")
            .then().statusCode(200);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    加密解密简介

    加密:明文转换成密文的过程
    解密:密文还原成明文的过程
    常见加密算法:AES 、RSA 、MD5 、Base64
    Base64:
    加密:encodeBase64String()
    解密:decodeBase64()

    public class TeseBase64 {
    
        @Test
        void testBase64(){
            //加密明文hogwarts
            //获取字节数字
            byte[] arr = "hogwarts".getBytes(StandardCharsets.UTF_8);
            String encodeMsg = Base64.encodeBase64String(arr);
            System.out.println(encodeMsg);
            //解密
            byte[] arr2 = Base64.decodeBase64("aG9nd2FydHM");
            String decodeMsg = new String(arr2,StandardCharsets.UTF_8);
            System.out.println(decodeMsg);
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    多套环境测试

    将服务器域名提取出来进行配置
    在resources目录下创建环境配置文件:
    在这里插入图片描述
    pom文件中添加jackson依赖
    在这里插入图片描述
    调用

    public class TestEnvYaml {
    
        @Test
        void testEnvs() throws IOException {
    
            //实例化一个objectMapper对象
            ObjectMapper objectMapper = new ObjectMapper(new YAMLFactory());
    
            //读取yaml文件
            ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
            File yamlFile = new File(classLoader.getResource("envs.yaml").getFile());
    
            //定义序列化结构
            TypeReference<HashMap<String,String>> typeRef = new TypeReference<HashMap<String,String>>(){
            };
    
            //解析yaml文件内容
            HashMap<String, String> envs = objectMapper.readValue(yamlFile,typeRef);
            baseURI = envs.get(envs.get("default"));
            System.out.println(baseURI);
    
            given()
                    .when()
                    .get("/get")
                    .then().statusCode(200).log().all();
    
        }
    }
    
    • 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
  • 相关阅读:
    数据结构——栈和队列
    尝试FreeBSD下安装ollama
    用python画折线图
    Java基础查漏补缺(个人向)
    Docker2(感谢狂神)
    Django中djangorestframework-simplejwt的使用
    对象池复用实践
    Java类加载
    opencv计算图像梯度:Sobel、Scharr、Laplacian详解
    Infected Tree(树形dp)
  • 原文地址:https://blog.csdn.net/flystar27/article/details/126134774