1.本发明涉及it与软件开发领域,特别涉及一种服务功能稳定性的自动化评估方法。
背景技术:
2.在当前互联网行业推广敏捷开发、快速迭代的背景下,每一次版本变更测试团队往往需要做大量的人工回归工作;尽管已经有自动化测试工具,但是维护规则脚本、用例数据的更新也为测试人员带来了很多额外的工作。本专利则是针对这一问题场景,提出了一种不需要人工维护、机器自学习的服务接口功能稳定的自动化评估方法,为复杂场景、敏捷开发团队做功能回归提供了一种低成本、可靠的实施方案。
技术实现要素:
3.本发明要解决的技术问题是克服现有技术的缺陷,提供一种服务功能稳定性的自动化评估方法,与常规自动化测试相比,不需要长期投入资源维护多变的脚本规则,以及相对应的测试数据,完全减除自动化测试人员维护用例、数据的工作量。
4.本发明提供了如下的技术方案:
5.本发明提供一种服务功能稳定性的自动化评估方法,包括以下方法:
6.一、应用服务首次接入需配置jvm sdk,其提供对流量录制的增强;
7.二、采集完整一个周期数据后(通常为一周),特征分析模块将每个接口请求数据的集合分别采用聚类算法实现自动化分类,算法详述为:
8.相关性分析、特征选择:通常性输入数据具有如下特点:例如按用户特点分为登录用户请求、非登录用户请求、会员用户请求等;那么对于输入数据,采用euclidean distance算法为基础,在此基础上,基于各接口业务特点,动态的调整每个xiyi的特征贡献度z,z的计算公式基础为区分度算法,具体含义为将那些区分度不是很高、特征不明显的入参字段权重降低,由此将每个入参字段分别放入不同维度进行距离计算,最终对于有n个入参字段的接口本方案采用如下公式:
[0009][0010]
三、执行完采样数据请求后,即开始稳定性分析阶段,本阶段仍采用euclidean distance算法为基础,以及响应数据各字段的动态特征贡献度z,公式为:
[0011][0012]
完整方案整体可分为如下模块:
[0013]
a)流量录制模块:
[0014]
i.基于javaagent的流量录制子模块:
[0015]
(1)对业务代码的零入侵;
[0016]
(2)本模块负责根据配置将流量入口的请求参数、响应数据记录到本地日志;
[0017]
ii.基于logagent的日志采集子模块:
[0018]
(1)对业务服务器资源低损耗;
[0019]
(2)本模块负责将流量录制模块记录的请求参数、响应数据采集并发送到数据存储模块;
[0020]
iii.数据存储模块:
[0021]
(1)全量数据存储在hive;
[0022]
(2)用于执行脚本时向接口触发的采样数据存储在es集群;
[0023]
b)数据处理模块:
[0024]
i.针对采集的历史请求数据做聚类分析子模块:
[0025]
本模块对请求数据做聚类分析和对响应数据做特征分析;相关性分析、特征选择:通常性输入数据具有如下特点:例如按用户特点分为登录用户请求、非登录用户请求、会员用户请求等;那么对于输入数据,采用euclidean distance算法为基础,在此基础上,基于各接口业务特点,动态的调整每个xiyi的特征贡献度z,z的计算公式基础为区分度算法,具体含义为将那些区分度不是很高、特征不明显的入参字段权重降低,由此将每个入参字段分别放入不同维度进行距离计算,最终对于有n个入参字段的接口本方案采用如下公式:
[0026][0027]
c)请求模块:
[0028]
本模块负责依据指定的请求参数、向指定的接口发送请求并记录响应数据;
[0029]
d)功能稳定性分析模块:
[0030]
本模块是基于b)中得到的各分类下接口响应的特征模型,对c)中得到的响应数据做相似度偏向量统计,公式同对于偏移量达到指定阈值时输出结果不稳定的告警。
[0031]
与现有技术相比,本发明的有益效果如下:
[0032]
本发明提供一种服务功能稳定性的自动化评估方法,与常规自动化测试相比,不需要长期投入资源维护多变的脚本规则,以及相对应的测试数据,完全减除自动化测试人员维护用例、数据的工作量。
附图说明
[0033]
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
[0034]
图1是数据采集模块流程示意图。
具体实施方式
[0035]
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实
施例仅用于说明和解释本发明,并不用于限定本发明。其中附图中相同的标号全部指的是相同的部件。
[0036]
实施例1
[0037]
如图1,本发明提供一种服务功能稳定性的自动化评估方法,包括以下方法:
[0038]
一、应用服务首次接入需配置jvm sdk,其提供对流量录制的增强;
[0039]
二、采集完整一个周期数据后(通常为一周),特征分析模块将每个接口请求数据的集合分别采用聚类算法实现自动化分类,算法详述为:
[0040]
相关性分析、特征选择:通常性输入数据具有如下特点:例如按用户特点分为登录用户请求、非登录用户请求、会员用户请求等;那么对于输入数据,采用euclidean distance算法为基础,在此基础上,基于各接口业务特点,动态的调整每个xiyi的特征贡献度z,z的计算公式基础为区分度算法,具体含义为将那些区分度不是很高、特征不明显的入参字段权重降低,由此将每个入参字段分别放入不同维度进行距离计算,最终对于有n个入参字段的接口本方案采用如下公式:
[0041][0042]
三、执行完采样数据请求后,即开始稳定性分析阶段,本阶段仍采用euclidean distance算法为基础,以及响应数据各字段的动态特征贡献度z,公式为:
[0043][0044]
完整方案整体可分为如下模块:
[0045]
a)流量录制模块:
[0046]
i.基于javaagent的流量录制子模块:
[0047]
(1)对业务代码的零入侵;
[0048]
(2)本模块负责根据配置将流量入口的请求参数、响应数据记录到本地日志;
[0049]
ii.基于logagent的日志采集子模块:
[0050]
(1)对业务服务器资源低损耗;
[0051]
(2)本模块负责将流量录制模块记录的请求参数、响应数据采集并发送到数据存储模块;
[0052]
iii.数据存储模块:
[0053]
(1)全量数据存储在hive;
[0054]
(2)用于执行脚本时向接口触发的采样数据存储在es集群;
[0055]
b)数据处理模块:
[0056]
i.针对采集的历史请求数据做聚类分析子模块:
[0057]
本模块对请求数据做聚类分析和对响应数据做特征分析;相关性分析、特征选择:通常性输入数据具有如下特点:例如按用户特点分为登录用户请求、非登录用户请求、会员用户请求等;那么对于输入数据,采用euclidean distance算法为基础,在此基础上,基于各接口业务特点,动态的调整每个xiyi的特征贡献度z,z的计算公式基础为区分度算法,具
体含义为将那些区分度不是很高、特征不明显的入参字段权重降低,由此将每个入参字段分别放入不同维度进行距离计算,最终对于有n个入参字段的接口本方案采用如下公式:
[0058][0059]
c)请求模块:
[0060]
本模块负责依据指定的请求参数、向指定的接口发送请求并记录响应数据;
[0061]
d)功能稳定性分析模块:
[0062]
本模块是基于b)中得到的各分类下接口响应的特征模型,对c)中得到的响应数据做相似度偏向量统计,公式同对于偏移量达到指定阈值时输出结果不稳定的告警。
[0063]
实施例如下:
[0064]
a)字段筛选:根据字段含义和区分度将无含义字段、区分度低于阈值的字段丢弃不处理或降低权重。
[0065]
b)将新得到的接口相应数据与已有的特征进行比对,定义如下稳定性评价标准:
[0066]
稳定度:即新得到的数据与已有数据的相似度。
[0067]
图1是数据采集模块流程示意图,本模块负责对被监测应用的指定接口采集请求、响应数据,并写入本地日志文件;再通过logagent将日志数据最终发送、存储在数据平台hive表中;
[0068]
本专利的方法、方案首次用于接口稳定性评估,在一定程度上可代替接口自动化测试工作;
[0069]
接口特征分析时,针对已经收集到的请求入出参数据,通过聚类算法得到多个维度的分类数据,同时也通过自定义的方式基于业务属性显示指定分类特征依据,两者相结合时分类维度的实际覆盖度高。
[0070]
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
转载请注明原文地址:https://tc.8miu.com/read-1886.html