测试引擎模拟接口实战

news2024/12/23 16:38:08

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

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

EngineApplication

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

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

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

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

login

@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

 @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方法上,增加随机睡眠时间的功能。

@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

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

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

测试如下:

querySleep

@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

@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.coloradmin.cn/o/1894576.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

盛元广通打造智慧校园实验室安全管理系统

盛元广通智慧校园实验室安全管理系统以安全为重点&#xff0c;构建由学校、二级单位、实验室组成的三级联动的实验室安全多级管理体系、多类用户角色&#xff0c;内置教育部标准检查表&#xff0c;支撑实验室相关业务过程的智慧管理。实现通过PC端/手机移动端开展检查工作、手机…

上位机图像处理和嵌入式模块部署(mcu项目1:实现协议)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 这种mcu的嵌入式模块理论上都是私有协议&#xff0c;因为上位机和下位机都是自己开发的&#xff0c;所以只需要自己保证上、下位机可以通讯上&…

【SQL】⼀棵 B+树能存储多少条数据

B树的存储容量取决于多个因素&#xff0c;包括树的阶&#xff08;即每个节点的最大子节点数&#xff09;、键的大小和每个节点的容量。计算一棵B树能存储多少条数据&#xff0c;通常需要了解以下参数&#xff1a; 节点大小&#xff1a;一般情况下&#xff0c;节点大小等于数据…

2024Datawhale-AI夏令营——机器学习挑战赛——学习笔记

#ai夏令营#datawhale#夏令营 Day1:入门级demo运行 这个其实比较简单&#xff0c;按照操作来做就行了&#xff0c;特征工程和调参暂时都没有做&#xff0c;后续的才是重头戏。 Day2:正式比赛开始 赛题&#xff1a;数据挖掘赛道——利用机器学习方法根据给定的特征判断PROTACs…

选微调、RAG还是微调+RAG?

RAG技术是一种结合了检索与生成的方法。它通常依赖于两个核心组件&#xff1a;一个大型语言模型&#xff08;如GPT-3&#xff09;和一个检索系统&#xff08;如向量数据库&#xff09;。RAG先使用检索系统从大量数据中检索出相关信息&#xff0c;然后将这些信息提供给语言模型&…

python自动化内存管理

引用 在编程中&#xff0c;引用是指用来标识、访问或操作某个对象的值的标识符或变量。我们可以将引用看作是对象的别名&#xff0c;通过引用可以操作对象&#xff0c;包括读取、修改和传递对象的值。 举例来说&#xff0c;假设我们有一个字符串对象name&#xff0c;我们可以创…

Kafka集群部署(手把手部署图文详细版)

1.1.1 部署zookpeer 在node02下载并解压zookeeper软件包 cd /usr/local wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz 或者&#xff1a;scp cat192.168.28.100:/home/cat/zookeeper-3.4.6.tar.gz /tmp&#xff08;注意目录&#xf…

AI:开发者的超级助手,而非取代者

AI&#xff1a;开发者的超级助手&#xff0c;而非取代者 引言 在这个日新月异的科技时代&#xff0c;人工智能&#xff08;AI&#xff09;已悄然渗透到我们生活的方方面面&#xff0c;尤其是在软件开发领域&#xff0c;它正以一种前所未有的方式改变着我们的工作方式。作为一名…

【产品经理】订单处理11-订单修改场景梳理

为了应对订单修改的场景&#xff0c;电商ERP系统应该如何设计相应模块&#xff1f; 电商ERP系统&#xff0c;经常遇到需要修改订单的情况&#xff0c;修改订单主要以下几种场景&#xff1a; 一、修改商品 修改商品&#xff0c;包括对正常商品的换货、以及对赠品的增删改。 1…

《米小圈日记魔法》边看边学,轻松掌握写日记的魔法!

在当今充满数字化娱乐和信息快速变迁的时代&#xff0c;如何创新引导孩子们学习&#xff0c;特别是如何培养他们的写作能力&#xff0c;一直是家长和教育者们关注的焦点。今天就向大家推荐一部寓教于乐的动画片《米小圈日记魔法》&#xff0c;该系列动画通过其独特的故事情节和…

web的学习和开发

这个使同步和异步的区别 今天主要就是学了一些前端&#xff0c;搞了一些前端的页面&#xff0c;之后准备学一下后端。 我写的这个项目使百度贴吧&#xff0c;还没有写er图。 先看一下主界面是什么样子的。 这个是主界面&#xff0c;将来后面的主要功能点基本上全部是放在这个上…

电气-伺服(4)CANopen

一、CAN Controller Area Network ,控制器局域网&#xff0c;80年的德国Bosch的一家公司研发可以测量仪器直接的实时数据交换而开发的一款串行通信协议。 CAN发展历史 二、CAN 的osi 模型 CAN特性&#xff1a; CAN 的数据帧 三、CANopen 什么是CANopen CANopen 的网络模型 …

Python28-7.1降维算法之LDA线性判别分析

线性判别分析&#xff08;Linear Discriminant Analysis, LDA&#xff09;是一种用于模式识别和机器学习的分类和降维技术。LDA通过找到能最大化类别间方差和最小化类别内方差的投影方向&#xff0c;实现样本的降维和分类。 LDA的基本思想 LDA的核心思想是通过线性变换将数据…

[数据库原理]事务

如有错误&#xff0c;欢迎指正&#xff01;&#xff01;&#xff01; 期末考了冲突可串行化

qt6 获取百度地图(一)

需求分析&#xff1a; 要获取一个地图&#xff0c; 需要ip 需要根据ip查询经纬度 根据经纬度查询地图 另外一条线是根据输入的地址 查询ip 根据查询到的ip查地图‘ 最后&#xff0c;要渲染地图 上面这这些动作&#xff0c;要进行http查询&#xff1a; 为此要有三个QNet…

科比老大职业生涯数据预测(基于随机森林模型)

1.实验背景 科比布莱恩特&#xff0c;作为NBA历史上最伟大的篮球运动员之一&#xff0c;他的职业生涯充满了无数精彩瞬间。 科比于1996年以13顺位的选秀身份进入联盟&#xff0c;一生都效力于洛杉矶湖人队。于2016年宣布退役&#xff0c;职业生涯获奖无数&#xff0c;5次NBA总…

暑假学习DevEco Studio第2天

学习目标&#xff1a; 掌握页面跳转 学习内容&#xff1a; 跳转页面 创建页面&#xff1a; 在“project”窗口。打开“entry>src>main>ets”,右击“pages”&#xff0c;选择“New>ArkTS File”,命名“Second”&#xff0c;点击回车键。 在页面的路由&#xff0…

8.ApplicationContext常见实现

ClassPathXmlApplicationContext 基于classpath下xml格式的配置文件来创建 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-i…

c++类模板及应用

文章目录 为什么要有函数模板一般实现举例类模板举例 继承中类模板的使用特殊情况 友元函数模板类和静态成员类模板实践 为什么要有函数模板 项目需求: 实现多个函数用来返回两个数的最大值&#xff0c;要求能支持char类型、int类型、double 一般实现举例 类模板举例 继承中类…

MySQL之备份与恢复(四)

备份与恢复 存储引擎和一致性 3.复制 从备库中备份最大的好处是可以不干扰主库&#xff0c;避免在主库上增加额外的负载。这是一个建立备库的好理由&#xff0c;即使不需要用它做负载均衡或高可用。如果钱是个问题&#xff0c;也可以把备份用的备库用于其他用户&#xff0c;…