支付业务服务端测试|学习笔记

简介: 快速学习支付业务服务端测试

开发者学堂课程【RocketMQ 知识精讲与项目实战(第二阶段)支付业务服务端测试】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/703/detail/12440


支付业务服务端测试


Pay-service测试

对 Pay-service 测试,测试之前由于 shop-api 添加了接口的方法,需要将工程安装,如果对 shop-common 进行修改,shop-common 同样需要安装

安装完成后需要编写一个测试方法

image.png

Name为com.itheima.test.PayServiceTest

@Runwith(SpringRunner.class)

@springBootTest(classes = PayserviceApplication.class)

public class PayServiceTest {

//注入PayService

@Autowired

private IPayservice payService;

//测试createPayment()方法测试时用接口调用,传递treadePay 对象,对象是请求服务端时的分装参数

@Test

public void createPayment(){

TradePay treadePay = new TradePay();

tradePay.setOrderId()请求是支付处理,对支付订单做处理

打开订单表,使用已确认的订单测试

image.png

之前生成的订单数据

image.png

使用已确认的订单,状态值为1的数据测试

添加long orderId = 351526299216515072L;

@Test

public void createPayment(){

long orderId = 351526299216515072L;

TradePay tradePay = new TradePay();

tradePay.setorderIdo(orderId);

payservice.createPayment(tradePay);

Ispaid 不能设置,通过服务端处理,需要指定当前金额

image.png

支付金额880元,订单总金额1000元,减去优惠券20元,余额100元,最终留下880元,需要支付880元,进行Payservice调用

@Test

public void createPayment(){

long orderId = 351526299216515072L;

TradePay tradePay = new TradePay();

tradePay.setorderIdo(orderId);

tradePay.setPayAmount(new BigDecimal(val:880))

payservice.createPayment(tradePay);

执行,微服务不需要启动,因为测试方法运行时会加载启动入口类,直接运行即可

查看支付订单能否生成

image.png

查看测试台执行结果,测试通过,生成支付订单

测试支付回调

对 callbackPayment 进行测试

调用此方法需要传递当前支付订单 ID 参数

image.png

将 ID 号传递过来,将订单 ID 传递过来,将 PayId 与关联的订单 ID 设置

@Test

public void callbackPayment(){

long  payId =“352516176372441088L

long orderId = 351526299216515072L;

TradePay tradePay = new TradePay();

tradePay.setPayId(payId)

tradePay.setorderIdo(orderId);

tradePay.setIsPaid(ShopCode.SHOP_ORDER_PAY_STATUS_IS_PAY.getcode());

payservice.callbackeayment(tradePay);

}

回调方法调用,被第三方支付平台调用,在用户支付完成后被调用,传递支付状态,是一个支付成功状态,SHOP_ORDER_PAY_STATUS_IS_PAY.getcode()

测试首先调用 service.impl,不需要重启,只要进行回调发送消息,消息最终被 order-service 微服务处理,order-service 启动,相关联的 coupon-service/goods-service/user-service 都需要启动,coupon-service/goods-service/user-service 三个依次进行微服务启动

观察控制台,都已经成功启动,

启动完成后,针对订单进行支付

支付完成后,第三方支付平台进行回调

模拟第三方支付平台回调

删除断点,执行

执行成功,未消费消息,tradePay 状态未改变

image.png

加一个断点

image.png

是否执行

is_paid 还原成0,重新测试

sendMessage 调用

image.png

数据都存在,发送,发送完成后结果未返回

sendResult 执行未收到消息,表明消息未发送成功

发送消息的方法在线程池中调用,线程池中调用相当于创建一个子线程,通过异步的方式发送消息,子线程相当于主线程的守护线程,测试方法在主线程中运行,测试方法执行完成后,主线程停止子线程也停止,由于消息发送是异步的,主线程停止,消息还未发送线程停止,消息无法发送

需要测试方法不停止,让子线程有足够的时间发送消息

将 is_paid 改为0,重新设置

image.png

image.png

pay_status 状态未变

重新执行

加入两个断点

image.png

发送,发送成功,放行

测试方法未停止,线程池中有足够的时间发送消息

image.png

消息发送后,消息成功接收

接收到支付成功消息,更改订单支付状态为已支付

刷新,订单状态变为2

image.png

Pay-service 测试实现

相关文章
|
9月前
|
Java
基于Java对STOMP服务端进行测试
在10000用户的并发下,客户端连接用时 5.5秒,500万条数据发送用时 55秒左右
210 0
|
Web App开发 JavaScript 前端开发
NB-loT 之通过 Iwm2m 服务器测试 Coap 协议报文 | 学习笔记
快速学习 NB-loT 之通过 Iwm2m 服务器测试 Coap 协议报文
409 0
NB-loT 之通过 Iwm2m 服务器测试 Coap 协议报文 | 学习笔记
|
2月前
|
Java 测试技术 编译器
JMM测试利器-JCStress学习笔记
JMM测试利器-JCStress学习笔记
|
4月前
|
网络协议 Java 应用服务中间件
如何使用支付宝的沙箱环境在本地配置模拟支付并发布至公网测试
如何使用支付宝的沙箱环境在本地配置模拟支付并发布至公网测试
|
8月前
java202303java学习笔记第四十六天-请求-postman接口测试
java202303java学习笔记第四十六天-请求-postman接口测试
54 0
|
11月前
|
测试技术
java202304java学习笔记第六十天-ssm-spring配置文件-完善测试环境
java202304java学习笔记第六十天-ssm-spring配置文件-完善测试环境
52 0
|
存储 运维 Java
优酷服务端精准测试体系
优酷服务端精准测试体系
612 0
优酷服务端精准测试体系
|
关系型数据库 OLAP API
测试 API|学习笔记
快速学习测试 API
117 0
测试 API|学习笔记
|
SQL 安全 前端开发
服务端测试
大家好,我是阿萨。前几天我们讲了你了解客户端测试吗?和客户端对应的就是服务器端了。那么服务器端如何测试呢?服务器端相当于一个黑盒子,我们能接触到的只有前台向后端发送的API请求。所以服务器端测试也可以理解为API测试。
201 0
|
存储 SQL 监控
PolarDB-X 进行 TP 负载测试(三)| 学习笔记
快速学习 PolarDB-X 进行 TP 负载测试。
303 0
PolarDB-X 进行 TP 负载测试(三)| 学习笔记

热门文章

最新文章