
技术摘要:
本申请实施例提供了数据通信方法、装置、电子设备及存储介质,该方法包括:拦截由第一应用向第二应用发送的通信数据;按照预设mock规则,对通信数据中的参数进行修改,得到异常通信数据;向第二应用发送mock数据。本申请实施例的数据通信方法,将通信数据中的参数进行 全部
背景技术:
在软件开发的各个阶段,进程之间的通信会约定固定的数据格式,一般情况下都 是以JSON(JavaScript Object Notation,JavaScript对象简谱)格式为主。例如,服务器使 用Java语言,客户端使用C语言,客户端与服务器通信的中间数据的格式一般使用JSON格 式;此外在同一终端中当跨平台应用通信时,中间数据的格式一般也使用JSON格式,其中跨 平台应用通信是指在不同语言协议的应用之间进行通信。这种固定的数据格式在开发中已 经形成了默认的规范。 客户端需要与服务器间进行通信,对于服务器响应的数据,客户端会有不同的处 理方式,例如应用中用户角色会有游客、一般用户、会员用户之分,对于不同身份的用户,客 户端中对应的功能也不同,这些功能大部分是由服务器存储的。然而在通信数据转换为 JSON格式数据的过程中,由于脚本兼容问题、脚本编辑问题或通信数据丢包问题等,可能会 出现转换后的JSON格式数据错误的情况,服务器响应的JSON数据如果有误,客户端的功能 就可能会发生响应异常,例如崩溃,页面显示异常,端上数据错乱等。同一终端中跨平台应 用通信时,例如,Native(本地)客户端和HTML(Hyper Text Markup Language,超文本标记 语言)页面通信,也会产生上述异常情况。 如果产品上线后频繁出现响应异常的情况,会降低用户的使用体验,造成用户流 失。因此,为了减少响应异常的情况,希望即使JSON格式数据出现问题,也能做出正确的响 应,这就需要在功能测试阶段完成针对异常JSON格式数据的响应数据的收集。然而在功能 测试阶段,仅模拟通信的一般过程,很难模拟到JSON格式数据出现问题的情况,导致功能测 试效率低下。
技术实现要素:
本申请实施例的目的在于提供一种数据通信方法、装置、电子设备及存储介质,以 实现增加功能测试的效率。具体技术方案如下: 第一方面,本申请实施例提供了一种数据通信方法,所述方法包括: 拦截由第一应用向第二应用发送的通信数据,其中,所述第一应用与所述第二应 用为不同终端中的应用; 按照预设mock规则,对所述通信数据中的参数进行修改,得到异常通信数据;其 中,所述预设mock规则用于对所述通信数据中的参数进行修改; 向所述第二应用发送所述异常通信数据。 可选的,所述拦截由第一应用向第二应用发送的通信数据,包括: 利用预设抓包工具拦截由第一应用向第二应用发送的JSON格式的通信数据,其 4 CN 111555935 A 说 明 书 2/10 页 中,所述预设抓包工具为Charles工具。 可选的,所述预设mock规则用于修改所述通信数据中的数组、对象、字符型、布尔 型中的至少一项。 可选的,所述方法还包括: 建立已生成的异常通信数据与该异常通信数据对应的通信数据的标识的映射关 系,存储所述映射关系及所述异常通信数据; 在拦截由第一应用向第二应用发送的通信数据之后,所述方法还包括: 按照拦截的通信数据的标识,判断是否存储有所述拦截的通信数据对应的异常通 信数据; 所述按照预设mock规则,对所述通信数据中的参数进行修改,得到异常通信数据, 包括: 在未存储有所述拦截的通信数据对应的异常通信数据的情况下,按照预设mock规 则,对所述拦截的通信数据中的参数进行修改,得到异常通信数据。 可选的,在所述按照当前拦截的通信数据的标识,判断是否存储有当前拦截的通 信数据对应的异常通信数据之后,所述方法还包括: 若已经存储有当前拦截的通信数据对应的异常通信数据,向所述第二应用发送当 前拦截的通信数据对应的异常通信数据。 可选的,在所述向所述第二应用发送所述异常通信数据之后,所述方法还包括: 获取所述第二应用根据所述异常通信数据返回的响应数据,并将所述响应数据写 入日志中,以进行异常分析。 第二方面,本申请实施例提供了一种数据通信方法,所述方法包括: 在第一应用通过预设桥接通信方式向第二应用发送通信数据之前,截取所述通信 数据,其中,所述第一应用与所述第二应用为同一终端内的不同平台上的应用; 按照预设mock规则,对所述通信数据中的参数进行修改,得到异常通信数据,其 中,所述预设mock规则用于对所述通信数据中的参数进行修改; 通过所述预设桥接通信方式向所述第二应用发送所述异常通信数据。 可选的,所述预设mock规则用于修改所述通信数据中的参数类型、参数值、请求时 间中的至少一项。 可选的,在所述通过所述预设桥接通信方式向所述第二应用发送所述异常通信数 据之后,所述方法还包括: 将所述第二应用执行所述异常通信数据的结果数据写入日志中,以进行异常分 析。 第三方面,本申请实施例提供了一种数据通信装置,所述装置包括: 通信数据抓包模块,用于拦截由第一应用向第二应用发送的通信数据,其中,所述 第一应用与所述第二应用为不同终端中的应用; 异常通信数据生成模块,用于按照预设mock规则,对所述通信数据中的参数进行 修改,得到异常通信数据;其中,所述预设mock规则用于对所述通信数据中的参数进行修 改; 异常通信数据发送模块,用于向所述第二应用发送所述异常通信数据。 5 CN 111555935 A 说 明 书 3/10 页 可选的,所述通信数据抓包模块,具体用于利用预设抓包工具拦截由第一应用向 第二应用发送的JSON格式的通信数据,其中,所述预设抓包工具为Charles工具。 可选的,所述预设mock规则用于修改所述通信数据中的数组、对象、字符型、布尔 型中的至少一项。 可选的,所述装置还包括: 异常通信数据存储模块,用于建立已生成的异常通信数据与该异常通信数据对应 的通信数据的标识的映射关系,存储所述映射关系及所述异常通信数据; 数据标识检测模块,用于按照拦截的通信数据的标识,判断是否存储有所述拦截 的通信数据对应的异常通信数据; 所述异常通信数据生成模块702,具体用于在未存储有所述拦截的通信数据对应 的异常通信数据的情况下,按照预设mock规则,对所述拦截的通信数据中的参数进行修改, 得到异常通信数据。 可选的,所述装置还包括:异常通信数据获取模块,用于若已经存储有当前拦截的 通信数据对应的异常通信数据,向所述第二应用发送当前拦截的通信数据对应的异常通信 数据。 可选的,所述装置还包括:日志获取模块,用于获取所述第二应用根据所述异常通 信数据返回的响应数据,并将所述响应数据写入日志中,以进行异常分析。 第四方面,本申请实施例提供了一种数据通信装置,所述装置包括: 通信拦截模块,用于在第一应用通过预设桥接通信方式向第二应用发送通信数据 之前,截取所述通信数据,其中,所述第一应用与所述第二应用为同一终端内的不同平台上 的应用; 参数修改模块,用于按照预设mock规则,对所述通信数据中的参数进行修改,得到 异常通信数据,其中,所述预设mock规则用于对所述通信数据中的参数进行修改; 数据发送模块,用于通过所述预设桥接通信方式向所述第二应用发送所述异常通 信数据。 可选的,所述通信数据为JSON格式的数据。 可选的,所述预设mock规则用于修改所述通信数据中的数组、对象、字符型、布尔 型中的至少一项。 可选的,所述装置还包括:日志生成模块,用于将所述第二应用执行所述异常通信 数据的结果数据写入日志中,其中,所述日志用于对后续的异常分析。 第五方面,本申请实施例提供了一种电子设备,包括处理器及存储器; 所述存储器,用于存放计算机程序; 所述处理器,用于执行所述存储器上所存放的程序时,实现上述任一所述的数据 通信方法。 第六方面,本申请实施例提供了一种计算机可读存储介质,其特征在于,所述计算 机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述 的数据通信方法。 本申请实施例提供的数据通信方法、装置、电子设备及存储介质,拦截由第一应用 向第二应用发送的通信数据;按照预设mock规则,对上述通信数据中的参数进行修改,得到 6 CN 111555935 A 说 明 书 4/10 页 异常通信数据;向上述第二应用发送上述异常通信数据。将通信数据中的参数进行修改,能 够直接获取到异常通信数据,从而能够增加功能测试的效率,并且实现了对通信数据的自 动mock(仿制),减少了测试人员工作量,降低了测试人员的主观因素的影响,增加了异常数 据验证的全面性。当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的 所有优点。 附图说明 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。 图1为本申请实施例的数据通信方法的第一种示意图; 图2为本申请实施例的数据通信方法的第二种示意图; 图3为本申请实施例的数据通信方法的第三种示意图; 图4为本申请实施例的数据通信方法的第四种示意图; 图5为本申请实施例的数据通信方法的第五种示意图; 图6为本申请实施例的数据通信方法的第六种示意图; 图7为本申请实施例的数据通信方法的第七种示意图; 图8为本申请实施例的数据通信方法的第八种示意图; 图9a为本申请实施例的数据通信装置的第一种示意图; 图9b为本申请实施例的数据通信装置的第二种示意图; 图10为本申请实施例的电子设备的一种示意图。