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));”