这是下半年要做的一个挺锻炼人的项目,涉及内容挺多。
有意向的可以联系我~
13863638369
需要一定的web开发基础。
研究背景:
当前web开发前后台无法独立开发。涉及前后台交互及前端界面渲染时,需要等待后台的进度。而后台完成功能时,大多需要独立的进行接口测试。并且测试的界限很不明了,需要专门的测试人员。现有的单元测试Junit局限性太强,无法构建或模拟一些特殊的对象,及http对象。
摘要:
mock server是开发过程中架设在客户端和服务器端的中间层数据测试软件。主要用于前后端能够完全独立开发。前端不再依赖于后台的开发进度,通过mock server检测请求数据,并且模拟数据。对后台也可进行接口测试,进行可视化的数据的交互模拟,检测错误信息,自动生成检测报告。并且在项目完成后,可定时发送网络请求,检测刚上线的项目是否存在异常。
原理:
<整体架构>
下面是整体的架构思路。mock server架设在客户端及服务器端之间。对于server来说,mockserver就相当于C、B端。对于B、C端而言mock server相当于server。在中间层完成整个项目的测试,使前后台可以独立开发,并且自动化、可视化测试。

<前端分离>
ROOT身份登陆时:
可以对mock server要测试、及模拟数据的接口进行管理。
主要包括:
入参的规则
出参的规则
测试时:
对于前端部分,主要在于以下三点
对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网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。




