Jmeter与接口自动化测试-直销银行贷前标的上架

2023-12-31 04:10

本文主要是介绍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与接口自动化测试-直销银行贷前标的上架的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/554915

相关文章

MySQL分表自动化创建的实现方案

《MySQL分表自动化创建的实现方案》在数据库应用场景中,随着数据量的不断增长,单表存储数据可能会面临性能瓶颈,例如查询、插入、更新等操作的效率会逐渐降低,分表是一种有效的优化策略,它将数据分散存储在... 目录一、项目目的二、实现过程(一)mysql 事件调度器结合存储过程方式1. 开启事件调度器2. 创

详解Java如何向http/https接口发出请求

《详解Java如何向http/https接口发出请求》这篇文章主要为大家详细介绍了Java如何实现向http/https接口发出请求,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用Java发送web请求所用到的包都在java.net下,在具体使用时可以用如下代码,你可以把它封装成一

Java后端接口中提取请求头中的Cookie和Token的方法

《Java后端接口中提取请求头中的Cookie和Token的方法》在现代Web开发中,HTTP请求头(Header)是客户端与服务器之间传递信息的重要方式之一,本文将详细介绍如何在Java后端(以Sp... 目录引言1. 背景1.1 什么是 HTTP 请求头?1.2 为什么需要提取请求头?2. 使用 Spr

Python Invoke自动化任务库的使用

《PythonInvoke自动化任务库的使用》Invoke是一个强大的Python库,用于编写自动化脚本,本文就来介绍一下PythonInvoke自动化任务库的使用,具有一定的参考价值,感兴趣的可以... 目录什么是 Invoke?如何安装 Invoke?Invoke 基础1. 运行测试2. 构建文档3.

Windows自动化Python pyautogui RPA操作实现

《Windows自动化PythonpyautoguiRPA操作实现》本文详细介绍了使用Python的pyautogui库进行Windows自动化操作的实现方法,文中通过示例代码介绍的非常详细,对大... 目录依赖包睡眠:鼠标事件:杀死进程:获取所有窗口的名称:显示窗口:根据图片找元素:输入文字:打开应用:依

Jenkins中自动化部署Spring Boot项目的全过程

《Jenkins中自动化部署SpringBoot项目的全过程》:本文主要介绍如何使用Jenkins从Git仓库拉取SpringBoot项目并进行自动化部署,通过配置Jenkins任务,实现项目的... 目录准备工作启动 Jenkins配置 Jenkins创建及配置任务源码管理构建触发器构建构建后操作构建任务

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在