软件测试方法、装置及存储介质制造方法及图纸

技术编号:34468883 阅读:12 留言:0更新日期:2022-08-10 08:42
本公开实施例公开了一种软件测试方法、装置及存储介质,其中,方法包括:获取待测软件的日志文件,所述日志文件包括所述待测软件的流量数据的请求参数和原执行结果;基于所述流量数据的请求参数,获取对应的新执行结果;在所述原执行结果和所述对应的新执行结果的数据结构不相同时,将待转换结果的数据结构转换至与参考结果的数据结构一致,得到待较执行结果,所述待转换结果为所述新执行结果时,所述参考结果为所述原执行结果;所述待转换结果为所述原执行结果时,所述参考结果为所述新执行结果;比较所述参考结果和所述待较执行结果,得到测试结果;输出所述测试结果。本公开实施例可以通过实时流量回放功能快速进行软件测试。试。试。

【技术实现步骤摘要】
软件测试方法、装置及存储介质


[0001]本公开涉及软件测试
,尤其涉及一种软件测试方法、装置及存储介质。

技术介绍

[0002]在接口迁移、应用程序拆分、应用程序重构等需要进行软件测试的场景中,靠测试人员人为构造测试数据的测试方法耗时长,而且也难以构造出满足所有场景测试的数据,影响测试效果。
[0003]现有技术中,提出了通过流量回放测试平台实现软件测试的方法,但是,待测应用程序在接入流量回放测试平台时,可能会需要修改配置中心,例如,如果流量回放测试平台需要对Dubbo接口的数据进行流量回放,则需要配置对应Dubbo接口的注册中心(例如zookeeper),配置注册中心不仅浪费资源,而且操作繁琐。除此之外,流量回放测试平台比较待测应用程序的返回结果时,如果待测应用程序新旧版本返回结果的数据结构不相同,则还需要修改项目代码、部署代码,也导致时间资源和人力资源的浪费。为了解决上述问题,本公开提供一种新的流量回放测试平台,以便能快速通过实时流量回放功能进行软件测试。

技术实现思路

[0004]本公开实施例为了能快速通过实时流量回放功能进行软件测试,提供了一种软件测试方法、装置及存储介质。
[0005]根据本公开实施例的一个方面,提供一种软件测试方法,所述方法包括:
[0006]获取待测软件的日志文件,所述日志文件包括所述待测软件的流量数据的请求参数和原执行结果,其中,所述流量数据为在所述待测软件的原版本软件中的流量数据;
[0007]基于所述流量数据的请求参数,获取对应的新执行结果,所述新执行结果为所述流量数据在所述待测软件的待测版本中的执行结果;
[0008]在所述原执行结果和所述对应的新执行结果的数据结构不相同时,将待转换结果的数据结构转换至与参考结果的数据结构一致,得到待较执行结果;
[0009]比较所述参考结果和所述待较执行结果,得到测试结果;
[0010]输出所述测试结果;
[0011]其中,在所述待转换结果为所述新执行结果时,所述参考结果为所述原执行结果;在所述待转换结果为所述原执行结果时,所述参考结果为所述新执行结果。
[0012]在本公开的一个实施例中,所述方法还包括:接收所述待测软件预先配置的数据结构转换规则;
[0013]所述将待转换结果的数据结构转换至与参考结果的数据结构一致,得到所述待较执行结果,包括:
[0014]动态编译所述数据结构转换规则,得到所述数据结构转换工具;
[0015]根据所述数据结构转换规则,转换所述待转换结果的数据结构,得到所述待较执
行结果。
[0016]在本公开的又一实施例中,在所述参考结果和所述待较执行结果为Json字符串格式时,所述比较所述参考结果和所述待较执行结果,得到测试结果包括:
[0017]将所述参考结果和所述待较执行结果分别转换为JsonElement元素,得到所述参考结果对应的第一组节点和所述待较执行结果对应的第二组节点;
[0018]逐一比较所述第一组节点和所述第二组节点;
[0019]在所述第一组节点和所述第二组节点完全一致时,确定测试结果为测试通过;
[0020]在所述第一组节点和所述第二组节点不完全一致时,确定测试结果为测试不通过,并且确定所述第一组节点和所述第二组节点的最高相似度。
[0021]在本公开的又一实施例中,所述逐一比较所述第一组节点和所述第二组节点,包括:
[0022]确定所述第一组节点和所述第二组节点中至少一个节点的节点类型;
[0023]在所述至少一个节点的节点类型为对象或基本数据类型或空类型时,比较所述第一组节点和所述第二组节点中至少一个节点是否相等,并根据比较结果更新对应的父节点的相似度,根据最高父节点的相似度确定所述测试结果;
[0024]在所述至少一个节点的节点类型为数组时,确定与第一数组中的元素比较过的第二数组中的元素最相似的子节点的索引号和最大相似度;
[0025]根据所述最大相似度确定所述测试结果;
[0026]其中,所述第一数组为第一组节点中的节点数组,所述第二数组为第二组节点中的与所述第一数组对应的节点数组。
[0027]在本公开的又一实施例中,在所述至少一个节点的节点类型为对象时,所述根据比较结果更新所述父节点的相似度之后,还包括:
[0028]使用深度遍历算法,遍历所述至少一个节点的子节点;
[0029]对所述至少一个节点的子节点,执行所述确定所述第一组节点和所述第二组节点中至少一个节点的子节点的节点类型的操作。
[0030]在本公开的又一实施例中,在所述原执行结果和所述待较执行结果为文本格式/数据流格式时,所述比较所述参考结果和所述待较执行结果,得到测试结果,包括:
[0031]将所述参考结果和所述待较执行结果按照字符顺序逐一进行比较;
[0032]在存在不一致的字符/字节时,判定测试结果为测试不通过,并且输出不一致的字符;
[0033]在所述参考结果和所述待较执行结果的字符/字节完全相同时,判定测试结果为测试通过。
[0034]在本公开的又一实施例中,在所述待测软件调用Dubbo接口交互数据时,所述获取待测软件的日志文件,包括:
[0035]接收所述待测软件引入的Dubbo过滤器组件发送的所述日志文件,所述Dubbo过滤器组件为所述原版本软件引入的一种组件。
[0036]在本公开的又一实施例中,所述基于所述流量数据的请求参数,获取对应的新执行结果,包括:
[0037]获取所述日志文件中的Dubbo接口的类名、方法名;
[0038]基于所述Dubbo接口的类名、方法名,获取所述待测版本中Dubbo接口的域名信息;
[0039]基于所述Dubbo接口的域名信息、类名、方法名,向所述待测版本发送超文本传输协议请求消息;
[0040]接收所述待测版本中的http2Dubbo组件根据所述超文本传输协议请求消息返回的新执行结果,所述http2Dubbo组件为所述待测版本引入的一种组件,所述http2Dubbo组件用于解析Dubbo接口的信息并调用所述Dubbo接口。
[0041]根据本公开实施例的又一方面,提供一种软件测试装置,所述装置包括:
[0042]第一获取模块,用于获取待测软件的日志文件,所述日志文件包括所述待测软件的流量数据的请求参数和原执行结果,其中,所述流量数据为在所述待测软件的原版本软件中的流量数据;
[0043]第二获取模块,用于基于所述流量数据的请求参数,获取对应的新执行结果,所述新执行结果为所述流量数据在所述待测软件的待测版本中的执行结果;
[0044]数据结构转换模块,用于在所述原执行结果和所述对应的新执行结果的数据结构不相同时,将待转换结果的数据结构转换至与参考结果的数据结构一致,得到待较执行结果,
[0045]比较模块,用于比较所述参考结果和所述待较执行结果,得到本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种软件测试方法,其特征在于,所述方法包括:获取待测软件的日志文件,所述日志文件包括所述待测软件的流量数据的请求参数和原执行结果,其中,所述流量数据为在所述待测软件的原版本软件中的流量数据;基于所述流量数据的请求参数,获取对应的新执行结果,所述新执行结果为所述流量数据在所述待测软件的待测版本中的执行结果;在所述原执行结果和所述对应的新执行结果的数据结构不相同时,将待转换结果的数据结构转换至与参考结果的数据结构一致,得到待较执行结果;比较所述参考结果和所述待较执行结果,得到测试结果;输出所述测试结果;其中,在所述待转换结果为所述新执行结果时,所述参考结果为所述原执行结果;在所述待转换结果为所述原执行结果时,所述参考结果为所述新执行结果。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:接收所述待测软件预先配置的数据结构转换规则;所述将待转换结果的数据结构转换至与参考结果的数据结构一致,得到所述待较执行结果,包括:动态编译所述数据结构转换规则,得到所述数据结构转换工具;根据所述数据结构转换规则,转换所述待转换结果的数据结构,得到所述待较执行结果。3.根据权利要求1所述的方法,其特征在于,在所述参考结果和所述待较执行结果为Json字符串格式时,所述比较所述参考结果和所述待较执行结果,得到测试结果包括:将所述参考结果和所述待较执行结果分别转换为JsonElement元素,得到所述参考结果对应的第一组节点和所述待较执行结果对应的第二组节点;逐一比较所述第一组节点和所述第二组节点;在所述第一组节点和所述第二组节点完全一致时,确定测试结果为测试通过;在所述第一组节点和所述第二组节点不完全一致时,确定测试结果为测试不通过,并且确定所述第一组节点和所述第二组节点的最高相似度。4.根据权利要求3所述的方法,其特征在于,所述逐一比较所述第一组节点和所述第二组节点,包括:确定所述第一组节点和所述第二组节点中至少一个节点的节点类型;在所述至少一个节点的节点类型为对象或基本数据类型或空类型时,比较所述第一组节点和所述第二组节点中至少一个节点是否相等,并根据比较结果更新对应的父节点的相似度,根据最高父节点的相似度确定所述测试结果;在所述至少一个节点的节点类型为数组时,确定与第一数组中的元素比较过的第二数组中的元素最相似的子节点的索引号和最大相似度;根据所述最大相似度确定所述测试结果;其中,所述第一数组为第一组节点中的节点数组,所述第二数组为第二组节点中的与所述第一数组对应的节点数组。5.根据权利要求4所述的方法,其特征在于,在所述至少一个节点的节点类型为对象时,所述根据比较结果更新所述父节点的相似度之后,还包括:

【专利技术属性】
技术研发人员:钟经纬王凯
申请(专利权)人:晨贝天津技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1