zoukankan      html  css  js  c++  java
  • 构建mq

    1.First 写四个类

     2.构建push body

    public static String generateMqJsonMessage(String filePath, String keyName, String eventType) throws ParseException {
    String result = null;
    File f = new File(filePath);
    String json = null;
    try {
    json = FileUtil.readFileToString(f, Constant.FILE_ENCODING);

    // Generate Random Test Data
    CommonDataBean dataBean = new MqMessageDataBean();
    dataBean = dataBean.getTestData(JAVA_FAKER_LANG);

    String applicationId=getBundle().getProperty("applicationId").toString();
    logger.info(" ### applicationId -> "+applicationId);
    Object calendarEventName=getBundle().getProperty("calendarEventName");
    logger.info(" ### calendarEventName -> "+calendarEventName);
    List calendarEventNames=new ArrayList<>();
    if(calendarEventName!=null)
    calendarEventNames.add(calendarEventName.toString());
    JSONObject jsonObject = new JSONObject(json);
    String mqMsgStructureStr = jsonObject.getJSONObject(keyName).toString();
    DocumentContext mqMsgStructureObj = JsonPath.using(Configuration.defaultConfiguration())
    .parse(mqMsgStructureStr);

    Object actionDate = getBundle().getProperty("actionDate");
    logger.info(" ### actionDate -> "+actionDate.toString());

    mqMsgStructureObj.set("$..correlateId", ((MqMessageDataBean) dataBean).getCorrelateId());
    mqMsgStructureObj.set("$..payload.actionDate", actionDate.toString());
    mqMsgStructureObj.set("$..timestamp", actionDate.toString());
    mqMsgStructureObj.set("$..payload.correlateId", ((MqMessageDataBean) dataBean).getCorrelateId());
    //mqMsgStructureObj.set("$..payload.id", ((MqMessageDataBean) dataBean).getEventId()); // random
    // generate
    mqMsgStructureObj.set("$..businessKey", ((MqMessageDataBean) dataBean).getCorrelateId());
    // mqMsgStructureObj.set("$..eventType", eventType);
    mqMsgStructureObj.set("$..eventId", ((MqMessageDataBean) dataBean).getEventId());// need random generate

    List applications=new ArrayList<>();
    applications.add(applicationId);
    mqMsgStructureObj.set("$..policyNumbers", applications);
    if(calendarEventNames.size()>0){
    mqMsgStructureObj.set("$..events", calendarEventNames);
    }else{
    mqMsgStructureObj.delete("$..events");
    }

    String filledJsonStr = mqMsgStructureObj.jsonString();
    logger.info(String.format(" ### generateMqJsonMessage -> filledJsonStr -> %s", filledJsonStr));

    result = filledJsonStr;

    } catch (IOException e) {
    logger.log(Level.INFO, "generateMqJsonMessage() fail", e);
    }

    return result;
    }

     3.建立连接,填写exchange,queue,routekey,payload

        @QAFTestStep(description = "start connect Cloud RabbitMq Exchange {exchange} and send json messsage {variableName} with RounteKey {routeKey}")
    public static void sendMqmessageWithJson(String exchange, String variableName, String routeKey) {
    String mqJsonMessage = (String) getBundle().getProperty(variableName);
    logger.info("mqJsonMessage-->"+mqJsonMessage);
    Sender.publishWithPropJson(exchange, Constant.RABBITMQ_QUEUE_QAQUEUE, routeKey, mqJsonMessage);
    }
    
    
    
  • 相关阅读:
    TCP和UDP的区别
    DATAX 实现python调用cmd 系统控制台,实现在开发工具中内嵌datax (python 多行执行cmd命令)
    DATAX 实现java调用cmd 系统控制台,实现在开发工具中内嵌datax
    六大质量属性——可测试性代码层面描述(以“信息领域热词分析系统”为例)
    信息领域热词分析——质量属性
    DATAX 从scv到csv 从csv到mysql
    DATAX避坑点——MySQL到MYSQL,某个垃圾教程(简书)中,误导新手
    DATAX 按照官方实例 python datax.py ./stream2stream.json 乱码
    Python中plot使用方法小白的福音
    Python 最简实现逻辑回归,针对二维数据进行机器学习
  • 原文地址:https://www.cnblogs.com/sunfeiyang/p/13157934.html
Copyright © 2011-2022 走看看