服务端代理脚本录制方法和系统与流程

文档序号:32403649发布日期:2022-12-02 19:51阅读:95来源:国知局
服务端代理脚本录制方法和系统与流程

1.本发明属于软件技术领域,具体涉及一种服务端代理脚本录制方法和系统。


背景技术:

2.网络获取数据的方式多种多样,许多应用使用浏览器通过http/https请求访问系统获取数据。随着系统性能稳定性越来越受关注,需要降低测试难度,采用录制技术实现。现有录制方法有使用socket技术通过代理服务器录制用户请求和使用第三方工具录制用户请求。现有技术方案要么使用socket录制,要么是第三方工具录制,但各有缺陷:
3.(1)socket技术通过代理服务器录制用户请求获取报文复杂程度较高,报文还需进一步使用第三方工具解析处理。使用socket录制,只适合专业化程度高的人处理报文。
4.(2)采用第三方工具录制生成报文文件,需编写程序转化报文文件为需要信息,自动化程度不高。且通过第三方工具录制,需手动导出文件,然后采用程序解析相文件,同时生成需要信息,时间周期长,工作步骤繁琐,自动化程度不高,占用一定的磁盘空间,报文有信息太多,可能会存在敏感信息,技术上亦存在安全风险。


技术实现要素:

5.为解决上述问题,本发明公开了一种服务端代理脚本录制方法和系统。
6.为达到上述目的,本发明的技术方案如下:
7.服务端代理脚本录制方法,包括如下步骤:
8.step1:打开录制网页,设置录制代理服务器ip和端口、不录制ip/域名以及基本设置信息;
9.step2:在录制网页中开启录制服务进行录制,包括如下子步骤:
10.step2-1:开启录制时后台录制服务创建新线程,接收用户录制基础设置信息并启动线程;
11.step2-2:根据录制代理ip和端口port启动录制代理服务,初始化录制代理服务;在step2-1启动线程基础上,依据用户配置信息录制编码;录制代理服务通讯层使用netty框架,在启动前配置自定义编解码器和自定义处理通道channel;录制服务创建自定义channel对应的处理器handler,在处理器handler中使用通道上下文ctx对不同请求创建临时线程或线程组,异步处理用户请求响应信息;临时线程接收请求响应信息,同时生成录制实体record;
12.step3:在待录制网页地址栏输入网址,在浏览器页面操作规划好的业务,各种网络请求和响应信息在录制窗口输出;用户在待录制页面点击按钮产生请求,在录制服务中,请求响应报文经过netty自定义通道,请求报文经netty转发到被录制服务,被录制服务返回响应报文到netty自定义通道,经过拦截器复制截取报文,并产生若干线程异步处理请求响应信息,获取序列号设置record记录,转发到高效缓存队列;完成录制过程;
13.step4:在录制页面中用户能够自定义添加新事务开始和结束标记;在实际录制过
程中获取页面录制记录序列号和事务标记绑定,并转发到高效缓存队列;
14.step5:高效缓存队列实时接收step3-step4中请求响应信息,实时采用websocket技术推送数据到录制界面;
15.step6:存储录制请求,存储时消费step5步骤获取的队列消息message,并存储message到数据库,包括如下子步骤:
16.step6-1:录制请求存储服务实时监听高效缓存队列,按record记录唯一序列号serial排列record记录,当record记录大于等于设定值时,触发存储record信息到数据库;
17.step6-2:采用存储服务处理符合设定值数目的数据记录异步写入数据库;
18.step7:录制请求转脚本,在step6-2基础上监听并提取完整请求信息,生成具体http或https请求方法,存储或追加到脚本方法体内;
19.step8:在录制页面,用户根据需要点击结束录制按钮,关闭录制代理服务。
20.进一步的,所述step2中录制基础设置信息包括录制唯一键id、录制代理ip和端口port、录制编码charset、是否保存录制请求体issave、是否安全套接字层isssl信息;定义录制过程序列号serials,有新请求时序列号自行增加。
21.进一步的,所述step2-2中,当isssl=true时启动https安全录制通道channel;当isssl=false时启动http录制通道channel。
22.进一步的,所述step2-2中,录制实体record属性包括以下属性中的至少一种:被测主机ip和port、路径path、请求方法method、参考referer、起源origin、序列号serial、内容类型contenttype、请求头reqheader、请求体reqcontent、响应头repheader、响应内容repcontent、录制唯一键rid、表单提交数据formdata、表单类型mimetype、文件名filename、文件参数fileparam、文件格式类型filemimetype,isssl。
23.进一步的,所述step6-2中,其中存储服务采用多线程或线程组同时处理数据,完成数据存储功能。
24.进一步的,所述step7包括如下子步骤:
25.step7-1:将step6-2步骤过程中提取出的请求记录record转发给录制请求转脚本服务,经程序处理生成脚本请求记录列表list,并在list中依据序列号前后添加事务开始标记和结束标记;完成录制信息转脚本功能;
26.step7_2:在step6_2步骤过程中已经形成record记录存储列表,根据录制唯一键id和顺序序列号,提取录制运行日志和回放日志,完成录制信息转录制日志功能。
27.服务端代理脚本录制系统,包括:输出展示模块、录制基础信息配置模块、录制模块、录制请求存储模块、录制请求转脚本模块;所述输出展示模块用于展示录制基本信息设置、录制运行日志、录制回放日志、录制实时运行日志;所述录制基础信息配置模块用于配置请求头过滤信息、是否录制请求头、content-type过滤信息、是否录制编码、是否录制报文响应体信息,实现服务端代理脚本录制方法中step1功能,配置好的信息传输至录制模块和录制请求存储模块;所述录制模块用于具体执行录制过程,实现服务端代理脚本录制方法中step2-step5功能;所述录制请求存储模块用于将录制请求响应信息存储到数据库,实现服务端代理脚本录制方法中step6功能;所述录制请求转脚本模块用于监听并提取完整请求信息,生成具体http或https请求方法,存储或追加到脚本方法体内,实现服务端代理脚本录制方法中step7功能。
28.本发明的有益效果为:
29.本发明在录制信息时采取高效多线程异步处理结构,通过高效存储队列临时存储,并实时推送给用户,同时采用转存储策略,并在内存中实时转化脚本。本发明降低了录制过程复杂度,提升了运行效率,可供多用户在平台同时录制。
附图说明
30.图1为本发明提供的服务端代理脚本录制系统结构示意图。
31.图2为本发明提供的服务端代理脚本录制方法流程图。
32.图3为录制初始化示意图。
33.图4为录制过程示意图。
具体实施方式
34.以下将结合具体实施例对本发明提供的技术方案进行详细说明,应理解下述具体实施方式仅用于说明本发明而不用于限制本发明的范围。
35.图1为本发明提供的服务端代理脚本录制系统构成,包括输出展示模块、录制基础信息配置模块、录制模块、录制请求存储模块、录制请求转脚本模块。其中,输出展示模块用于展示录制基本信息设置、录制运行日志、录制回放日志、录制实时运行日志;录制运行日志用于展示录制记录详情;录制回放日志用于展示录制请求响应格式化信息;录制实时运行日志模块用于展示实时录制信息详情;录制基础信息配置模块用于配置请求头过滤信息、是否录制请求头、content-type过滤信息、录制编码(字符编码)、是否录制报文响应体等信息,实现下述方法中step1功能,配置好的信息传输至录制模块和录制请求存储模块;录制模块用于具体执行录制过程,实现下述方法中step2-step5功能。录制请求存储模块用于将录制请求响应信息存储到数据库,实现下述方法中step6功能。录制请求转脚本模块用于监听并提取完整请求信息,生成具体http或https请求方法,存储或追加到脚本方法体内,实现下述方法中step7功能。
36.本发明提供的服务端代理脚本录制方法,其主要流程如图2-图4所示,包括如下步骤:
37.step1:打开录制网页,设置录制代理服务器ip和端口,设置不录制ip/域名(用于保证不录制的ip对相应服务请求),设置其他基本信息,开启录制服务。由前述设置指定的录制代理服务器提供录制服务,所在主机与浏览器所在机器可能不是同一台主机;录制代码无法通过编辑进行变更,每次变更录制代码需要重新发布。
38.step2:在录制网页,用户在录制窗口中可以添加开始事务标记。具体录制初始化步骤如下:
39.step2-1:在step1开启录制时后台录制服务创建新线程接收用户录制基础设置信息并启动线程;录制基础设置信息包括step1中用户设置的基本信息和录制唯一键id,具体包括录制唯一键id、录制代理ip和端口port、录制编码charset、是否保存录制请求体issave、是否安全套接字层isssl等信息;定义录制过程序列号serials,有新请求serials自加一。
40.step2-2:在step2-1步骤后实现图3录制服务初始化功能,录制服务根据录制代理
ip和端口port启动录制代理服务,初始化录制代理服务,在step2-1步骤基础上,依据用户配置信息录制编码,当isssl=true时启动https安全录制通道channel;当isssl=false时启动http录制通道channel;因录制代理服务通讯层使用netty框架,需要在启动前配置自定义编解码码器和自定义处理通道channel;录制服务创建自定义channel对应的处理器handler,在处理器handler中使用通道上下文ctx对不同请求创建临时线程或线程组,异步处理用户请求响应信息;临时线程接收请求响应信息,同时生成录制实体record;录制实体record属性包括被测主机ip和port、路径path、请求方法method、参考referer、起源origin、序列号serial、内容类型contenttype、请求头reqheader、请求体reqcontent、响应头repheader、响应内容repcontent、录制唯一键rid、表单提交数据formdata、表单类型mimetype、文件名filename、文件参数fileparam、文件格式类型filemimetype,isssl等;
41.step3:待录制网页地址栏输入网址,在浏览器页面操作规划好的业务,各种网络请求和响应信息都会在录制窗口输出。用户在待录制页面点击按钮会产生很多请求,在录制服务中,请求响应报文经过netty自定义通道,请求报文经netty转发到被录制服务,被录制服务返回响应报文到netty自定义通道,经过拦截器复制截取报文,并产生很多线程异步处理请求响应截取报文信息,获取序列号设置record记录,转发到高效缓存队列;完成图4录制过程。
42.step4:在录制页面,用户可以自定义添加新事务开始和结束标记。在实际录制过程中获取页面录制记录序列号和事务标记绑定,并转发到高效缓存队列。
43.step5:高效缓存队列实时接收step3-step4中请求响应信息。实时采用websocket技术推送数据到录制界面。
44.step6:录制请求存储需消费step5步骤队列消息message和存储message到数据库。
45.step6-1:录制请求存储服务实时监听高效缓存队列,按record记录唯一序列号serial排列record记录,当record记录大于等于100,触发存储record信息到数据库;其中100这个值可以根据数据存储效率好差更改。
46.step6-2:处理完step6-1步骤后,采用存储服务处理100条数据记录异步写入数据库;其中存储服务采用多线程或线程组同时处理数据,完成数据存储功能。完成图4数据存储功能。
47.step7:录制请求转脚本,在step6-2基础上监听并提取完整请求信息,则生成具体http或https请求方法,存储或追加到脚本方法体内。
48.step7-1:将step6-2步骤过程中提取出的请求记录record转发给录制请求转脚本服务,经程序处理生成脚本请求记录列表list,并在list中依据序列号前后添加事务开始标记和结束标记;完成图4录制信息转脚本功能。
49.step7_2:在step6-2步骤过程中已经形成record记录存储列表,根据录制唯一键id和顺序序列号,提取录制运行日志和回放日志。完成图4录制信息转录制日志功能。
50.step8:在录制页面,用户根据需要点击结束录制按钮,关闭录制代理服务。用户在结束录制前实时监测录制信息是否全部展示,并设置自定义结束事务。关闭录制界面,则可以查看运行日志和回放日志,并可以快速生成脚本文件。
51.需要说明的是,以上内容仅仅说明了本发明的技术思想,不能以此限定本发明的
保护范围,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰均落入本发明权利要求书的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1