暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

mock server招募

EffectiveCoding 2016-12-04
313

这是下半年要做的一个挺锻炼人的项目,涉及内容挺多。

有意向的可以联系我~

13863638369

需要一定的web开发基础。



研究背景:

       当前web开发前后台无法独立开发。涉及前后台交互及前端界面渲染时,需要等待后台的进度。而后台完成功能时,大多需要独立的进行接口测试。并且测试的界限很不明了,需要专门的测试人员。现有的单元测试Junit局限性太强,无法构建或模拟一些特殊的对象,及http对象。

摘要:

       mock server是开发过程中架设在客户端和服务器端的中间层数据测试软件。主要用于前后端能够完全独立开发。前端不再依赖于后台的开发进度,通过mock server检测请求数据,并且模拟数据。对后台也可进行接口测试,进行可视化的数据的交互模拟,检测错误信息,自动生成检测报告。并且在项目完成后,可定时发送网络请求,检测刚上线的项目是否存在异常。

   

   

原理:

<整体架构>

下面是整体的架构思路。mock server架设在客户端及服务器端之间。对于server来说,mockserver就相当于C、B端。对于B、C端而言mock server相当于server。在中间层完成整个项目的测试,使前后台可以独立开发,并且自动化、可视化测试。


<前端分离>

ROOT身份登陆时:

          可以对mock server要测试、及模拟数据的接口进行管理。

          主要包括:


    1. 入参的规则

    2. 出参的规则


测试时:

     对于前端部分,主要在于以下三点


    • 对http请求 header的解析。拆分http请求获取  method、URL等信息

    • 请求数据的合法性检测,包括数据结构、数据格式、数据范围、精确度等各项检测。

    • 反馈数据的模拟。

          注:合法性检测和数据模拟,依赖于参数的设定规则。暂定为通过ROOT的选择,生成java的正则表达式。进行规则生成。


<服务器端分离>

管理过程中:

ROOT管理员登陆后,可以对后台接口进行管理。并且定制测试标准,管理测试的时间、次数、频率。

检测过程中:

对服务器端,进行特殊值检测、合法性检测。

对服务器端反馈数据进行分析,检查其合法性。是否否在隐含的逻辑性错误。


<mock server内部逻辑>

实现对mock server的各项管理。

  • 管理接口的各项信息。

  • 管理测试标准

  • 管理测试的方案

  • 统计出现的错误

  • 记录各项测试信息

  • 实现数据的可视化分析

  • 推测能出现的问题

拦截各项前端的请求,分析http请求头,分流请求,进行测试及数据模拟。

通过设定的检测、模拟规则,对数据进行分析。检测接口是否正常。

出发对后台接口的不断访问,及后台相应的信息,来进行综合性分析。查看后台接口是否正常,快速定位问题。


涉及技术:

nginx(代理服务器):

               主要利用两点:


    • 路由http 请求

    • 均衡负载请求

    • 实现缓存(暂定,因为在这个项目中用不到)


使用jetty作为web容器:

               比较轻量,适合在大型web程序中,做到“嵌入式web开发”。

实现类似于jmeter的压力测试插件:

               测试系统的承压能力,并统计系统数据。

利用log4j为核心开发系统测压记录、数据模拟记录:


    • 反馈数据模拟记录

    • 记录测试中各项http请求的测试情况

利用http请求信息、测试记录、模拟记录自动生成系统交互api。

系统涉及:

现有:

  • mock server

后台:

  • java doc

  • log4j

  • springMVC

  • spring

  • hibernate

前端:

  • jquery

  • bootstrap

  • easyUI

  • Echarts

架构:

  • nginx

  • rest架构风格

服务器环境:

  • ubuntu阿里云服务

  • jetty

  • tomcat

  • mysql

  • java 7

开发环境:

  • IntelliJ IDEA

  • git管控

  • maven

注:

mock server:

尚没成型的应用,还存在于自己利用现有的接口,搭建集成。需要大量的时间、精力、成本来定制管理。


nginx:

Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

 


文章转载自EffectiveCoding,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论