「site:stackoverflow.com yandex-tank Waiting for aggregator to finish」を Web 検索しましたが、具体的なものは何も見つかりませんでした。
Yandex-Tank (YT) を介して JMeter を起動し、JMeter が終了した後も、YT はログに「アグリゲーターが終了するのを待っています」と永遠に書き続けます。ここでいくつかの議論を見つけました: https://gitter.im/yandex/yandex-tank?at=5ce2c4e36366992a94ef7826 :
Покопал ещё, оказывается эти строки там были, но их убрали в коммите: 47623dd4b7a08e5383cbb4144eecc13edbdf3e96 Видимо закрытие reader нужно перенести по аналогии с Bfg в plugins/JMeter/plugin.py В функции end_test и is_test_finished
これは、ロシア語のディスカッション ボードであり、ロシア語以外のスピーカーのための簡単な翻訳です。
しかし、私がコードend_test
で見るように、is_test_finished
reader.close()
すでにそこにありyandextank/plugins/JMeter/plugin.py
ます:
def is_test_finished(self):
retcode = self.process.poll()
aggregator = self.core.job.aggregator
if not aggregator.reader.jmeter_finished and retcode is not None:
logger.info(
"JMeter process finished with exit code: %s, waiting for aggregator",
retcode)
self.retries = 0
aggregator.reader.jmeter_finished = True
return -1
elif aggregator.reader.jmeter_finished is True:
print("aggregator.reader.jmeter_finished is True")
if aggregator.reader.agg_finished:
self.reader.close()
return retcode
else:
logger.info("Waiting for aggregator to finish")
return -1
else:
return -1
def end_test(self, retcode):
if self.process:
gracefully_shutdown = self.__graceful_shutdown()
if not gracefully_shutdown:
self.__kill_jmeter()
if self.process_stderr:
self.process_stderr.close()
self.core.add_artifact_file(self.jmeter_log)
self.reader.close()
return retcode
それを修正する方法(JM終了後にYTをきれいに終了させるため)?