Java 如何使用多个数据集或值多次运行函数?
我对编程有点陌生,这是我工作中的一项任务。我需要运行一个方法,用多个数据集多次发送消息(固定格式)。以下是我如何使用其各自的数据构建和发送消息:Java 如何使用多个数据集或值多次运行函数?,java,dataset,Java,Dataset,我对编程有点陌生,这是我工作中的一项任务。我需要运行一个方法,用多个数据集多次发送消息(固定格式)。以下是我如何使用其各自的数据构建和发送消息: private void testCaseAttempt(String testCaseName) throws Exception { StringBuilder errorBuilder = new StringBuilder(); // Read test case arguments new
private void testCaseAttempt(String testCaseName) throws Exception {
StringBuilder errorBuilder = new StringBuilder();
// Read test case arguments
new Arguments(testCaseName);
QuoteRequestBuilder builder = app.builders().quoteRequest();
BigDecimal b1;
b1 = new BigDecimal(10000);
//Date transactTime;
//transactTime = new Date(0);
//expireTime 10 minutes from now
Calendar now = Calendar.getInstance();
now.add(Calendar.MINUTE, 10);
Date expireTime = now.getTime();
//BUILD THE MESSAGE
builder
.setField(131, "5EB26EAAC074000D0000")
.symbol("DANBNK")
.securityID("SE0011116474")
.currency("SEK")
.securityIDSource("4")
.setField(54, "2")
.expireTime(expireTime)
.orderQty(b1)
.setField(64, "20200508")
.setField(1629, "10")
.setField(1916, "0")
.setField(60, "20200526-15:48:53.006")
.setField(761, "1")
.partyID("13585922", PartyIDSource.PROPRIETARY_CUSTOM_CODE, 11, null)
.partyID("1270", PartyIDSource.PROPRIETARY_CUSTOM_CODE, 13, null)
.partyID("SEB", PartyIDSource.PROPRIETARY_CUSTOM_CODE, 1, null)
.partyID("1786343", PartyIDSource.PROPRIETARY_CUSTOM_CODE, 117, null);
Message quoteRequestMessage = builder.getMessage();
//SEND THE MESSAGE
app.sendMessage(quoteRequestMessage, app.getSession(session));
long timeout = Properties.getLong(0L, "waitForMessage", "FIX");
Message responseMessage;
}
我用“setfield”指令构建修复消息,然后发送它。这很好,除了我需要做20-30次(所以20-30条消息),每次我需要稍微更改值或参数。
我知道如何使用cucumber实现这一点,使用一个功能文件和一个包含我所需数据的“示例”表,这样它就调用了这个方法,但目前感觉有点过头了。我在考虑使用一个excel文件和一个表,这样我就可以轻松地更改每一行中的值,并以某种方式将其提供给这个函数
顺便说一下,我没有复制函数中的所有代码,我只是复制了构建和发送消息的行
你知道我该怎么做吗?非常感谢您的回复
提前感谢。创建您的字段映射,并按如下所示迭代该字段映射
Map<Integer,String> fieldMap = new HashMap<>();
fieldMap.put(131,"5EB26EAAC074000D0000");
fieldMap.put(54,"2");
fieldMap.put(64,"20200508");
fieldMap.put(1629,"10");
fieldMap.forEach((k,v)->{
builder.setField(k,v)
});
Map fieldMap=newhashmap();
现场地图放置(131,“5EB26EAAC074000D0000”);
现场地图。put(54,“2”);
fieldMap.put(64,“20200508”);
现场地图。put(1629,“10”);
forEach(k,v)->{
生成器设置字段(k,v)
});
创建字段映射,只需按如下所示迭代该字段映射即可
Map<Integer,String> fieldMap = new HashMap<>();
fieldMap.put(131,"5EB26EAAC074000D0000");
fieldMap.put(54,"2");
fieldMap.put(64,"20200508");
fieldMap.put(1629,"10");
fieldMap.forEach((k,v)->{
builder.setField(k,v)
});
Map fieldMap=newhashmap();
现场地图放置(131,“5EB26EAAC074000D0000”);
现场地图。put(54,“2”);
fieldMap.put(64,“20200508”);
现场地图。put(1629,“10”);
forEach(k,v)->{
生成器设置字段(k,v)
});
试着看看你是否可以把它放在loopstry中,看看你是否可以把它放在Loops中。不需要做“builder=builder.setField(key,fieldMap.get(key));”。只需在loopagree@DaksheshGarambha中使用“builder.setField(key,fieldMap.get(key));”就可以了。只需在loopagree@DaksheshGarambha更改循环中使用“builder.setField(key,fieldMap.get(key));”