Библиотеки: MultiTester - страница 15

 
Сергей Таболин:

Уже можно зипом качать или не стоит? (Это типа - а вдруг заработает ))))

Да, зипы в КБ тихо починили - обновления туда попадают. При этом даты файлов внутри становятся равны дате обновления. Так что по этим датам можно сразу понять, какому времени соответствует содержимое.

 
fxsaber:

Логи Тестера нужно посмотреть.

Перезагрузка терминала + ожидание около 10 минут помогает. Даже алерт появляется. Нужно начинать тестировать сразу после открытия терминала; даже тренды не листать. Но со временем всё может прерваться или зациклится. Последний раз нормально прошло 172 прохода. Если ситуация повториться, я пришлю лог. Ранее я не замечал там отклонений от нормы.
 
Good Beer:
Нужно начинать тестировать сразу после открытия терминала; даже тренды не листать.

Это ненормальная ситуация. Норма - все пашет без каких-либо условий.

 

На основе MTTester можно делать сравнение эффективности различных торговых логик.

Например, есть ТС1 и ТС2. Нужно понять, какая лучше (условно, конечно).


Делаем оптимизации каждой ТС, а потом лучшие проходы прогоняем одиночными на различных OOS-интервалах.

Все это можно делать автоматом через MTTester.


OOS-результаты уже сравниваем между собой и решаем, какая ТС лучше.

 

Интересный лог только что получился

2019.12.21 13:38:35.994 Tester  Ready to set
2019.12.21 13:38:36.617 Tester  i=100

на коде

  static bool ClickStart( const bool Check = true, const int Attempts = 100 )
  {
    bool Res = !Check || MTTESTER::IsReady();

    if (Res)
    {
      static const int ControlID[] = {0xE81E, 0x804E, 0x2712, 0x4196};
      GET_HANDLE

      user32::SendMessageW(Handle, BM_CLICK, 0, 0);

      Res = !Check || !MTTESTER::IsReady();

      int i = 0;
      for (i = 0; (i < Attempts) && (!Res)/* && !::IsStopped() */; i++) // Глобальному деструктору может понадобиться
        if (Res = !Check || !MTTESTER::IsReady())
          ::Sleep(100);
      Print("i="+(string)i);
    }

    return(Res);
  }

Print("Ready to set");
MTTESTER::SetSettings2(TesterInput);
MTTESTER::ClickStart();

По идее при i=100 он должен спать 10 секунд минимум. Как он это провернул за секунду (и по сути пошёл выполняться неправильно), я пока не понял. Но стоит сказать, что кнопку нажал, да. Видимо, запаздывание в индикации кнопки. Ибо параллельно работает второй инстанс на тестировании и грузит проц на 100%.

 

Кажется, понял. С условиями намудрилось. Возможно, поэтому и пришлось в прошлый раз менять число попыток на 50. Он спит только в случае успеха, когда ему и так выходить. И быстро пролетает, когда хорошо бы поспать. Видимо, баг. И баг печальный, явно не проявлялся почти месяц, а я надеялся, что проходы в порядке. Придётся всё перетестировать. А я всё гадал, почему редко, но иногда проходы не сходятся.

Видимо, должно быть

if (!(Res = !Check || !MTTESTER::IsReady()))
 
traveller00:

Видимо, должно быть

Да, цикл терял смысл по моей невнимательности. Спасибо, что разобрались и четко указали на место. Перезалью по возможности.

 
fxsaber:

Да, цикл терял смысл по моей невнимательности. Спасибо, что разобрались и четко указали на место. Перезалью по возможности.

Обновил.

 

В ожидании обновления я разобрался с причинами зацикливания списка заданий мультитестера.

Первой оказался сторонний диспетчер задач "process lasso" на моём компьютере. Он помогает в работе беспроводной мыши и клавиатуры, но не любит, когда одно приложение забирает все ядра ЦП. Процессы агентов тестирования просто прерывались и результаты терялись. Получалось незавершенное задание, каждый раз с новым результатом. Повышение приоритета метатестера всё исправило.

А вторая проблема — это то, что multitester не поддерживает форвард. Если форвард не включен - всё работает хорошо. Но если включить - начинается буксование списка заданий. Форвард-тестирование начинается во время появления сообщения "DONE" по окончании прохода. multitester хочет пролистнуть список, а начинается форвард. А кнопка "СТАРТ" нажимается и запускается старое задание. Какие у вашего алгоритма критерии окончания прохода?

Прошу учесть форвард в будущих версиях multitesterа.

 
Good Beer:

Прошу учесть форвард в будущих версиях multitesterа.

Ни разу в жизни не запускал Форвард-режим. Наверное, попробую когда-нибудь.

Причина обращения: