当前位置: 首页 > news >正文

flink的副输出sideoutput单元测试

背景

处理函数中处理输出主输出的数据流数据外,也可以输出多个其他的副输出的数据流数据,当我们的处理函数有副输出时,我们需要测试他们功能的正确性,本文就提供一个测试flink副输出单元测试的例子

测试flink副输出单元测试

首先看一下处理函数,其中包含副输出逻辑

public class MySideOutputProcessFunction extends ProcessFunction<String, String> {public static final OutputTag<String> OUTPUT_TAG = new OutputTag<String>("sideoutput") {};@Overridepublic void processElement(String value, Context ctx, Collector<String> out) throws Exception {out.collect("normal:" + value);ctx.output(OUTPUT_TAG, "side:" + value);}
}

其次,看下对应的单元测试

/*** 测试sideOutput的输出功能*/
@Test
public void testSideOutput() throws Exception {MySideOutputProcessFunction mySideOutputProcessFunction = new MySideOutputProcessFunction();OneInputStreamOperatorTestHarness<String, String> testHarness =ProcessFunctionTestHarnesses.forProcessFunction(mySideOutputProcessFunction);testHarness.open();testHarness.processElement("hello", 10);// 测试主输出Assert.assertEquals(Lists.newArrayList("normal:hello"), testHarness.extractOutputValues());ConcurrentLinkedQueue<StreamRecord<String>> sideOutPutQueue =testHarness.getSideOutput(MySideOutputProcessFunction.OUTPUT_TAG);// 测试副输出Assert.assertEquals(Lists.newArrayList("side:hello"),sideOutPutQueue.stream().map(StreamRecord::getValue).collect(Collectors.toList()));testHarness.close();
}
http://www.lryc.cn/news/228531.html

相关文章:

  • 使用Inis搭配内网穿透实现Ubuntu上快速搭建博客网站远程访问
  • 基于蝴蝶算法优化概率神经网络PNN的分类预测 - 附代码
  • flink的KeyedBroadcastProcessFunction测试
  • 【pytorch深度学习】torch-张量Tensor
  • odoo16前端框架源码阅读——rpc_service.js
  • Nat. Med. | 成年人的城市生活环境对心理健康的影响
  • stm32 WIFI模块_8266使用
  • 【C/C++】malloc 或者 new 动态分配内存
  • 如果让你重新开始学 C/C++,你的学习路线会是怎么选择?
  • PCL安装与使用
  • 力扣刷题-二叉树-对称二叉树
  • 常见面试题-计算机网络相关
  • leetcode做题笔记231. 2 的幂
  • AI主播“败走”双11,想用AI省成本的商家醒醒吧,程序员不必担心失业,发展空间依旧很大
  • ◢Django 自写分页与使用
  • 某城高速综合管控大数据大屏可视化【可视化项目案例-04】
  • 如何在Linux下进行文件查看
  • OSG练习:模仿Ventsim制作三维矿井智能通风系统
  • 【数据结构】非递归实现二叉树的前 + 中 + 后 + 层序遍历(听说面试会考?)
  • 32 Feign性能优化
  • 星岛专栏|从Web3发展看金融与科技的融合之道
  • 什么是网络爬虫?
  • 酷柚易汛ERP - 商品库存余额表操作指南
  • 第27期 | GPTSecurity周报
  • 大数据-玩转数据-Flume
  • 【Linux】进程概念IV 进程地址空间
  • Flink在汽车行业的应用【面试加分系列】
  • 智慧工地源码:助力数字建造、智慧建造、安全建造、绿色建造
  • Spring Boot(二)
  • 上海亚商投顾:沪指缩量调整跌 高位强势股继续退潮