15.接口自动化学习-Mock(挡板/测试桩)

场景:

新需求还未开发时,使用mock提早介入测试,等后边开发后,进行调试

  • 三方接口返回效率低,使用mock技术走通流程

1.mock方式

(1)如果会写django或flask,可以写简单对应的代码
(2)一些接口工具具备这个功能(postman)
(3)一些现成的框架直接使用:Moco框架
构造一个依赖的服务,并给予他预期的服务返回值,适用范围广,更加适合 集成测试
Moco框架
类似一个Mock的工具框架,一个简单搭建模拟服务器的程序库/工具,下载就是一个jar包

特点:

  • 简单的配置request、response等即可满足要求
  • 支持http、https、socket协议,可以说是非常的灵活性
  • 支持在request中设置Headers,Cookies,StatusCode等
  • 对get\post\put\delete等请求方式都支持
  • 无需环境配置,有Java环境即可
  • 修改配置后,立即生效。只需要维护接口,也就是契约即可
  • 支持多种数据格式,如JSON\Text\XML\File等
  • 可与其他工具集成,如Junit\Maven等

2.Mock服务搭建

(1)需要安装jdk
(2)下载moco的jar包
moco下载
提取码:8eem

(3)启动服务,jar包名称根据下载的jar包写
http代表这个模拟的是http请求,
-p 9090是定义端口号
-c test.json是编辑的json文件名
java -jar moco-runner-0.11.0-standalone.jar http -p 9090 -c test.json
如果cmd乱码就用:`
``java -jar -Dfile.encoding=utf-8 moco-runner-0.11.0-standalone.jar http -p 9090 -c demo.json```
(4)验证
/demo1:是json文件中定义的uri
访问:http://localhost:9090/demo1

3.Mock请求构建

start.bat


@echo onjava -jar -Dfile.encoding=utf-8 moco-runner-0.11.0-standalone.jar http -p 9090 -c demo.json
@echo offpause

demo.json

[{"description":"11","request":{"uri":"/shop","method":"Get"},"response":{"text":"Hello,baby"}	}
]

浏览器输入:http://127.0.0.1:9090/shop
在这里插入图片描述

4.配置不同的请求

(1)约定uri

[{"description":"约定uri","request":{"uri":"/shop"},"response":{"text":"Hello,baby"}	}
]

(2)约定请求参数

[{"description":"约定请求参数","request":{"queries":{"key1":"123","key2":"cvf"}},"response":{"text":"Hello,baby"}	}
]

(3)约定请求方法

[{"description":"约定请求方法","request":{"method":"DELETE"},"response":{"text":"Hello,baby"}	}
]

(4)约定请求头

[{"description":"约定请求头","request":{"headers":{"Content-Type":"application/xml"}},"response":{"text":"Hello,baby"}	}
]

(5)约定请求体参数-form

[{"description":"约定请求体参数-form","request":{"forms":{"key1":"anc"}},"response":{"text":"Hello,baby"}	}
]

(6)约定请求体参数-json

[{"description":"约定请求体参数-json","request":{"json":{"key1":"anc","key2":"anc"}},"response":{"text":"Hello,baby"}	}
]

(7)返回响应头和json

[{"description":"返回响应头和json","request":{"json":{"key1":"anc","key2":"anc"}},"response":{"headers":{"Content-Type":"application/json"},"json":{"code":"200"}}	}
]

代码测试

HOST = 'http://127.0.0.1:9090'
import requests
def test():url=f'{HOST}/shop_up'payload={'key':'abc'}# form格式:data=payload json格式:json=payloadresp=requests.post(url,json=payload)print(resp.text)if __name__ == '__main__':test()

要先执行jar包启动服务,在运行上述代码

5.异步接口实战

(1)同步和异步

同步:不利于性能提升,需要等待响应
在这里插入图片描述
异步:发送请求后,响应后续给出,可以先做其他的
eg:体检拿结果,可以A项做完后,直接做B项的同时等A的结果,不用先等A的结果,再去做B。

(2)异步接口实现

  • 业务场景
    店铺向平台申请退单请求
    平台接受请求,核实信息
    平台3个工作日内告知结果
  • 具体实现
    通过提交申请的接口给服务端
    服务器立即返回这个申请id
    后续使用查询的接口,带上id查询结果
    看是否有返回结果
  • mock+异步查询技术
    拿到申请和查询订单结果接口的文档,获取url、参数、响应等信息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/643973.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nginx 防盗链

原文:https://blog.iyatt.com/?p14998 基于 Nginx 1.18 服务器默认配置文件路径:/etc/nginx/sites-available/default 屏蔽非指定域名的解析 我这里如果发现请求的地址不是我的 iyatt.com,就会返回 403 比如有人用其它域名指向我的服务器…

《ESP8266通信指南》4-以Client进行TCP通信(AT指令)

往期 《ESP8266通信指南》3-常用AT指令详解-8266连WIFI-CSDN博客 《ESP8266通信指南》2-ESP8266 AT测试-CSDN博客 《ESP8266通信指南》1-ESP8266 简介-CSDN博客 1. 小节目标 通过 AT 指令使用 8266 进行 TCP 通信 2. 书接上回 复习以下,上一小节我们讲到了 8…

11 JavaScript学习:事件

Html事件 HTML 中有很多事件可以用来与用户交互&#xff0c;以下是一些常见的 HTML 事件及其详细解释和举例&#xff1a; click 事件&#xff1a;当用户点击元素时触发。 <button onclick"myFunction()">点击我</button>dblclick 事件&#xff1a;当用…

Python读写文本URL蓝牙WIFI自动连接电子名片位置坐标智能海报等NDEF标签

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?id615391857885&spma1z10.5-c.w4002-21818769070.11.60ad789erlonvk 近场通信&#xff08;Near Field Communication&#xff0c;简称NFC&#xff09;&#xff0c;是一种新兴的技术&…

汽车纵染压制专用液压机比例阀放大器

汽车纵染压制专用液压机比例阀放大器是一种专门用于汽车纵梁拉伸工艺的设备&#xff0c;它也可以用于其他金属薄板的压制成型及校正工艺。该类型的液压机通常具备独立的动力机构和电气系统&#xff0c;采用PLC技术进行控制&#xff0c;以确保操作的准确性和稳定性。除了纵梁拉伸…

深度解析:云计算的三宝——IaaS、PaaS和SaaS

4月22日&#xff0c;腾讯宣布旗下协作SaaS产品全面接入腾讯混元大模型&#xff0c;除去企业微信、腾讯会议、腾讯文档等“一门三杰”产品&#xff0c;腾讯乐享、腾讯电子签、腾讯问卷、腾讯云AI代码助手等协作SaaS产品也都已实现智能化升级。大模型应用落地再加速。 那么什么是…

无人机+光电吊舱:4K AI 180倍混合变焦吊舱技术详解

无人机搭载吊舱是一种常见的配置方式&#xff0c;吊舱可以装载不同的设备&#xff0c;以满足不同的任务需求。吊舱通常挂载在无人机的下方或侧面&#xff0c;可以根据需要进行调整。 随着无人机技术的飞速进步&#xff0c;4K AI 180倍混合变焦吊舱技术的出现&#xff0c;将无人…

11408知识点集合

文章目录 一、数学(一) 高数0.初等数学补充1.函数、极限、连续2.导数3.中值定理4.积分5.微分方程6.空间解析几何7.多元微分8.重积分9.曲线曲面积分10.无穷级数11.其他杂记(二) 线代0.串联各章的等价条件1.行列式、矩阵的秩、矩阵的初等变换2.向量3.方程组、矩阵方程AXB4.特征值…

我用ADAU1467加5个ADAU1772,做20进10出的音频处理板(七):音量调节的更多例程

作者的话 ADAU1467是现阶段ADI支持最多通道的ADAU音频DSP&#xff0c;他配合外部的AD/DA&#xff0c;可以实现最多32路音频通道&#xff0c;接了一个小项目&#xff0c;我拿它做了一块20进10出的板&#xff0c;10个MIC/LINE输入,10个LINE IN输入&#xff0c;10个HPOUT&#xf…

GRPC学习笔记

GRPC学习笔记 1 GRPC简介 1.1 定义 gRPC&#xff08;Google Remote Procedure Call&#xff0c;Google远程过程调用&#xff09;协议是谷歌发布的基于HTTP2协议承载的高性能、通用的RPC开源软件框架&#xff0c;提供了支持多种编程语言的、对网络设备进行配置和管理的方法。…

跨部门协作中的沟通困境与平台建设策略——以软硬件研发为例

一、背景 在科技行业&#xff0c;跨部门合作的重要性不言而喻&#xff0c;然而实际工作中&#xff0c;经常会遭遇沟通不畅的现象。以软件与硬件研发部门为例&#xff0c;两者在产品研发过程中经常需要紧密协作&#xff0c;但却时常出现信息传递障碍。当你试图阐述观点时&#…

分类预测 | Matlab实现RIME-BP霜冰优化BP神经网络多特征分类预测

分类预测 | Matlab实现RIME-BP霜冰优化BP神经网络多特征分类预测 目录 分类预测 | Matlab实现RIME-BP霜冰优化BP神经网络多特征分类预测分类效果基本介绍程序设计参考资料 分类效果 基本介绍 1.RIME-BP霜冰优化BP神经网络多特征分类预测&#xff08;Matlab实现完整源码和数据&a…