转载: http://blog.csdn.net/xkhgnc_6666/article/details/51757209

在测试过程中有些情况通过手工测试是无法测试出来的或是非常难复现,比如网络异常、网络延迟,又比如在接口测试过程中如果后台开发还没有把接口开发出来时有什么办法能够提前进行接口测试呢?这些情况下纯手工测试也是很难做到的,再就是在测试过程中希望合作方返回的数据可以随意设置,这种情况我们又该如何做呢?这时候mock接口就是一件能够极大的提高工作效率而且又能够实现手工测试不能做到的事情,在这里,我就把最近一段时间做mock平台的工作记录下来。

在部门里面不同的产品线都有自己的mock平台,但是不同的平台使用的技术不一样,有些是通过开源的wiremock,有些是用mina,在我这个做的mock平台主要是通过freemarker模板来模拟数据,通过接口把数据返回给调用方,下面是大体的系统架构;

这个平台主要分为两个大的部分,一个是web平台的数据录入,因为mock报文接口返回的内容不是固定死的,需要里面的一些值按照使用人的需要来进行设置,这个设置的内容就是用前面的web平台来做,另外一部分是mock接口的调用,按照合作方给出的接口报文内容,模拟接口返回的内容,在页面上是看不出来的,只是在调接口的时候才能感受到;

下面列举一下在这个mock平台中涉及到的技术点相应也会详细的介绍如何用这些技术来实现mock平台中的一些功能;

1.nginx ip转发;

2.前台web页面中涉及到的spring知识

这部分内容主要是在做前端web页面的过程中需要掌握的内容;

2.1.如何处理表单数据;

前端页面页面中有多条类似的数据需要设置,这里我们就需要通过表单的形式来对这些数据进行存储;

2.2.post请求中如何使用json格式进行请求;

在合作方的接口文档中约定了,post请求必须使用json格式来传递参数,所以专门来讲下如何来做这个;

2.3.前端设置页面的数据实现自动刷新;

3.post请求和get请求;

4.如何模拟合作方的报文(mock过程)

4.1.复杂的返回数据是如何利用freemarker来生成的;

4.1.1.返回固定报文;

4.1.2.返回可设置报文;

4.2..简单返回数据是如何模拟mock接口的;

5.灾备测试

灾备测试主要是模拟接口的成功、延时、失败的情况;

6.模拟支付失败;

7.实现的细节处理

7.1.数据类型转换;

8..未来mock平台发展方向思考;

mock平台架构及实现的更多相关文章

  1. 朱晔的互联网架构实践心得S2E7:漫谈平台架构的工作(基础架构、基础服务、基础平台、基础中间件等等)

    前言 程序开发毕竟还不是搬砖这种无脑体力劳动,需要事先有标准,有架构,有设计,绝对不是新公司今天创立,明天就可以开始编码的.其实很多公司在起步的时候没有财力和资源建设独立的基础架构或平台架构部门,甚至 ...

  2. 【Mock平台】测试开发实战01-开篇PRD和需求详细

    微信搜索[大奇测试开],关注这个坚持分享测试开发干货的家伙. 平台背景 从业务特性上,不少测试的服务很多是依赖第三方的接口的,比如其中的支付场景,就需要很多状态的返回进行验证,但大部分服务提供商没有很 ...

  3. 提高可测性-Mock平台设计和整体规划

    微信搜索[大奇测试开],关注这个坚持分享测试开发干货的家伙. 平台背景 从业务特性上,不少测试的服务很多是依赖第三方的接口的,比如其中的支付场景,就需要很多状态的返回进行验证,但大部分服务提供商没有很 ...

  4. 测试开发【Mock平台】04实战:前后端项目初始化与登录鉴权实现

    [Mock平台]为系列测试开发教程,从0到1编码带你一步步使用Spring Boot 和 Antd React 框架完成搭建一个测试工具平台,希望作为一个实战项目能为你的测试开发学习有帮助. 一.后端 ...

  5. 【从零开始学BPM,Day1】工作流管理平台架构学习

    [课程主题] 主题:5天,一起从零开始学习BPM [课程形式] 1.为期5天的短任务学习 2.每天观看一个视频,视频学习时间自由安排. [第一天课程] Step 1 软件下载:H3 BPM10.0全开 ...

  6. [转] 前后端分离开发模式的 mock 平台预研

    引入 mock(模拟): 是在项目测试中,对项目外部或不容易获取的对象/接口,用一个虚拟的对象/接口来模拟,以便测试. 背景 前后端分离 前后端仅仅通过异步接口(AJAX/JSONP)来编程 前后端都 ...

  7. 58同城高性能移动Push推送平台架构演进之路

    本文详细讲述58同城高性能移动Push推送平台架构演进的三个阶段,并介绍了什么是移动Push推送,为什么需要,原理和方案对比:移动Push推送第一阶段(单平台)架构如何设计:移动Push推送典型性能问 ...

  8. ASP.NET 让无码编程不在是梦 -.NET通用平台、通用权限、易扩展、多语言、多平台架构框架

    先拿出我半前年前平台的设计初稿,经过半年的努力我已经完成了该设计稿的所有功能.并且理念已经远远超出该设计稿. 下面是一些博友对我贴子的评价: 1.楼主,想法很美好,现实很骨感,我们公司就有一套你说的这 ...

  9. Android_进化史和平台架构介绍

    一.Android平台发展史  2008年9月,谷歌正式发布了Android 1.0系统,全球第一台Android设备HTC (G1)  2009年4月,谷歌正式推出了Android 1.5      ...

随机推荐

  1. [oldboy-django][2深入django]老师管理 -- form表单如何生成多选框标签,多选框的默认值显示,以及多选框数据插入到数据库,多选框数据更改到数据库

    1 form表单如何生成多选框(包含了多选框可选择内容) - Form设置班级输入框为 select多选 - 多选 class TeacherForm(Form): name = fields.Cha ...

  2. 感谢beyond,感谢家驹

  3. 一些NGINX配置

    一些nginx配置 使用独立目录, 然后include具体配置 gzip on for multi processers static file cache proxy pass 静态目录 or 文件 ...

  4. 3984: 玩具(toy)

    3984: 玩具(toy) 题目描述 这个故事发生在很久以前,在 IcePrincess_1968 和 IcePrince_1968 都还在上幼儿园的时候. IcePrince_1968 最近迷上了一 ...

  5. 【CCF】除法 树状数组

    [AC] #include<iostream> #include<math.h> #include<cstring> using namespace std; ty ...

  6. 一个javascript继承和使用的例子

    继承可以帮助我们实现代码的重用,把对象的属性写入构造函数,对象的方法写入原型后,以下例子演示继承的使用: 示例的css和js在后 父实例,得到一个间隔1s的轮播: <!DOCTYPE html& ...

  7. 将扁平化的JSON属性转换为嵌套的JSON

    需要将如下JSON {"a":"a","b":"b","c.e":"e",&qu ...

  8. [NOIP2013] 提高组 洛谷P1979 华容道

    题目描述 [问题描述] 小 B 最近迷上了华容道,可是他总是要花很长的时间才能完成一次.于是,他想到用编程来完成华容道:给定一种局面, 华容道是否根本就无法完成,如果能完成, 最少需要多少时间. 小 ...

  9. 【BZOJ4300】绝世好题(二进制,DP)

    题意: n<=100000,ai<=2*10^9 思路:按二进制逐位考虑,只要有至少1位取and后为1就可以接下去 设dp[i]为第i位取and之后为1的最长的序列长度,意会一下 #inc ...

  10. 【Visual Studio】解决错误 fatal error C1010: unexpected end of file while looking for precompiled head(转)

    原文转自 http://blog.csdn.net/liuqiyao_01/article/details/38867145 在编译VS时候,出现fatal error C1010: unexpect ...