• 12
  • 12
分享

  票据系统交易具有错综复杂,跨系统,多协议的特点。为更好的开展票据系统接口自动化测试,提升接口测试水平,笔者基于Xmeter(客户端版)开展系统间接口测试,积累环境可用性的快速验证方法和测试数据准备方法。

  一、背景

  测试人员在票据系统的测试过程中,发现业务流程很长,系统间调用频繁,比如票据系统要和C3、BoEing,网银交互,还和ECDS交互,还用到Air,内部也是有票据交易系统(CPES),贸易通(HERMES),数字票据(DCDP),每个系统都有单独的界面和服务,票据系统还有服务端,用户端,前置,批量等子系统,相互调用,协议众多,包括http和soap协议,后续还要推广DevOps,自动化,性能,同时测试人员也饱受各种票据操作和出票流程的困绕,繁琐而重复。

  二、工具

  结合自己对测试工具的了解,包括行内的擎云,Xmeter(客户端版),Xmeter等。擎云自动化目前有个局限,暂时无法进行界面和接口的联合自动化,而且系统跨BoEing,CPES,DCDP,C3也为擎云自动化增加了难度,

  选择Xmeter(客户端版)进行尝试,一是作为一款业界流行的性能测试工具,该工具在实际的性能测试中,可以应对多种协议,界面和接口交易,可以说不惧任何协议,不惧界面接口,应用广泛。

  三、研究

  1.通过性能测试工具抓取界面或者接口交易的原理,进行扩展发散,以数字票据电票出票申请为例,如下图:

1-1.png

  填写界面参数,包括反显的内部接口(红框里),均能被Xmeter(客户端版)捕捉到,如下图:

1-2.jpg

  下面截图就是第一个红色框反显的调用的接口。

1-3.png

  Xmeter(客户端版)提供参数化和回放功能,合理的配置可以轻易满足回归测试需要,同时进行简单的初步性能测试。

  2.Xmeter(客户端版) 还可应用到BoEing的票据模块的接口交易的测试,以BoEing结算服务中的承兑回复经办为例。

1-4.png

  从BoEing开发人员或者Log中获取报文,拼装报文,通过Xmeter(客户端版)作为接口测试工具,如下图,业务编号可以参数化为${业务编号},业务编号可以通过前后交易关联获得,也可以去数据库中查找。

1-5.png

  3.Xmeter(客户端版)同样适用于C3系统的界面录制。

1-6.png

  录制完成的Xmeter(客户端版)脚本如下图,发起手工登记保存,涉及到工作流需要通过正则表达式从上一交易中获取,省去了这种情况在ATP接入时需要二次开发解析的过程。

1-7.png

  4.Xmeter(客户端版)另一个优势就是可以连接数据库获取所需数据,数据库配置如下。

1-8.jpg

  查询所需数据,直接将sql语句嵌入即可,参数也可参数化。

1-9.jpg

  四、希望

  经了解,目前TFS暂时无法调起Xmeter(客户端版)或Xmeter,在DevOps推广中没有勇武之地,后续如果TFS能直接调起Xmeter(客户端版)或者Xmeter,将会从另一方向提高中心接口自动化水平和DevOps加分点,因为Xmeter(客户端版)是性能测试工具,TFS调起Xmeter(客户端版)或者Xmeter,即是接口自动化回归和性能测试自动化的又一方式,可以与行内擎云平台互补。

  五、总结

  老生常谈,工欲善其事必先利其器,经过了对Xmeter(客户端版)一定的摸索和研究,结合现在中心强调的DevOps工作和接口测试深化工作的开展,借此契机,向各位读者介绍Xmeter(客户端版),希望能抛砖引玉,让各位受益于Xmeter(客户端版)的使用,应用于自己的开发和接口测试中,将银行研发测试一体化工作提升上新台阶。


作者:王炜   

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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 有一段时间没关注性能测试,但时常还能看到有小伙伴讨论性能,对于一些概念的理解很想深入讨论,但三言两语说不清,于是,还是花点时间写写吧!今天有一个同学问:“一个小的系统,用户并发数为20个,那事务平均响应时间大概在什么范围内?”怕麻烦直接告诉他2/5/8原则,钻牛角尖的话,需要进一步确认什么样的小系统?提供的什么类型的业务?用户行为是什么样的?用户对系统的使用频率?就算同响应时时间一样,前端通过不同展现方法,用户的感知可能完全不一样。下面就真对这个问题延伸讨论一下从用户感知的角度看软件性能测试。2/5/8原则2/5/8原则是上个世纪80年代某公司真对自己公司的应用做的一个调查,调查的结果就是当用...
            0 0 885
            分享
          •   1.接口测试:针对软件对外提供服务的接口的输入输出进行测试,以及接口间相互逻辑的测试,验证接口功能与接口描述文档的一致性。  2.接口测试流程:   1)获取接口信息:通过接口文档或抓包来获取接口的基本调用方式和返回,抓包可以通过fiddler、charles或者chrome的开发者工具等   2)接口测试用例设计:根据获取到的接口信息,按照接口测试用例设计方法,设计参数和预期返回结果   3)接口发包:使用工具或者编程向接口传递参数   4)返回信息验证:获取接口返回的结果,进行解析和验证  3.测试某网站的接口,包括:鉴权、登录和注销   1)鉴权接口url:http://www.XX...
            4 6 2974
            分享
          • 作为软件开发从业者,API 调试是必不可少的一项技能,在这方面 Postman 做的非常出色。但是在整个软件开发过程中,API 调试只是其中的一部分,还有很多事情 Postman 无法完成,或者无法高效完成,比如:API 文档定义、API Mock、API 自动化测试等等。Apifox 就是为了解决这个问题而生的。接口管理现状一、常用解决方案使用 Swagger 管理 API 文档使用 Postman 调试 API使用 MockJs 等工具 Mock API 数据使用 JMeter 做 API 自动化测试二、存在的问题维护不同工具之间数据一致性非常困难、低效。并且这里不仅仅是工作量的问题,...
            13 12 518
            分享
          • 公共类的思维导图如下:common_fun.py用于封装公共模块,例如滑动引导页的模块、检测应用是否进入首页等1.进入应用首页通过判断首页的某个元素存在,来校验是否成功进入应用首页2.定义获取屏幕大小函数3.定义向左滑动的函数4.定义获取系统时间的函数5.定义屏幕截图函数说明:1.获取当前脚本所在的文件夹:t_path=os.path.dirname(__file__)2.获取当前脚本所在文件夹的上一个文件夹:os.path.dirname(os.path.dirname(__file__))3.进入同一目录下的另外一个文件夹:    os.path.d...
            0 0 1225
            分享
          •        测试过程在瀑布式开发中作为开发流程中的一个环节,只能在实现软件基础后开始运行,这种模式很大程度上导致了人力资源的浪费。而在敏捷开发模式中,为了解决人力资源浪费的问题,团队的开发过程需要践行敏捷,同样,测试阶段也要践行敏捷。       测试过程有没有必要性?       测试人员如同食品生产的质检员,能够依据交付成果检验产品的完成标准,并对产品判定“合格”与否。也就是说,测试人员需要测试产品的各功能点,对出现BUG的部分进行汇总分析,最终提交到开发人员手上。&n...
            0 0 1823
            分享
      • 51testing软件测试圈微信