本文主要是介绍Jmeter与接口自动化测试-直销银行贷前标的上架,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
有没有在工作中造数据离不开jmeter,发现这个工具小而好用,切实能解决工作中的一些问题。
测试需求分析
最近在做的是直销银行的项目,其中贷前的标的上架操作步骤比较多,如果手动操作费时且出错的概率还比较大,近两天完成了贷前的接口自动化。
主要分为,产品上架、借款申请、标的上架。
产品上架:
包括按天计息的利随本清、先息后本;按月计息的等额本息、先息后本;按天或者按月单选互斥;不同的计息方式互斥;
起息方式包括:固定起息日;放款日+0;放款日+1等,也是互斥的;
费用设置:包括放款时收费;还款收费(即最后一期还款时收费);每期还款时收费;
另外还有其他的设置,比如年化、特权设置、白名单设置等
借款申请
需要录入内部账户、对公账户、对私账户数据,这套数据不经常变,但是录入比较麻烦;
标的上架
标的上架就是一个审批流程,可以正确传递参数即可
自动化接口设计
设计通用产品及标的上架
在接口自动化设计过程中,首先需要设计出不同的产品固定起息日的按天计息的产品(利息本清、先息后本)和按月计息的产品(等额本息、先息后本)、T+0起息的按天计息的产品和按月计息的产品、T+1起息的按天计息的产品和按月计息的产品;这三种是常用的
对于费用添加为还款时收费或者放款时收费,由于近期需求没有特别的要求,因此每种产品设置为了还款时收费
产品列表如下:
-- 融资产品条件查询,现在可用的
SELECT t.DISPLAY_NAME,t.PRODUCT_NAME,t.BUSI_CODE,t.id,PAY_WAY FROM TD_B_PRODUCT t where PRODUCT_NAME like 'J%' AND t.BUSI_CODE LIKE '%202078%'
其中设置 费用会保存为busiProductFeeList,并在申请借款时会用到,类似:
[{"id":"a9e64f7e6fad57a0e053b129fd0a917b","createUser":null,"createTime":null,"updateUser":null,"updateTime":null,"version":null,"delTag":null,"payPart":"plat_back","recPart":"plat_fee","rateWay":"rate_fixedRate","payTime":"20","status":"1","yearDays":360,"feeId":"5D63C804E61240sss0530346A8C0CFG","productId":"a9e64f7e6f9357a0e053b129fd0a917b","productFeeRateWays":[{"id":"a9e64f7e6fae57a0e053b129fd0a917b","createUser":null,"createTime":null,"updateUser":null,"updateTime":null,"version":null,"delTag":null,"rateWay":null,"column1":null,"column2":null,"column3":null,"minMoney":null,"maxMoney":null,"defaultMoney":null,"minDay":null,"defaultDay":null,"maxDay":null,"minRate":"0.1","maxRate":"0.3","defaultRate":"0.1","productFeeId":"a9e64f7e6fad57a0e053b129fd0a917b"}],"column1":null,"column2":null,"column3":null,"feeName":"==借款服务费,还款时点","formulaName":"实际募集金额*固定费率*借款天数/360","formula":"${rate_factor_realCapitalNoPlan}*${rate_fixedRate}*${rate_fixedTerm}/100/360","index":null,"defalutMoney":null,"feeType":"1","recPartName":"==费用账户"},{"id":"a9e64f7e6faf57a0e053b129fd0a917b","createUser":null,"createTime":null,"updateUser":null,"updateTime":null,"version":null,"delTag":null,"payPart":"plat_back","recPart":"plat_fee_sjw","rateWay":"rate_fixedRate","payTime":"20","status":"1","yearDays":360,"feeId":"5D63C804E61239sss0530346A8C0CFH","productId":"a9e64f7e6f9357a0e053b129fd0a917b","productFeeRateWays":[{"id":"a9e64f7e6fb057a0e053b129fd0a917b","createUser":null,"createTime":null,"updateUser":null,"updateTime":null,"version":null,"delTag":null,"rateWay":null,"column1":null,"column2":null,"column3":null,"minMoney":null,"maxMoney":null,"defaultMoney":null,"minDay":null,"defaultDay":null,"maxDay":null,"minRate":"0.1","maxRate":"0.3","defaultRate":"0.2","productFeeId":"a9e64f7e6faf57a0e053b129fd0a917b"}],"column1":null,"column2":null,"column3":null,"feeName":"===借款服务费,还款时点","formulaName":"实际募集金额*固定费率*借款天数/360","formula":"${rate_factor_realCapitalNoPlan}*${rate_fixedRate}*${rate_fixedTerm}/100/360","index":null,"defalutMoney":null,"feeType":"1","recPartName":"===用账户"}]
列表中关联了产品及费用及其他表的参数,表关系如下:
每个费用由对应的id,关联产品及其他表,开始想着,梳理出关联关系,然后添加产品后改这个列表的参数即可,但是太麻烦了,远不如手动抓包、复制粘贴来的快和准备。
每个产品定义在一个自定义参数中,包括了关联的产品及费用信息,并且作为通用产品基本不会经常改变:
然后还款方式中定义具体的起息日等和该还款方式先关的参数,这个里面定义的参数变化的几率还是比较大的,比如时间就是经常需要修改的。
另外账户数据基本是一个环境一套,也不经常改变,可以抽离出来放在环境的自定义变量中:
这样首先选择环境,然后产品的计息方式,再选择还款方式(一个产品下有两个还款方式,比如按月固定起息的产品下有等额本息、先息后本),即可进行产品的上架
准备设计特色产品及标的上架
比如要及时响应上架名单的标的或者放款时收费的产品
因为整个流程中填写一些文本、输入账号数据比较麻烦,因此可以新建产品录入部分信息后保存,新增借款录入融资账号信息后保存,根据需要再手动微调即可
以上即完成了贷前的接口自动化,对于贷后,操作并不复杂,基本就是查看状态点击,没有必要接口自动化,手动操作也很方便,因为结合进程比如满标放款等需要查验证数据库。
有时自动化过程中,自动化到什么程度,也是需要考虑及适可而止的,比如开始做了融资产品上下的自动化,后来基本没用到,因为一次性手动做好产品后,基本可以一直用;范围只是填写部分信息后保存,后面有特殊需求进行微调反而更准确。
总结
整个过程基本都是业务熟悉+基本技能使用的过程
比较难的不是技术,而是从哪个维度去抽离公共参数;另外在这个过程导致出错的是下面这步的referer中包含了参数的传递,但是没太注意好像出错,还看了一会子
这篇关于Jmeter与接口自动化测试-直销银行贷前标的上架的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!