Kütüphaneler: MultiTester - sayfa 15

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

Zaten sıkıştırmak mümkün mü değil mi? (Sanki - ya işe yararsa ))))

Evet, KB'deki zipler sessizce düzeltildi - güncellemeler oraya ulaşıyor. İçindeki dosyaların tarihleri güncelleme tarihine eşit oluyor. Yani bu tarihlere göre içeriğin hangi zamana karşılık geldiğini hemen anlayabilirsiniz.

 
fxsaber:

Test kayıtlarına bakılması gerekiyor.

Terminali yeniden başlatmak + yaklaşık 10 dakika beklemek yardımcı olur. Bir uyarı bile görünür. Terminali açtıktan hemen sonra teste başlamalısınız; trendleri bile gözden geçirmeyin. Ancak zamanla her şey kesintiye uğrayabilir veya döngüye girebilir. En son normal bir 172 geçiş yaşadım. Durum tekrarlanırsa günlüğü göndereceğim. Daha önce orada normdan herhangi bir sapma fark etmedim.
 
Good Beer:
Terminali açtıktan hemen sonra teste başlamalısınız; trendleri gözden geçirmeyin bile.

Bu normal bir durum değildir. Norm, her şeyin herhangi bir koşul olmaksızın çalışmasıdır.

 

MTTester temelinde farklı ticaret mantıklarının verimliliğini karşılaştırabilirsiniz.

Örneğin, TS1 ve TS2 var. Hangisinin daha iyi olduğunu anlamamız gerekiyor (tabii ki şartlı olarak).


Her TS için optimizasyon yaparız ve ardından en iyi pasajları farklı OOS aralıklarında tekli olarak çalıştırırız.

Tüm bunlar MTTester aracılığıyla otomatik olarak yapılabilir.


OOS sonuçlarını karşılaştırır ve hangi TS'nin daha iyi olduğuna karar veririz.

 

İlginç bir kayıt ortaya çıktı

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

kod üzerinde.

  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++) // Küresel yıkıcının şunları yapması gerekebilir
        if (Res = !Check || !MTTESTER::IsReady())
          ::Sleep(100);
      Print("i="+(string)i);
    }

    return(Res);
  }

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

İdeal olarak i=100'de en az 10 saniye uyuması gerekir. Bunu bir saniyede nasıl başardığını (ve esasen yanlış yürütmeye gittiğini) henüz çözemedim. Ama düğmeye basıldığını söylemekte fayda var, evet. Görünüşe göre düğme göstergesinde bir gecikme var. Çünkü testte paralel olarak çalışan ikinci bir örnek var ve CPU'yu %100 yüklüyor.

 

Sanırım anladım. Koşullar berbattı. Muhtemelen bu yüzden geçen sefer deneme sayısını 50 olarak değiştirmek zorunda kaldılar. Sadece başardığında uyuyor, o da zaten çıkmak üzereyken. Ve uyumak için iyi bir zaman olduğunda çabuk geçiyor. Bu bir böcek olmalı. Ve böcek üzücü, açıkçası neredeyse bir ay boyunca ortaya çıkmadı ve pasajların iyi olduğunu umuyordum. Her şeyi yeniden test etmem gerekecek. Ve neden nadiren, ama bazen pasajların birbirine uymadığını merak edip durdum.

Sanırım şöyle olmalı

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

Görünüşe göre, olması gerekiyordu

Evet, dikkatsizliğim nedeniyle döngü anlamını yitiriyordu. Araştırdığınız ve konumu açıkça belirttiğiniz için teşekkürler. Mümkünse yeniden yükleyeceğim.

 
fxsaber:

Evet, dikkatsizliğim nedeniyle döngü anlamını yitiriyordu. Çözdüğünüz ve açıkça belirttiğiniz için teşekkürler. Mümkünse yeniden yükleyeceğim.

Güncellendi.

 

Güncellemeyi beklerken, multitester görev listesinin döngüye girmesinin nedenlerini buldum.

Bunlardan ilki bilgisayarımdaki üçüncü parti görev yöneticisi "process lasso" idi. Kablosuz fare ve klavyeye yardımcı oluyor, ancak bir uygulamanın tüm CPU çekirdeklerini kullanmasından hoşlanmıyor. Test aracısı işlemleri yarıda kesiliyor ve sonuçlar kayboluyordu. Her seferinde yeni bir sonuçla tamamlanmamış bir göreviniz oluyordu. Metatester önceliğini yükseltmek her şeyi düzeltti.

İkinci sorun ise multitester' ın forward'ı desteklememesidir. Eğer ileri seçeneği etkin değilse, her şey yolunda gider. Ancak etkinleştirilirse, görev listesi tıkanmaya başlar. İleri test, bir geçişin sonunda "BİTTİ" m esajı göründüğünde başlar.Multitester listede gezinmek ister, ancak ileri başlar. Ve "START" düğmesine basılır ve eski görev başlatılır. Algoritmanızın bir geçişi sonlandırma kriteri nedir?

Lütfen multitester'ın gelecekteki sürümlerinde ileriyi düşünün .

 
Good Beer:

Lütfen multitestera'nın gelecek sürümlerinde ileriyi göz önünde bulundurun.

Hayatımda hiç İleri modunu çalıştırmadım. Muhtemelen bir gün deneyeceğim.