我是靠谱客的博主 高大蜜蜂,最近开发中收集的这篇文章主要介绍基于Spring 构建 Mock服务基于Spring Aop 构建 Mock服务,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

基于Spring Aop 构建 Mock服务

引言

在日常的接口测试中,测试人员常常会遇到以下几种令人头疼的情况:

  • 场景一:依赖的接口状态不稳定,导致集成 CI 常常失败,需要耗费大量时间排查非被测目标本身之外的环境问题

  • 场景二:做异常测试时构造异常数据成本高、难度大,某些异常数据甚至无法通过正常途径构造

  • 场景三:被测目标开发进度先于依赖模块,当测试需要先行介入接口测试,但依赖模块接口尚且不通

面对以上痛点,我们需要做什么?

一、概述

1.1 Mock 定义

Mock 是测试过程中中常见的一种技术,即对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法,从而把测试与测试边界以外的对象隔离开。

引用《淘宝网-接口测试白皮书》中的对 Mock 的定义

在测试当中,mock 是指使用各种技术手段模拟出各种需要的资源以供测试使用。

被 mock 的资源通常有以下特征:

  • 被测目标依赖该资源

  • 该资源可能因为各种原因不稳定、返回结果不断变化或者并不总是能够获取到

  • 该资源跟被测目标本身质量无关

这些资源可能是一个外部或底层接口、一个系统、一组数据对象或者是一整套目标软件 的工作环境等。通过 mock 避免对外部真实资源的依赖实现对被测目标的孤立测试,从而大 大降低测试的难度,节约测试成本。

1.2 Mock 分类

测试中的 Mock 可以大致分为两类:mock 数据和 mock 服务。

  • Mock 数据即 mock 一个对象,写入一些预期的值,通过它进行自己想要的测试。主要适用于单元测试,例如常见的 EasyMock、Mockito 等。

  • Mock 服务即 mock 一个 sever,构造一个依赖的服务并给予他预期的服务返回值,适用范围广,更加适合我们的集成测试。因此我们就 mock server 这种模式进行设计与开发。

二、设计思路

  1. 在数据库存储接口的url、method、requestbody、response

  2. 访问mock服务,接口通过url和method、requestbody去数据库查询response

  3. 对于一些变化的参数,后面可以定义一些策略,比如在requestbody中加入random_id,mock返回随机数id


/**表示所有文件夹及里面的子文件夹,也就是所有的接口请求都会转发到这里来
@RequestMapping(value = "/**")
public String request(ServletRequest servletRequest) throws IOException {
 
HttpServletRequest request = (HttpServletRequest) servletRequest;
​
 
String uri = request.getRequestURI();
 
String method = request.getMethod();
​
 
String path = getResponse(uri + "-" + method);
 
String src = "./classes/resp/" + path;
 
File file = new File(src);
 
return FileUtils.readFileToString(file, "UTF-8");
}

最后

以上就是高大蜜蜂为你收集整理的基于Spring 构建 Mock服务基于Spring Aop 构建 Mock服务的全部内容,希望文章能够帮你解决基于Spring 构建 Mock服务基于Spring Aop 构建 Mock服务所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部