周云梅
摘 要:随着消费金融业务不断增加,需要调用大量第三方服务来核查用户资质,目前国内在这方面仍是短板。文章采用自动化测试平台与第三方平台之间搭建MOCK平台,对第三方数据源进行模拟测试,解决了现有技术中存在的一些不足。
关键词:MOCK平台模拟数据源测试;第三方数据源;方法
随着互联网技术在消费金融领域中的应用,其高效、便捷、普惠的优势,使得消费金融个贷业务呈现渠道多样化、客户群体覆盖广、审批快捷高效的新特征。在当前消费金融业务量不断提升的背景下,迫切需要依托第三方服务来快速准确核查用户资质,最大限度避免信息不对称问题,客观、准确地为客户画像,揭示隐性风险和潜在风险,实现对虚假信息、欺诈行为的准确识别和实时预警。
1 国内第三方数据源测试存在问题
(1)第三方服务方提供的测试数据比较简单且环境不稳定,经常出现超时等异常情况,同时提供的测试数据也不能完全满足测试需求。
(2)部分第三方服务方无测试环境,只能提供生产环境,该环境只要调用成功,就会收取相应的费用。
(3)无法满足前端测试人员需要配置特殊情况的测试数据,一笔申请请求覆盖多个第三方服务。
(4)无法实现自动化测试的需求。
2 第三方数据源测试方法探索
针对上述问题,可在自动化测试平台与第三方平台之间搭建MOCK平台,对第三方数据源进行模拟测试,确保数据源稳定性,避免超时等异常情况,大幅提升测试效率和质量。
2.1 主要优点
(1)统一维护和管理第三方数据源,可以保证数据源的稳定性,避免超时等异常情况,保证测试的快速高效;同时将第三方数据源的数据保存在MOCK平台,只进行一次数据获取,测试的时候直接在MOCK平台读取数据,不需要重复付出第三方测试费用。(2)可支持多线程、高并发,第三方数据源与自动化测试有机结合,解决了一笔申请请求覆盖多个第三方服务的自动测试问题。(3)前端测试人员可以根据需要配置特殊情况的测试,拓展方便、可移植性高。
2.2 具体方法
基于MOCK平台的第三方数据源模拟测试流程主要有5个步骤,如图1所示。
(1)在自动化测试平台与第三方平台之间搭建MOCK平台。MOCK平台包括用户配置模块、自定义服务配置模块、管理数据源规则模块、删除数据源规则模块、批量导入规则模块和批量导出规则模块。
用户配置模块用于配置系统用户的账号和密码,便于管理登录MOCK平台系统的用户。
自定义服务配置模块用于管理和配置第三方服务ID和所属系统名。
管理数据源规则模块用于新增规则、修改规则以及第三方服务的响应结果。
删除数据源规则模块用于删除指定的第三方服务下的所有规则。
批量导入规则模块用于导入指定的规则到指定的第三方服务。
批量导出规则模块用于导出指定的第三方服务下的规则。
(2)MOCK平台获取第三方平台数据报文,并将第三方平台数据报文存到REDIS服务器,MOCK平台将用户配置的服务信息及规则匹配信息存储至REDIS服务器。
根据第三方数据源的接口文档,解析接口文档中表格,生成字段名加每个字段的枚举值范围;根据字段枚举值范围,生成第三方数据源所有报文;通过HTTP服务自动批量或单笔提交第三方数据源报文、配置数据源服务名、测试环境、匹配规则、阀值到MOCK平台,并存储第三方平台数据等内容到REDIS服务器,以便测试过程中使用。
联调测试中通过关键字分析自动抓取第三方数据源的日志文件,将日志中map格式报文转成jsno格式;通過HTTP服务自动批量或单笔提交第三方数据源报文、配置数据源服务名、测试环境、匹配规则、阀值到MOCK平台,并存储第三方平台数据等内容到REDIS服务器,以便测试过程中使用。
手工编辑第三方数据源异常报文,用于测试异常报文的情况;通过HTTP服务自动批量或单笔提交第三方数据源报文、配置数据源服务名、测试环境、匹配规则、阀值到MOCK平台,并存储第三方平台数据等内容到REDIS服务器,以便测试过程中使用。
(3)自动化测试平台测试时,根据规则匹配,匹配用户配置的规则,直接调用MOCK平台存储的数据,返回调用结果给自动化测试平台;规则支持模式匹配、精确匹配两种;返回报文的消息体为json格式,其中的值支持$符变量引用,可引用输入变量中的内容,也可以产生当前时间$timestamp或产生序列号$serialNo等。
用户发起执行自动化脚本指令,调用自动化平台根据第三方数据源的接口文档自动生成MOCK平台数据和期望结果。自动化平台调用MOCK平台,根据用户指定的配置内容自动配置第三方的模拟报文到MOCK平台,并生效。配置数据源服务名,服务包括反欺诈规则(同盾、白骑士、腾讯、百融)、运营商规则(安迅、集奥、天翼)以及综合服务。配置测试环境、入参规则、出参规则、阀值等。
(4)自动化测试平台根据MOCK平台返回的第三方平台数据报文,给出通过或拒绝的结果。
一笔请求调用多个第三方服务方,串行精确匹配上MOCK平台的第一个服务方规则,直接返回MOCK平台存储的第一个数据源报文给测试系统;测试系统根据返回报文,决定通过或拒绝的结果;如果通过,再进行第二个服务方规则的匹配,如果匹配好,返回报文,测试系统根据返回报文,决定通过或拒绝的结果;如果拒绝,直接不调用第三方服务方;循环执行上述过程直至多个第三方服务方均得出结果。
(5)自动化测试平台根据测试系统返回的结果比对测试结果的正确性。自动化平台可以录制并保存测试结果,也可以直接自动比对返回的报文内容和数据库相应的字段。所有测试用例执行完毕后,发送测试报告到指定的邮箱,删除MOCK平台的测试规则。