Пример #1
0
    def do_run(self, scoped) -> Tuple[TestResult, Any]:
        #logging.info("9092 Sockets before do_run()")
        #os.system('netstat -an | grep -w 9092')
        #logging.info("ps before do_run()")
        #os.system('ps -ef')

        logging.info(f"Connecting to Kafka")
        producer = KafkaProducer(bootstrap_servers=['localhost:9092'])

        msg_count = 100
        for _ in range(msg_count):
            producer.send('test-topic', b'msg')

        consumer = KafkaConsumer('test-topic',
                                 group_id='group',
                                 bootstrap_servers=['localhost:9092'],
                                 auto_offset_reset='earliest',
                                 enable_auto_commit=False,
                                 session_timeout_ms=10000,
                                 max_poll_interval_ms=10000)

        msg_count_recv = 0
        for _ in range(msg_count):
            msg = next(consumer)
            msg_count_recv += 1

        assert msg_count == msg_count_recv, f"Expected to have {msg_count}, but received {msg_count_recv}"
        return passed(), None
Пример #2
0
    def __validate_test_execution(self, name, scoped, test_data, scope_messages):
        for validator in self.__test_execution_validators:
            if validator.should_validate(name, scoped):
                logging.debug(f"Test execution {name}. Applying validator {validator.name}")
                res = validator.validate(test_data, scope_messages)
                if not res.passed:
                    logging.warning(f"Test execution validator {validator.name} failed on {name}. Error: {res.error}")
                    return res

        return passed()
Пример #3
0
    def __validate_test_set(self, name, result):
        for validator in self.__test_set_validators:
            if validator.should_validate(name):
                logging.debug(f"Test set {name}. Applying validator {validator.name}")
                res = validator.validate(result)
                if not res.passed:
                    logging.warning(f"Test set validator {validator.name} failed on {name}. Error: {res.error}")
                    return res

        return passed()
Пример #4
0
    def do_run(self, scoped) -> Tuple[TestResult, Any]:
        logging.info(
            f"Connecting to Splunk. User {config.username}, Password {config.password}"
        )

        service = client.connect(username=config.username,
                                 password=config.password)

        index_name = f"test_{random_string(4)}"
        logging.info(f"Creating test index '{index_name}'")
        index = service.indexes.create(index_name)

        events_num = 100000
        logging.info(f"Sending {events_num} events to Splunk")

        with index.attach() as sock:
            sock.settimeout(60)
            for i in range(events_num):
                sock.send(f"This is my test event {i}! \n".encode('utf-8'))

        self.__assert_same_number_of_events(service, events_num, index_name)
        self.__assert_transposed_results(service, index_name)

        return passed(), None