Как утверждать утверждения stdout из журналов JMeter? - PullRequest
0 голосов
/ 19 марта 2020

У нас есть тест beanhell, который выполняет JAR, который, в свою очередь, печатает ответ на stdout; очень похоже на процесс, описанный в этой статье. Однако мне интересно, есть ли способ проверить утверждения, напечатанные в журнале как часть тестов, не прибегая к ручной проверке.

1 Ответ

0 голосов
/ 19 марта 2020
  1. Забудьте о Beanshell, , начиная с JMeter 3.1, вы должны использовать JSR223 Test Elements и Groovy language
  2. Однако ваш тестовый дизайн выглядит очень ненадежным и расплывчатым если вы не можете придумать лучший вариант, чем захват stdout, вы можете создать свой собственный PrintStream и использовать функцию System.setOut () , чтобы использовать собственный PrintStream вместо STDOUT. Примерно так:

    • Добавление группы потоков setUp в ваш план тестирования
    • Добавление сэмплера JSR223 в группу потоков setUp
    • Поместите следующий код в область «Сценарий |»:

      def baos = new ByteArrayOutputStream()
      def ps = new PrintStream(baos)
      System.setOut(ps)
      props.put('baos', baos)
      
    • После этого вы можете получить доступ ко всем сообщениям, которые были напечатаны на STDOUT, используя следующий код:

      def stdout = props.get('baos').toString()
      

Демо:

enter image description here

...