2017-08-22 13 views
0

私はSquishで比較的新しいです。私はQt5.9で作られたGUIをテストしています。Squish - タイプとプロパティに基づいて、QTベースのGUIのすべてのメニューにすべてのオブジェクトをセッティング

現在、私たちのアプリケーションで使用されているすべてのフォントのサイズを固定値(サイズ12)でチェックしたいと思います。

私はテストファイルを記録し、メニューからすべてのページに行き、 "type:QLabel"と "property:pointSize"に一致するオブジェクトを選択しようとしました。しかし、それは非常に遅いプロセスであり、私は各ページで200オブジェクトのように選択する必要があります。私はメニューから3つのページを通過し、私のコードはすでに500 +ラインです。ここでは、コードの一部です:

def main(): 
startApplication("ke3600") 
test.compare(waitForObjectExists(":_QLabel").font.bold, False) 
test.compare(waitForObjectExists(":_QLabel").font.pointSize, 12) 
test.compare(waitForObjectExists(":_MainWindow").font.bold, False) 
test.compare(waitForObjectExists(":_MainWindow").font.pointSize, 12) 
test.compare(waitForObjectExists(":Widget_QWidget").font.bold, False) 
test.compare(waitForObjectExists(":Widget_QWidget").font.pointSize, 12) 
test.compare(waitForObjectExists(":m_voltage_LineVoltageWidget").font.bold, False) 
test.compare(waitForObjectExists(":m_voltage_LineVoltageWidget").font.pointSize, 12) 
test.compare(waitForObjectExists(":m_dslSyncTime_QLabel").font.bold, False) 
test.compare(waitForObjectExists(":m_dslSyncTime_QLabel").font.pointSize, 12) 
test.compare(waitForObjectExists(":m_clock_QLabel").font.bold, False) 
test.compare(waitForObjectExists(":m_clock_QLabel").font.pointSize, 12) 
test.compare(waitForObjectExists(":m_stackedWidget_QStackedWidget").font.bold, False) 
test.compare(waitForObjectExists(":m_stackedWidget_QStackedWidget").font.pointSize, 12) 
test.compare(waitForObjectExists(":m_stackedWidget.flashPage_QWidget").font.bold, False) 
test.compare(waitForObjectExists(":m_stackedWidget.flashPage_QWidget").font.pointSize, 12) 
test.compare(waitForObjectExists(":m_stackedWidget.moduleframe_QFrame").font.bold, False) 
test.compare(waitForObjectExists(":m_stackedWidget.moduleframe_QFrame").font.pointSize, 12) 
test.compare(waitForObjectExists(":moduleframe.label_QLabel").font.bold, False) 
test.compare(waitForObjectExists(":moduleframe.label_QLabel").font.pointSize, 16) 
test.compare(waitForObjectExists(":moduleframe.moduleLabel_QLabel").font.bold, False) 
test.compare(waitForObjectExists(":moduleframe.moduleLabel_QLabel").font.pointSize, 16) 
test.compare(waitForObjectExists(":moduleframe.passLabel_QLabel").font.bold, False) 
test.compare(waitForObjectExists(":moduleframe.passLabel_QLabel").font.pointSize, 16) 
test.compare(waitForObjectExists(":m_stackedWidget.errorLabel_QLabel").font.bold, False) 
test.compare(waitForObjectExists(":m_stackedWidget.errorLabel_QLabel").font.pointSize, 12) 
test.compare(waitForObjectExists(":m_stackedWidget.flashProgressBar_QProgressBar").font.bold, False) 
test.compare(waitForObjectExists(":m_stackedWidget.flashProgressBar_QProgressBar").font.pointSize, 12) 
test.compare(waitForObjectExists(":m_stackedWidget.applPage_QWidget").font.bold, False) 
test.compare(waitForObjectExists(":m_stackedWidget.applPage_QWidget").font.pointSize, 12) 
test.compare(waitForObjectExists(":m_stackedWidget.menuPage_QWidget").font.bold, False) 
test.compare(waitForObjectExists(":m_stackedWidget.menuPage_QWidget").font.pointSize, 12) 
test.compare(waitForObjectExists(":m_stackedWidget.m_menuName_QLabel").font.bold, True) 
test.compare(waitForObjectExists(":m_stackedWidget.m_menuName_QLabel").font.pointSize, 12) 
test.compare(waitForObjectExists(":m_stackedWidget.subTitle_QLabel").font.bold, False) 
test.compare(waitForObjectExists(":m_stackedWidget.subTitle_QLabel").font.pointSize, 12) 
test.compare(waitForObjectExists(":m_stackedWidget.listView_MenuView").font.bold, False) 
test.compare(waitForObjectExists(":m_stackedWidget.listView_MenuView").font.pointSize, 12) 
test.compare(waitForObjectExists(":listView.qt_scrollarea_hcontainer_QWidget").font.bold, False) 
test.compare(waitForObjectExists(":listView.qt_scrollarea_hcontainer_QWidget").font.pointSize, 12) 
test.compare(waitForObjectExists(":listView_QScrollBar").font.bold, False) 
test.compare(waitForObjectExists(":listView_QScrollBar").font.italic, False) 
test.compare(waitForObjectExists(":listView.qt_scrollarea_vcontainer_QWidget").font.bold, False) 
test.compare(waitForObjectExists(":listView.qt_scrollarea_vcontainer_QWidget").font.pointSize, 12) 
test.compare(waitForObjectExists(":listView_QScrollBar_2").font.bold, False) 
test.compare(waitForObjectExists(":listView_QScrollBar_2").font.pointSize, 12) 
test.compare(waitForObjectExists(":listView.Broadband_QModelIndex").font.bold, False) 
test.compare(waitForObjectExists(":listView.Broadband_QModelIndex").font.pointSize, 12) 
test.compare(waitForObjectExists(":listView.Copper Test_QModelIndex").font.bold, False) 
test.compare(waitForObjectExists(":listView.Copper Test_QModelIndex").font.pointSize, 12) 
test.compare(waitForObjectExists(":listView.Analysis_QModelIndex").font.bold, False) 
test.compare(waitForObjectExists(":listView.Analysis_QModelIndex").font.pointSize, 12) 
test.compare(waitForObjectExists(":listView.Setup_QModelIndex").font.bold, False) 
test.compare(waitForObjectExists(":listView.Setup_QModelIndex").font.pointSize, 12) 
test.compare(waitForObjectExists(":listView.Address Book_QModelIndex").font.bold, False) 
test.compare(waitForObjectExists(":listView.Address Book_QModelIndex").font.pointSize, 12) 
test.compare(waitForObjectExists(":Battery_Battery").font.bold, False) 
test.compare(waitForObjectExists(":Battery_Battery").font.pointSize, 12) 

このプロセスは動作しますが、私の最終的なコードがより20Kラインとなり、私は私のメニューからすべてのページを経るとに分類されるすべてのオブジェクトを選択した場合、私に年齢を取ります私の必要なカテゴリ。

更新:

o = findObject("{name~='' type='QLabel'}") 
test.compare(str(o.font.pointSize), "12") 
:私は彼らの「タイプ」でオブジェクトを検索することができたと、私は次のコードを使用して、デフォルト値をそのフォントサイズを比較できるように

[OK]を

私の質問は

どのように私はすべてのページに移動せずに、このコードを手動で実行せずに、アプリケーションのすべてのメニューのすべてのページをチェックするのですか?ツリー横断のようなもの?たとえば、これは自動的にメニューのすべてのツリーに移動し、オブジェクトを検索し、そこにあればフォントサイズを比較します。

答えて

0

"ユーザーガイド"を読んだ後、私はこの問題の解決策を見つけることができました。誰もが、まだ関心がある場合:

def main(): 
    startApplication("ke3600") 


    objects = find_all_objects("{type='QLabel'}") 

    # Iterate over all the found objects: 
    for obj in objects: 
     test.log(str(obj.font.pointSize)) 
     test.log(str(obj.objectName)) 
     pass 

def find_all_objects(obj_real_name): 
    if "occurrence=" in obj_real_name: 
     test.warning("Real name must not contain the occurrence property on the actual object (but it is okay for containers): %s" % obj_real_name) 

    objects = [] 
    try: 
     one_object = findObject(obj_real_name) 
     objects.append(one_object) 

     # Occurrence of second instance for Java, MFC, UIA: 
     occurrence = 1 

     # Occurrence of second instance for Qt, Web: 
     if hasattr(one_object, "metaObject") or hasattr(one_object, "nextSibling"): 
      occurrence = 2 

     while True: 
      backup = testSettings.objectNotFoundDebugging 
      testSettings.objectNotFoundDebugging = False 
      try: 
       obj_real_name_n = "{occurrence='%s' %s}" % (occurrence, obj_real_name[1:-1]) 
       one_object = findObject(obj_real_name_n) 
       objects.append(one_object) 
       occurrence += 1 
      finally: 
       testSettings.objectNotFoundDebugging = backup 
    except LookupError: 
     # No more occurrences found 
     pass 
    return objects 

このコードは、type =「QLabel」のすべてのオブジェクトを探し、そのフォントサイズ、およびオブジェクト名を表示します。

関連する問題