
技术摘要:
本申请公开了页面测试方法、装置、电子设备及存储介质,该方法预先在本地配置数据模拟功能,并为各待测试页面设置预设标识,以表征页面是否需要调用数据模拟功能,再将待测试页面对应的脚本源文件中的调用部分隐藏;当根据待测试页面对应的预设标识判定页面需要调用数 全部
背景技术:
开发测试,即对开发的模块程序或者单元程序进行测试,是开发过程中或者开发 完成后必不可少的环节,目的是及时地发现错误或缺陷,以及时修复,从而保证所开发的程 序的正确性和稳定性。 以HTML页面为例,相关技术对前端页面的测试通常以后端提供的可进行业务逻辑 的接口为基础,或者,在后端接口未完善的情况下,通过搭建Mock服务来提供对前端页面逻 辑的响应结果。例如,一种基于Mock服务的测试方法中,首先接收客户端发送的Mock数据请 求,并提取Mock数据请求中的请求地址信息,然后调用与该请求地址信息对应的Mock服务 接口,以通过相应的Mock服务生成客户端所请求的Mock数据,最后将Mock数据返回给客户 端,从而完成对客户端侧业务逻辑的响应。 从上述测试方法可以看出,由于针对不同的客户端业务需要搭建不同的Mock服 务,并需要编写相应的Mock服务接口,因此当接口较多或者多方协作时,极易出现接口被覆 盖的情况,从而降低前端测试效率,并耗费大量的开发成本和维护成本。
技术实现要素:
本申请提供一种页面测试方法、装置、电子设备及存储介质,以提高前端测试效 率,降低开发成本和维护成本。 第一方面,本申请提供一种页面测试方法,所述方法包括: 当客户端请求展示目标页面时,获取目标页面对应的预设标识,所述预设标识用 于表征所述目标页面是否为预设页面,所述预设页面为需要调用数据模拟功能的页面; 响应于接收到的脚本请求,获取所述目标页面对应的脚本源文件,所述脚本源文 件包括被隐藏的调用部分,所述调用部分用于拦截所述客户端对指定后端接口的调用,执 行对所述数据模拟功能的调用; 在所述目标页面为所述预设页面的情况下,通过修改所述脚本源文件,取消对所 述调用部分的隐藏; 根据修改后的脚本源文件生成第一脚本,并将所述第一脚本返回给所述客户端, 以使所述客户端通过运行所述第一脚本调用所述数据模拟功能,以获取模拟数据,实现对 所述目标页面的测试。 进一步,所述方法还包括: 在所述目标页面不为所述预设页面的情况下,直接根据所述脚本源文件生成第二 脚本,并将所述第二脚本返回给所述客户端,以使所述客户端通过运行所述第二脚本调用 所述指定后端接口,以获取后端数据,实现对所述目标页面的测试。 5 CN 111597110 A 说 明 书 2/8 页 进一步,所述调用部分具有注释信息,所述注释信息为第一注释信息或者第二注 释信息,所述第一注释信息用于隐藏所述调用部分,以使所述客户端跳过对所述调用部分 的运行,所述第二注释信息用于拦截所述客户端对指定后端接口的调用,并使客户端运行 所述调用部分,以调用所述数据模拟功能; 所述通过修改所述脚本源文件取消对所述调用部分的隐藏,包括: 将所述调用部分的注释信息由所述第一注释信息修改为所述第二注释信息。 进一步,所述当客户端请求展示目标页面时,获取目标页面对应的预设标识,包 括: 接收客户端发送的页面请求,所述页面请求用于获取所述目标页面的页面文件, 所述页面请求包括所述目标页面的页面地址信息; 根据所述页面地址信息获取所述目标页面对应的预设标识。 进一步,所述预设标识为第一预设标识或者第二预设标识,所述第一预设标识表 征所述目标页面为预设页面,所述第二预设标识表征所述目标页面不为所述预设页面。 进一步,所述获取目标页面对应的预设标识之后,所述方法还包括: 根据所述预设标识保存所述数据模拟功能对应的启用状态,保存的所述启用状态 与所述预设标识的表征结果相对应; 其中,如果所述预设标识为所述第一预设标识,保存的所述启用状态为开启状态, 如果所述预设标识为所述第二预设标识,保存的所述启用状态为关闭状态。 进一步,所述根据预设标识保存所述数据模拟功能对应的启用状态,包括: 将所述数据模拟功能对应的启用状态保存在预置的session对象中。 进一步,当接收到所述脚本请求后,按照下述步骤,确定所述目标页面是否为预设 页面,包括: 读取保存在预置的session对象中的所述启用状态; 如果读取到所述开启状态,则确定所述目标页面为所述预设页面; 如果读取到所述关闭状态,则确定所述目标页面不为所述预设页面。 进一步,所述生成第一脚本或者第二脚本,包括: 对所述修改后的脚本源文件或者未修改的脚本源文件进行编译,输出与所述修改 后的脚本源文件对应的第一脚本或者与未修改的脚本源文件对应的第二脚本。 第二方面,本申请还提供一种页面测试装置,所述装置包括: 标识获取模块,用于当客户端请求展示目标页面时,获取目标页面对应的预设标 识,所述预设标识用于表征所述目标页面是否为预设页面,所述预设页面为需要调用数据 模拟功能的页面; 脚本源文件获取模块,用于响应于接收到的脚本请求,获取所述目标页面对应的 脚本源文件,所述脚本源文件包括被隐藏的调用部分,所述调用部分用于拦截所述客户端 对指定后端接口的调用,执行对所述数据模拟功能的调用; 脚本源文件修改模块,用于在所述目标页面为所述预设页面的情况下,通过修改 所述脚本源文件,取消对所述调用部分的隐藏; 脚本生成模块,用于根据修改后的脚本源文件生成第一脚本; 脚本返回模块,用于将所述第一脚本返回给所述客户端,以使所述客户端通过运 6 CN 111597110 A 说 明 书 3/8 页 行所述第一脚本调用所述数据模拟功能,以获取模拟数据,实现对所述目标页面的测试。 进一步:所述脚本生成模块,还用于在所述目标页面不为所述预设页面的情况下, 直接根据所述脚本源文件生成第二脚本; 所述脚本返回模块,还用于将所述第二脚本返回给所述客户端,以使所述客户端 通过运行所述第二脚本调用所述指定后端接口,以获取后端数据,实现对所述目标页面的 测试。 进一步,所述调用部分具有注释信息,所述注释信息为第一注释信息或者第二注 释信息,所述第一注释信息用于隐藏所述调用部分,以使所述客户端跳过对所述调用部分 的运行,所述第二注释信息用于拦截所述客户端对指定后端接口的调用,并使客户端运行 所述调用部分,以调用所述数据模拟功能; 所述脚本源文件修改模块具体用于:将所述调用部分的注释信息由所述第一注释 信息修改为所述第二注释信息。 进一步,所述标识获取模块,包括: 请求接收单元,用于接收客户端发送的页面请求,所述页面请求用于获取所述目 标页面的页面文件,所述页面请求包括所述目标页面的页面地址信息; 标识获取单元,用于根据所述页面地址信息获取所述目标页面对应的预设标识。 进一步,所述预设标识为第一预设标识或者第二预设标识,所述第一预设标识表 征所述目标页面为预设页面,所述第二预设标识表征所述目标页面不为所述预设页面。 进一步,所述装置还包括: 状态保存模块,用于根据所述预设标识保存所述数据模拟功能对应的启用状态, 保存的所述启用状态与所述预设标识的表征结果相对应; 其中,如果所述预设标识为所述第一预设标识,保存的所述启用状态为开启状态, 如果所述预设标识为所述第二预设标识,保存的所述启用状态为关闭状态。 进一步,所述状态保存模块具体用于:将所述数据模拟功能对应的启用状态保存 在预置的session对象中。 进一步,所述装置还包括: 确定模块,用于读取保存在预置的session对象中的所述启用状态;如果读取到所 述开启状态,则确定所述目标页面为所述预设页面;如果读取到所述关闭状态,则确定所述 目标页面不为所述预设页面。 进一步,所述脚本生成模块具体用于:对所述修改后的脚本源文件或者未修改的 脚本源文件进行编译,输出与所述修改后的脚本源文件对应的第一脚本或者与未修改的脚 本源文件对应的第二脚本。 第三方面,本申请还提供一种电子设备,包括: 存储器,用于存储程序指令; 处理器,用于调用并执行所述存储器中的程序指令,以实现第一方面所述的方法。 第四方面,本申请还提供一种存储介质,所述存储介质中存储有计算机程序,当第 二方面所述的装置的至少一个处理器执行所述计算机程序时,所述装置执行第一方面所述 的方法。 由以上技术方案可知,本申请实施例提供一种页面测试方法,该方法预先在本地 7 CN 111597110 A 说 明 书 4/8 页 配置数据模拟功能,并为各待测试页面设置预设标识,以表征待测试页面是否需要调用本 地的数据模拟功能,再将待测试页面对应的脚本源文件中的调用部分隐藏;当根据待测试 页面对应的预设标识判定待测试页面需要调用本地的数据模拟功能时,取消对脚本源文件 中调用部分的隐藏,从而使客户端在运行包含调用部分的脚本时,执行对数据模拟功能的 调用,以获取模拟数据用以页面测试,相应的,当根据待测试页面对应的预设标识判定待测 试页面不需要调用本地的数据模拟功能时,保持对调用部分的隐藏,从而使客户端在运行 隐藏调用部分的脚本时,执行对指定后端接口的调用,以获取后端数据用于页面测试。可 见,该方法可以灵活切换页面数据的来源,每个页面中每个功能的数据模拟功能独立、修改 容易、维护简单,进而可以提高前端测试效率,降低开发成本和维护成本。 附图说明 为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简 单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下, 还可以根据这些附图获得其他的附图。 图1为本申请根据一示例性实施例示出的页面测试方法应用场景示意图; 图2为本申请根据一示例性实施例示出的页面测试方法流程图; 图3为本申请根据一示例性实施例示出的页面测试装置框图; 图4为本申请实施例提供的电子设备的硬件结构示意图。