• 0
  • 0
分享
  • 一种异步交易模式的接口自动化测试解决方案——软件测试圈
  • 曼倩诙谐 2021-07-02 10:26:07 字数 1048 阅读 1295 收藏 0

  接口测试在我们的项目实施过程中有着重要的意义,快速实施接口测试能够让项目组更早地发现问题,降低修复成本,缩短产品周期。为了提高系统接口测试的效率,我们提早介入项目开发周期开展接口测试实践,并探索适合异步模式系统交易的接口自动化测试方案。

  所谓的异步交易模式,即从接收交易到返回应答存在一定等待时间,且返回应答时另立连接至对手方。要实现该模式下接口测试自动化必须实现非实时报文的自动化匹配与结果核验。按照自动化设计思路,我们把“大象放进冰箱”需要三步操作,报文自动化拼装、解析回执和报文匹配、应答报文结果验证。

  下面从这三个步骤介绍我们的接口自动化工具。

  一、报文自动化拼装

  首先对常规案例表并进行扩展,在案例表中增加了需要修改的接口字段要素作为数据列,对不需要修改的要素封装写入配置文件中,减少数据显示的冗余感。测试执行时,只需在案例后的数据列填写相应要素取值,程序即逐条将测试数据写入报文模板,发送至MQ消息队列。

2-1.png

  二、解析回执和报文匹配

  基于异步交易处理模式,我们通过程序主服务从MQ消息队列中获取返回报文并保存在json文件中,测试人员通过程序客户端向主服务发送获取请求后,主服务将相应交易的回执报文下发,客户端对收到的回执报文进行解析,依据配文件中的交易匹配信息,将回执报文与发送报文进行关联。

2-2.png

  三、应答报文结果验证

  通过配置文件中的消息匹配规则,已经完成了请求报文和应答报文的对应。最后程序将应答报文中的交易结果与案例表中的预期结果进行核对,并写入案例表中的结果列,完成案例结果自动化验证。需要说明的是,该步骤对预期结果验证基准是返回报文中的结果码,因而编写案例过程中需要在预期结果填写预期返回结果码。

2-3.png

  总结

  通过该接口自动化工具,我们实现了异步模式交易的接口自动化测试,后续经过一定修改也可应用于同步交易的接口自动化。最后该工具还其备接口扩展、口报文积累等方面的功能。

  一是基于不同接口交易使用配置文件。为了实现工具的可扩展性,支持差异化的接口交易模式,我们将不同接口报文的可修改要素、不同接口回执文与发送报文匹配字段、不同接口结果字段等信写入配置文件,方便后续要素调整和消息匹配机制调整。

  二是将测试案例、测试数据与测试结果直接关联。依托于功能测试案例表,我们在案例中加入需要发送的接口数据,并实现回执报文的结果与预期结果自动核对,增加案例执行结果直观性的同时减少了人工匹配的工作量。



作者:农行研发中心 周茂林   

来源:51Testing软件测试网原创

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   各位小伙伴们还记上个月小红书APP崩溃闪退,导致大批用户卸载APP重装的事故吗?闪退Bug从凌晨持续到第二天上午。  事发第二天,就有研发在线承认了,因为自己的失误导致了这次事件,评论区也有人担心博主会不会失去工作。  这件事会到此为止吗?有研发人员承认了错误,测试人员还需要负责吗?  也由此引出一个测试人员的最大疑问:  项目上线后出了严重Bug,到底是谁的责任?  目前存在如下两种观点:  Mr.Zhou  Mr.Zhou是企业的研发总监,他看到这个Bug时,确定是测试的锅。  他认为:测试工程师是软件产品质量的最后一个把关者,没有做好更新测试,才导致版本发布上线后APP更新崩溃。因此...
            0 0 1240
            分享
          • 【聚合概念】相关偶然聚合:模块完成的动作之间没有任何关系,或者仅仅是一种非常松散的关系逻辑聚合:模块内部的各个组成在逻辑上具有相似的处理动作,但功能用途上彼此无关时间聚合:模块内部的各个组成部分所包含的处理动作必须在同一时间内执行过程聚合:模块内部的各个组成部分所要完成的动作虽然没有关系,但必须按特定的次序执行通信聚合:模块的各个组成部分所完成的动作都使用了同一个数据或产生同一输出数据顺序聚合:模块内部的各个部分,前一部分处理动作的最后输出是后一部分处理动作的输入功能聚合:模块内部各个部分全部属于一个整体,并执行同一功能,且各部分对实现该功能都必不可 【耦合概念】相关数据耦合:指两个...
            0 0 1731
            分享
          • 备受关注的《三体》剧集(网飞版)24日发布首个幕后花絮。花絮中,制片人和主演纷纷现身,首季场景和人设曝光,为广大科幻迷揭开该剧神秘面纱的同时,也让国内观众不禁猜想:网飞推出的国际版和腾讯打造的国产版哪部更出色?在网飞最新曝光的《三体》花絮中,3名在好莱坞颇有资历的主创——曾打造《权力的游戏》和《极地恶灵》的大卫·贝尼奥夫、丹尼尔·威斯和亚历山大·吴作为执行制片人,率先介绍了剧集改编的重点和亮点。虽然是好莱坞主导的科幻剧集,但刘慈欣笔下的中国文化和历史痕迹随处可见,花絮第一个镜头就是带有浓重时代色彩的中式科学仪器,上面的简体汉字格外醒目。“我们刚拍摄完《三体》第一季,目前正在抓紧做后期。”制片人...
            0 0 989
            分享
          • 读者提问:APP 自动化测试工具有推荐的吗 ?阿常回答:有,Appium。官网地址:https://appium.ioGithub地址:https://github.com/appium/appium (开源社区)阿常碎碎念:Appium 是一个开源的、跨平台的自动化测试工具,可用于 APP 的自动化测试。Appium 支持 iOS 、Android 及 Firefox OS 平台。Appium 使用 WebDriver 的 json wire 协议,来驱动 iOS 系统的 UIAutomation 库、Android 系统的 UIAutomator 框架。它允许测试人员在...
            0 0 1014
            分享
          •   测试左移  对于需求,代码,质量,效率,《代码大全》很早就从软件工程实践角度说明了一个bug产生的不同阶段,修复一个bug的成本从需求阶段,设计阶段,测试阶段有着天壤差别。不仅从成本上,从修复难度,引入新问题的可能性,沟通成本,团队状态也会有很大的影响。由于大部分bug都是在写代码的阶段就引入的,测试左移本质上可以尽早的发现,预防问题,使用必要的测试手段在软件开发周期的早些阶段发现问题。测试越是集中到后期,尤其是集成测试时进行功能测试,产品的复杂度就越高,出现问题后,越难以定位bug,修复时间花费越长。所以,bug越早被发现,越节约成本。这也是测试左移被普遍接受的原因。  测试左移的手段:...
            0 0 822
            分享
      • 51testing软件测试圈微信