Rest 方式测试支付下单和支付回调|学习笔记

简介: 快速学习 Rest 方式测试支付下单和支付回调

开发者学堂课程【RocketMQ 知识精讲与项目实战(第二阶段)Rest 方式测试支付下单和支付回调】学习笔记,与课程紧密联系,让用户快速学习知识。

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


Rest 方式测试支付下单和支付回调


测试 pay-web

在 test 包下创建单元测试类

Name:com.itheima.test.PayWebTest

image.png

注入参数,到dubbo中进行取值

@Runwith(SpringRunner.class)

@springBootTest(classes = PaywebApplication.class)

public class PaywlebTest {

@Autowired

private RestTemplate restTemplate;

@Value("${shop.pay.baseURI}")

private string baseURI;

@value("${shop.pay.createPayment}")

private String createPaymentPath;

@value("${shop.pay.callBackPaymentPath}")

private string callBackPaymentPath;

Server port 不能读到9090,读到的是内部-1的值,自己指定 pay.port=9090

image.png

继续指定,createPaymentPath 对应 shop.pay.createPayment,callBackPaymentPath 对应shop.pay.callBackPaymentPath,指定后编写两个测试方法,测试方法上加入Test注解,基本测试流程与 PayService一致

@Test

public void createPayment(){

long orderId = 352537369385242624L;

TradePay tradePay = newTradePay();

tradePay.setOrderId(orderId);

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

Result result = restTemplate.postForEntity( url: baseURI+

createPaymentPath,tradePay,Result.class).getBody();

System.out.println(result);

}

通过 restTemplate 测试,发起 http 的请求测试

测试之前确保 orderId 与之前 orderId 是一致的

刷新,更改为原先状态

image.png

测试完成后在 Payment 生成一条数据

image.png

检查服务是否启动,将未启动的 pay-service 启动

总共启动7个微服务,2个web端,5个服务端

image.png

打一个断点

image.png

发起请求,结果正确

刷新,支付订单已创建

image.png

进行回调测试

发起post请求

@Test

public void callBackPayment(){

long payId = 352542415984402432L;

long orderId = 352537369385242624L;

TradePay tradePay = new TradePay();

tradePay.setPayId(payId);

tradePay.setOrderId(orderId);

tradePay.setIsPaid(ShopCode.SHOP_ORDER_PAY_STATUS_IS_PAY.getCode());restTemplate.postForEntity( url:baseURI+callBackPaymentPath,tradePay ,Result.class).getBody();

System.out.println(result);

}

加一个断点

image.png

执行,请求成功

验证执行结果

数据库中 is_paid 动态为2

image.png

订单状态改变

image.png

订单状态的修改通过发送消息的方式进行处理

image.png

相关文章
|
8月前
|
JSON 测试技术 API
优化你的 REST Assured 测试:设置默认主机与端口、GET 请求与断言
REST Assured 是一个强大的 Java 库,用于简化 RESTful API 测试。本文详解了其核心功能:设置默认主机和端口以减少代码重复、发起 GET 请求并验证响应结果,以及通过断言确保接口行为符合预期。同时推荐 Apipost 工具,助力开发者提升 API 测试效率,实现更高效的接口管理与团队协作。掌握这些技巧,可显著优化测试流程与代码质量。
|
测试技术
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
本文介绍了如何使用Pytest和Allure生成自动化测试报告。通过安装allure-pytest和配置环境,可以生成包含用例描述、步骤、等级等详细信息的美观报告。文章还提供了代码示例和运行指南,以及重构项目时的注意事项。
1195 1
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
|
测试技术 Python
自动化测试项目学习笔记(四):Pytest介绍和使用
本文是关于自动化测试框架Pytest的介绍和使用。Pytest是一个功能丰富的Python测试工具,支持参数化、多种测试类型,并拥有众多第三方插件。文章讲解了Pytest的编写规则、命令行参数、执行测试、参数化处理以及如何使用fixture实现测试用例间的调用。此外,还提供了pytest.ini配置文件示例。
668 2
|
测试技术 Python
自动化测试项目学习笔记(二):学习各种setup、tearDown、断言方法
本文主要介绍了自动化测试中setup、teardown、断言方法的使用,以及unittest框架中setUp、tearDown、setUpClass和tearDownClass的区别和应用。
427 0
自动化测试项目学习笔记(二):学习各种setup、tearDown、断言方法
支付系统---微信支付14----创建案例项目---介绍,第二步引入Swagger,接口文档和测试页面生成工具,定义统一结果的目的是让结果变得更加规范,以上就是谷粒项目的几个过程
支付系统---微信支付14----创建案例项目---介绍,第二步引入Swagger,接口文档和测试页面生成工具,定义统一结果的目的是让结果变得更加规范,以上就是谷粒项目的几个过程
|
API 开发工具
支付系统23-------使用沙箱账号进行支付测试,统一收单并支付页面接口的调用
支付系统23-------使用沙箱账号进行支付测试,统一收单并支付页面接口的调用
|
Java 测试技术 编译器
JMM测试利器-JCStress学习笔记
JMM测试利器-JCStress学习笔记
|
网络协议 Java 应用服务中间件
如何使用支付宝的沙箱环境在本地配置模拟支付并发布至公网测试
如何使用支付宝的沙箱环境在本地配置模拟支付并发布至公网测试
|
NoSQL Java API
SpringBoot【ElasticSearch集成 02】Java HTTP Rest client for ElasticSearch Jest 客户端集成(依赖+配置+增删改查测试源码)推荐使用
SpringBoot【ElasticSearch集成 02】Java HTTP Rest client for ElasticSearch Jest 客户端集成(依赖+配置+增删改查测试源码)推荐使用
275 0
|
缓存 Java 关系型数据库
Spring Boot实现RESTful接口架构实战(包括REST的讲解、定义、REST服务测试)
Spring Boot实现RESTful接口架构实战(包括REST的讲解、定义、REST服务测试)
652 0