一种证券柜台自动化测试方法与流程

    专利2022-07-08  117


    本发明涉及金融科技领域,涉及一种证券柜台的自动化测试方法。



    背景技术:

    随着金融市场的发展,对金融领域的创新越来越多,随着各种新的交易品种交易规则的出现,证券柜台的业务越来越复杂,系统越来越庞大。这样带来了以下问题:整体版本测试时间变长;即使修改了小bug或者小需求,整体回归测试时间还是很长,因为不知道这些小改动是否对其他功能有影响,仍然需要整体回归测试。导致不能快速响应市场需求;人工测试不能保证绝对版本质量。



    技术实现要素:

    1、所要解决的技术问题:

    证券柜台测试的小改动需要整体回归测试,不到快速响应市场需求。而且人工测试不能保证绝对版本质量。

    2、技术方案:

    为了解决以上问题,本发明提供了

    一种证券柜台自动化测试方法,包括自动测试程序,模拟了和证券柜台交互的投资者客户,所述自动测试程序包括测试总控模块和api模块,测试流程包括以下步骤:步骤一:测试总控模块先完成一些初始化操作并调用api和柜台建立连接;步骤二:测试总控模块查询数据库获取一条测试用例并调用api发往柜台;步骤三:测试总控模块接收柜台的响应并记录到数据库中;步骤四:测试总控模块查询数据库获取这条用例的期望结果并和柜台的实际响应校验,并把校验结果更新到数据库;步骤五:重复步骤二-步骤四继续下一条用例;步骤六:用例全部执行完后统计整理成完整测试报告,并返回整体执行成功还是失败;如果失败ci持续集成会通知开发人员。

    3、有益效果:

    本发明提供的方法减少了人力成本,一些规则简单的测试用例都可以让机器完成,让人更多参与用例设计或者复杂的性能测试等,而且快速迭代,提高开发效率,开发提交代码后立即自动测试并反馈测试结果,即早发现bug,bug发现的越早,成本越低。

    附图说明

    图1为本发明的示意图。

    具体实施方式

    下面结合附图和实施例来对本发明进行详细说明。

    如图1所示:证券柜台自动化测试方法,包括自动测试程序,模拟了和证券柜台交互的投资者客户,所述自动测试程序包括测试总控模块和api模块,所述自动测试程序调用api和证券平台交互。

    测试流程包括以下步骤:步骤一:测试总控模块先完成一些初始化操作并调用api和柜台建立连接;步骤二:测试总控模块查询数据库获取一条测试用例并调用api发往柜台;步骤三:测试总控模块接收柜台的响应并记录到数据库中;步骤四:测试总控模块查询数据库获取这条用例的期望结果并和柜台的实际响应校验,并把校验结果更新到数据库;步骤五:重复步骤二-步骤四继续下一条用例;步骤六:用例全部执行完后统计整理成完整测试报告,并返回整体执行成功还是失败;如果失败ci持续集成会通知开发人员。

    本发明的方法将一些规则简单的测试用例都可以让机器完成,开发提交代码后立即自动测试并反馈测试结果,即早发现bug。所述证券柜台自动化测试方法部署在开发的持续集成环境中,开发人员提交代码后自动编译并部署环境并完成自动化测试并生成测试结果报告。

    投资者使用api和柜台交互的接口有很多,比如有登录,报单,撤单,查询报单,查询资金等。针对每个接口数据库中会建三张表:

    用例请求表test_req_xxx,填写测试用例的输入。

    用例响应表test_rsp_xxx,程序保存测试用例的输出。

    用例期望值表test_expect_xxx,填写测试用例的期望值。

    其中xxx是接口名。

    实施例1

    比如登录接口的表是:

    test_req_login:如表所示,表1中有两条用例,第一条填写password111111;第二条password222222。

    表1

    test_rsp_login:只是记录柜台返回,后续定位问题用

    test_expect_login:记录用例期望值,程序会校验柜台返回值和这个表里对应字段,如表2所示,比如第一条用例期望返回的errorid(错误编码)字段为0,errormsg(错误消息)是ok,第二条期望errorid(错误编码)55005,errormsg(错误消息)是wrongpassword;其他字段消息字段类似也会校验。

    表2

    自动测试的时候会有很多用例,这些用例按一定顺序执行,这里每个表里新增了一个tnumber(用例编号)字段来标识不同的用例。

    实施例2

    在实施例1的基础上,test_req_login表1里有两条测试用例,程序先取第一条tnumber为1的记录当做请求(account:70800001888,passwd:111111)组成报文发送给柜台,收到柜台响应后把响应信息和test_expect_login表2里tnumber为1的记录做校验,errorid:0;errormsg:wrongpassword。

    很多测试场景不仅要测试一个接口,而是需要多个接口组合起来测试,接口之间有相互依赖关系:

    实施例3

    场景1:先登录,然后报单再撤单;这里用到3个接口。

    场景2:先登录,报买单,再报卖单,再查询成交,查询资金,登出;这里用到6个接口。

    所以这里测试用例表里新增了一个组合编号字段(gnumber)标识不同的组合,所有的接口表中组合编号字段(gnumber)一样的表示是一个组合的用例。程序优先扫描所有接口把同一个组合的用例执行完。然后再执行下一个组合。

    所述api模块和柜台交互有对话流消息,api发送一个请求给柜台,柜台回复响应消息给api,还有私有流消息,api没有发送请求柜台也会主动发消息给api。针对这种私有流消息自动测试程序也设计了对应的期望值表来校验私有流消息。

    本发明的的测试方法其实就是模拟测试人员构造输入消息发往柜台并校验柜台输出消息,只是这个测试方案把输入和输出消息固化到数据库中,后续可以自动重复执行,后续新增和维护测试用例也比较方便,直接修改数据库记录。整个测试框架并不需要改变。测试人员通过这套测试框架编写设计用例能够满足多数基本的测试场景。

    虽然本发明已以较佳实施例公开如上,但它们并不是用来限定本发明的,任何熟习此技艺者,在不脱离本发明之精神和范围内,自当可作各种变化或润饰,因此本发明的保护范围应当以本申请的权利要求保护范围所界定的为准。


    技术特征:

    1.一种证券柜台自动化测试方法,包括自动测试程序,模拟了和证券柜台交互的投资者客户,所述自动测试程序包括测试总控模块和api模块,测试包括以下步骤:步骤一:测试总控模块先完成一些初始化操作并调用api和柜台建立连接;步骤二:测试总控模块查询数据库获取一条测试用例并调用api发往柜台;步骤三:测试总控模块接收柜台的响应并记录到数据库中;步骤四:测试总控模块查询数据库获取这条用例的期望结果并和柜台的实际响应校验,并把校验结果更新到数据库;步骤五:重复步骤二-步骤四继续下一条用例;步骤六:用例全部执行完后统计整理成完整测试报告,并返回整体执行成功还是失败;如果失败ci持续集成会通知开发人员。

    2.如权利要求1所述的方法,其特征在于:所述投资者使用api和柜台交互有多个接口,包括但不限于登录,报单,撤单,查询报单,查询资金,每个接口数据库中建三张表:用例请求表testregxxx,填写测试用例的输入;用例响应表test_rsp_xxx,程序保存测试用例的输出;用例期望值表test_expect_xxx,填写测试用例的期望值,其中xxx是接口名。

    3.如权利要求2所述的方法,其特征在于:在多个接口组合起来测试时,测试用例表里新增了一个组合编号字段(gnumber)标识不同的组合,如果接口表中组合编号字段值是相同的,表示一个组合的用例,程序先扫描所有接口把同一个组合的用例执行完,然后再执行下一个组合。

    4.如权利要求1-3任一权利要求所述的方法,其特征在于:所述api模块和柜台交互还有私有流消息,所述自动测试程序也通过对应的期望值表来校验私有流消息。

    5.如权利要求4所述的方法,其特征在于:所述私有流包括报单回报,成交回报等消息。

    技术总结
    一种证券柜台自动化测试方法,包括以下步骤:步骤一:测试总控模块先完成一些初始化操作并调用api和柜台建立连接;步骤二:测试总控模块查询数据库获取一条测试用例并调用api发往柜台;步骤三:测试总控模块接收柜台的响应并记录到数据库中;步骤四:测试总控模块查询数据库获取这条用例的期望结果并和柜台的实际响应校验,并把校验结果更新到数据库;步骤五:重复步骤二‑步骤四继续下一条用例;步骤六:用例全部执行完后统计整理成完整测试报告,如果失败CI持续集成会通知开发人员。本发明提供的方法减少了人力成本,人只参与用例设计或者复杂的性能测试等,快速迭代,提高开发效率,开发提交代码后立即自动测试并反馈测试结果,即早发现bug。

    技术研发人员:秦轶轩;孙崇俊;陈昌凤
    受保护的技术使用者:南京艾科朗克信息科技有限公司
    技术研发日:2020.12.18
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-22515.html

    最新回复(0)