您现在的位置是:首页 > 正文

Rest_Assured接口测试-配置环境信息

2024-02-01 05:33:57阅读 2

Rest_Assured接口测试-配置环境信息

在日常的工作中,可能存在多个测试环境,因此要执行用例,不能将接口请求域名在代码中写死,应该采用配置的形式,来读取环境信息


多个环境的测试用例

下面代码是执行了两个测试方法,可以看出,除了请求的域名,测试代码的内容是一样的,因此在多了一些重复性代码,导致代码的维护成本增加,也容易出错

public class TestEnv {
    @Test
    void testOrg(){
        // 测试org环境接口
        given()
        .when()
            .get("http://xxx.org/get")  // 发送GET请求
        .then()
            .statusCode(200);
    }

    @Test
    void testCeshiren(){
        // 测试cer环境接口
        given()
        .when()
            .get("https://xxx.cer/get")  // 发送GET请求
        .then()
            .statusCode(200);
    }

域名通过读取配置文件

解决上面问题,采用 将环境等公共信息写入yaml配置文件,采用哪个环境信息就将哪个环境写入default中,下面是写入org环境
获取环境信息属于是公共方法,可以将其写入BeforeAll中,减少代码的重复

default: org
org: http://xxx.org/get
cer: https://xxx.cer/get

将yaml配置中的数据读取HashMap中,通过 get(“default”)能得到使用的是哪个环境 再使用该环境名称 get到该环境的域名即可

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
import io.restassured.RestAssured;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;

import java.io.File;
import java.io.IOException;
import java.util.HashMap;

import static io.restassured.RestAssured.given;

/**
 * 多套环境使用相同测试用例
 * 环境信息写入yaml中
 */
public class EvnsTest {
    @BeforeAll
    static void setupClass(){
        ObjectMapper objectMapper = new ObjectMapper(new YAMLFactory());
        //读取文件
        File yamlFile = new File("src/test/resources/envs.yaml");
        //定义序列化结构
        TypeReference<HashMap<String, String>> typeReference = new TypeReference<HashMap<String, String>>() {
        };
        HashMap<String, String> params = null;
        try {
            params = objectMapper.readValue(yamlFile, typeReference);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }

        RestAssured.baseURI = params.get(params.get("default"));
    }

    @Test
    void envs() {
        given()
                .log().all()
                .when().get("/get")
                .then().log().all().statusCode(200);
    }
}


网站文章

  • typescript基本数据类型

    ts共有7种基本数据类型分别为: Boolean Number String Array Enum Any Void对各种数据类型的声明以及注意事项都浓缩在如下代码块,为了方便您可以可自行粘贴运行:如果您还不会编译ts文件请点击这里看我的另一篇文章《typescript安装及如何编译运行》/** * ts基本数据类型 * Boolean * Number *...

    2024-02-01 05:33:50
  • Linux——设备树 最新发布

    Linux——设备树 最新发布

    包括linux设备树的由来,使用设备树的目的,怎样去使用设备树以及用一个简单小例子进行举例。

    2024-02-01 05:33:42
  • 深度学习&amp;图像处理(色彩编辑4)

    深度学习&amp;图像处理(色彩编辑4)

    1.YUV转换 YUV,是一种颜色编码方法。“Y”表示明亮度(Luminance或Luma),也就是灰阶值,“U”和“V”表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱...

    2024-02-01 05:33:14
  • 单链表与双链表(C语言)

    单链表的创建(头插法、尾插法),单链表的插入、删除等双链表的创建(头插法、尾插法),单链表的插入、删除等#include <stdio.h>#include <iostream>using names...

    2024-02-01 05:33:07
  • FTP的工作方式:Active FTP 及 Passive FTP

    FTP的工作方式:Active FTP 及 Passive FTP

    <br />為何常常連上 FTP 站台後,進去後就停留且無法列表?<br /><br />防火牆有很多種,其中有一些會禁止那些不是從內部網路IP發出的連接請求。而FTP協議是個很老的東東,沒有考慮這個...

    2024-02-01 05:33:00
  • /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found

    问题:./a.out: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /home/ycai/x10/stdlib/lib/libx10.so)可能的解决方案:第一种方案:执行strings /usr/lib64/libstdc++.so.6 | grep GLIBC

    2024-02-01 05:32:33
  • 相对(relative)定位和绝对(absolute)定位

    相对(relative)定位和绝对(absolute)定位

    首先,position的这两个属性一般是不使用的,因为有了浮动,所以我们才需要position属性来实现我们想要的布局。 1.相对定位(relative):相对于原来位置(原来位置指在文档流中默认的位置,若加上了浮动时,那么这个原来位置就是你设定浮动时的位置)的偏移,原来位置依然占据空间。 (1)box1和box2都没有设置position属性(没有设置float属性时) 效果图:我...

    2024-02-01 05:32:28
  • 威胁驱动的网络安全方法论

    威胁驱动的网络安全方法论

    本文主要内容取自洛克希德·马丁公司的论文:A Threat-Driven Approach to Cyber Security,想要全面准确了解论文内容的朋友建议阅读原文。希望能够抛砖引玉,为相关领域...

    2024-02-01 05:32:20
  • 解决eclipse集成maven插件 add dependencies搜索不到jar包的问题

    解决eclipse集成maven插件 add dependencies搜索不到jar包的问题

    背景: 新建了maven项目,要添加jar包,但有不想去网上一个一个搜索再写到pom.xml里 所以想在add dependencies中搜索添加,奈何搜索出来只有本地的那几个jar包(默认) 尝试: 去百度查了很多解决方法... 如:1、配置阿里的远程仓库,但...又报错-找不到xxx.zip文件~ 2、设置eclipse的属性啊...没有效果 3、删除...

    2024-02-01 05:32:13
  • 十年程序人生路,他是如何从某度外包逆袭成为阿里架构师的?

    十年程序人生路,他是如何从某度外包逆袭成为阿里架构师的?

    写在前面 我的一位朋友在某大型互联网公司担任架构师。刚毕业那年,他以外包的身份进入了某度,那个时候他几乎每一天都很焦虑,大家技术能力没差太多,为什么“我”是外包身份? 后来辞职,去了一家 20 人左右...

    2024-02-01 05:31:43