测试引擎模拟接口实战

news/2024/7/8 6:41:26 标签: java, spring boot, 开发语言, intellij idea, postman

在上一章的内容中,我简单介绍了整个微服务的各个子模块,还封装了一些工具类。

当然,若还没完成上次内容的也可以点击右侧的传送门------传送门

EngineApplication

在开发测试引擎模拟接口之前,还需要给xxx-engine创建一个SpringBoot的启动类。

java">@SpringBootApplication
@EnableTransactionManagement
@EnableFeignClients
@EnableDiscoveryClient
public class EngineApplication {
    public static void main(String[] args) {
        SpringApplication.run(EngineApplication.class,args);
    }
}

那么这里的几个接口需要有以下几个内容:

  • get提交
  • post提交
    • json格式
    • 表单格式
  • 需要以上模拟接口需要支持参数化和随机响应延迟

login

java">@RequestMapping("/api/v1/test/login_form")
    @ResponseBody
    public JsonData login(String mail, String pwd){
        if(mail.startsWith("a")){
            return JsonData.buildError("账号错误");
        }
        return JsonData.buildSuccess("mail=" + mail + "pwd=" + pwd);
    }

使用form表单形式提交,不可以使用json形式提交。

使用postman来测试,测试结果如下:

pay

java"> @PostMapping("/api/v1/test/pay_json")
    @ResponseBody
    public JsonData pay(@RequestBody Map<String,String> map) {

        String id = map.get("id");
        String amount = map.get("amount");
        return JsonData.buildSuccess("id="+id+",amount="+amount);
    }

这个方法使用的是post提交,且使用json形式进行提交。

继续使用postman进行测试,测试结果如下:

paySleep

这个方法会在上面pay方法上,增加随机睡眠时间的功能。

java">@PostMapping("/api/v1/test/pay_json_sleep")
    @ResponseBody
    public JsonData paySleep(@RequestBody Map<String,String> map) {

        try {
            int value = RandomUtil.randomInt(1000);
            TimeUnit.MICROSECONDS.sleep(value);
            String id = map.get("id");
            String amount = map.get("amount");
            return JsonData.buildSuccess("id="+id+",amount="+amount+",sleep="+value);
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }

    }

还是使用postman进行测试,测试结果如下:

queryDetail

java">@GetMapping("/api/v1/test/query")
    @ResponseBody
    public JsonData queryDetail(Long id){
        return JsonData.buildSuccess("id="+id);
    }

这个方法使用的是get方式提交,并以form表单形式提交。

测试如下:

querySleep

java">@GetMapping("/api/v1/test/query_sleep")
    @ResponseBody
    public JsonData querySleep(Long id){
        try {
            int value = RandomUtil.randomInt(1000);
            TimeUnit.MICROSECONDS.sleep(value);
            return JsonData.buildSuccess("id="+id+",sleep="+value);
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }

    }

这个方法是从以上方法添加了随机睡眠时间的功能

测试如下:

queryError

java">@GetMapping("/api/v1/test/query_error_code")
    @ResponseBody
    public JsonData queryError(Long id,  HttpServletResponse response){

        if(id % 3 == 0){
            response.setStatus(500);
        }
        return JsonData.buildSuccess("id="+id);
    }
id取模3是0后则http状态码500

测试如下:

以上均为本册测试引擎模拟接口实战


http://www.niftyadmin.cn/n/5536683.html

相关文章

马斯克宣布xAI将在8月份推出Grok-2大模型 预计年底推出Grok-3

在今年内&#xff0c;由特斯拉创始人马斯克创立的人工智能初创公司xAI将推出两款重要产品Grok-2和Grok-3。马斯克在社交平台上透露了这一消息&#xff0c;其中Grok-2预计在今年8月份面世&#xff0c;而Grok-3则计划于年底前亮相。 除此之外&#xff0c;马斯克还表示&#xff0c…

FFmpeg引用计数数据缓冲区相关的结构体:AVBuffer、AVBufferRef简介

一、AVBuffer结构体的声明 AVBuffer是一个用于引用计数数据缓冲区的应用程序编程接口&#xff0c;它表示数据缓冲区本身。它是不透明的&#xff0c;不能被直接访问调用&#xff0c;只能通过AVBufferRef间接访问它。但是可以通过比较两个AVBuffer指针来检查是否两个不同的引用都…

【CentOS7.6】yum 报错:Could not retrieve mirrorlist http://mirrorlist.centos.org

一、报错 1.报错内容如下 在使用 yum makecache 命令时报错&#xff0c;在 yum install -y xxx 的时候报错等等 [roothcss-ecs-a901 yum.repos.d]# yum makecache Loaded plugins: fastestmirror Determining fastest mirrors Could not retrieve mirrorlist http://mirrorl…

sql-语句

文章目录 SQL语句的学习sql是什么sql的内置命令sql的种类sql mode库&#xff0c;表属性介绍&#xff1a;字符集&#xff0c;存储引擎列的数据类型&#xff1a;数字&#xff0c;字符串&#xff0c;时间列的约束DDL: 数据定义语言库表 Online DDL(ALGORITHM) *DML :数据操纵语言资…

MySQL高级-MVCC-基本概念(当前读、快照读)

文章目录 1、MVCC基本概念1.1、当前读1.1.1、创建表 stu1.1.2、测试 1.2、快照读 1、MVCC基本概念 全称Multi-Version Concurrency Control&#xff0c;多版本并发控制。指维护一个数据的多个版本&#xff0c;使得读写操作没有冲突&#xff0c;快照读为MySQL实现MVCC提供了一个…

安装基于Ubuntu的Zorin OS

目录 前言Zorin OS 介绍准备工具硬件&#xff08;自己准备&#xff09;软件&#xff08;我会在文末提供链接&#xff09; 安装1. 磁盘分区2. 关闭Secure Boot&#xff08;可选&#xff09;3. 关闭RST4. 下载&写U盘5. U盘加载系统6. 正式安装7. 重启 总结下载链接花絮 本文由…

Eclipse 菜单:深入解析与高效使用技巧

Eclipse 菜单:深入解析与高效使用技巧 Eclipse 是一款广泛使用的集成开发环境(IDE),它为Java、C++、PHP等编程语言提供了一个强大的开发平台。Eclipse 的菜单是其用户界面的一部分,提供了丰富的功能和选项,以帮助开发者更高效地工作。本文将深入解析 Eclipse 的菜单系统…

关于Mac mini 10G网口的问题

问题: 购入一个10G网口的Mac mini M2&#xff0c;将其和自己的2.5G交换机连接&#xff0c;使用共享屏幕进行远程操作的过程中出现了频率极高的卡顿&#xff0c;几乎是几秒钟卡一下&#xff0c;使用ping进行测试发现卡的时候就ping不通了。测试使用Mac mini的无线网和雷电转2.5G…