CompletableFuture并发框架,在自动化场景中的简单应用_completablefuture

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

solve(problem):
    if problem is small enough:
        // 如果任务足够小,执行任务
        solve problem directly (sequential algorithm)
    else:
        // 拆分任务
        for part in subdivide(problem)
            fork subtask to solve(part)
        // 合并结果
        join all subtasks spawned in previous loop
        return combined results

所以,理解Fork/Join模型和CompletableFuture,首先要理解其背后的算法的目的和思想,因为后文所要详述的CompletableFuture不过只是这种算法的一种的实现和应用。

二、CompletableFuture具体应用场景

按照思想->实现->分析的思路,在了解了Fork/Join思想之后,这样可以更好地体验CompletableFuture的用法。

在这里再次简单交代下接口自动化具体业务背景:在文件上传过程中,进行反复切换集群的操作,验证文件再上传过程中是否有损坏,预期结果是下载到本地的文件,要和源文件保持一致。

场景解析:上传文件、切换集群其实是两个任务,要求是并行的;

难点分析:我们都知道java代码在一个方法内,正常情况下都是按照代码上下顺序执行的,但是我们怎么让上传文件、切换集群两种操作并行执行呢?

如下伪代码(为了帮助大家理解,以及满足保密要求,所以对全文代码有一定的删减):

@Test(description = "上传分片文件过程中由源当前集群切换另一个集群")
public void testSwitchSourceContainerClusterBetweenPartFileUpload() throws Exception {
  //上传文件
   PartObjectUploadClient.upload(cspPartRequestDto, 10250);
  //切换集群
   SimpleObjectUploadClient.switchMap2SourceBucketFirstIndex(paramMap);

}

正常情况下来说,先执行上传文件操作、再执行切换集群操作,对吧?但是我们需要的是边上传文件,边切换集群的效果,咋办?

使用CompletableFuture框架呗(引入有点生硬哈),具体伪代码如下:

@Test(description = "上传分片文件过程中由源当前集群切换另一个集群")
public void testSwitchSourceContainerClusterBetweenPartFileUpload() throws Exception {
    // 创建第一个异步操作
    CompletableFuture<Void> future1 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值