DOLAR 44,2054 0.15%
EURO 50,9678 0.03%
ALTIN 7.232,040,37
BITCOIN 31165300.442%
İstanbul
11°

AÇIK

SABAHA KALAN SÜRE

QGIS – Dijital Coğrafya için Autoit ile Otomatik Kullanıcı Arayüzü Testleri

QGIS – Dijital Coğrafya için Autoit ile Otomatik Kullanıcı Arayüzü Testleri

ABONE OL
Temmuz 1, 2025 16:36
QGIS – Dijital Coğrafya için Autoit ile Otomatik Kullanıcı Arayüzü Testleri
0

BEĞENDİM

ABONE OL

Last Updated on Temmuz 1, 2025 by EDİTÖR

Testten nefret ediyorum! Yine de iyi bir yazılım çözümü için çok önemli olduğunu anlıyorum. Sık sık GUIS ile karşı karşıya olduğum için, kendime mümkün olduğunca en az manuel girişle nasıl test edeceğimi sordum. Burada size Autoit ile bir yol göstereceğim.

Oto

Windows için Otomatik Editör
Otoit editörü

Autoit’e tökezledim IX Makalesi Alman sigorta şirketi CosmosDirect’in test otomasyonuna odaklanan yeni bir BT projesi hakkında yazdığı dergi. Bazı süslü web ön uçlarına ve arka uçlarında ağır PL-SQL mantığına rağmen, bir şişman istemciden bahsediyorlardı. Bu şişman müşteriyi test etmek hikayenin bir parçası değildi ama aracı yönettiler Oto.

Autoit V3, Windows GUI ve genel komut dosyasını otomatikleştirmek için tasarlanmış bir ücretsiz temel benzeri komut dosyası dilidir. Görevleri diğer dillerle mümkün veya güvenilir olmayan bir şekilde otomatikleştirmek için simüle tuş vuruşları, fare hareketi ve pencere/kontrol manipülasyonu kombinasyonunu kullanır.

outoitscript.com

Otomatik: Kısa Bir Açıklama

Autoit ile A’dan Z’ye testi yapmayacağım. Yine de temel fikirleri karşılamak istiyorum:

  • pencere
  • kısayollar
  • Geçen Değerler
  • navigasyon

Bu “ilk adımlar” yoluyla temel prensip bir şekilde şöyle tanımlanabilir: Fare olmadan QGI’leri kullanmaya çalışın. Otomatik testlerde tanımlayıcılar kullanma veya “görüntü tanıma” gibi farklı yaklaşımlar vardır. Ancak Autoit’ten gelen, sade ve basit ama güçlü bir yaklaşıma oldukça yaklaşıyor. Ve zaten 20 yaşında…

Otomatik test çalışmaları için Autoit belirli bir dil kullanır. Bu nedenle test komut dosyaları yazmanız gerekir. Bunları doğrudan düzenleyiciden çalıştırabilir veya bunları derleyebilir (yalnızca Windows’ta otomatik çalıştırır) ve oluşturulan exe dosyasını başlatabilirsiniz.

Otomatik: Hızlı bir örnek

Bu örnekte, bir müşteri üzerindeki bir kurulumdan sonra bir duman testi için Autoit kullanıyorum:

  • En son kararlı yürütülebilir dosyayı açın
  • tam ekranı yap
  • Yeni Jeopackage Noktası Katmanı Oluşturun
  • Düzenleme Oturumunu Başlat
  • Bir nokta oluştur ve öznitelik ekle
  • Katman Kaydet
  • QGI’lerden çık

Oluşturduğum senaryo, Göndermek kullanarak GUI’de gezinme komutu SekmeDown_key ve girin. Kullanıcı adı ve QGIS penceresinin kendisi için değişkenler kullanıyorum. Tüm Testrun’un çalışması sadece 13’ler alır, ancak temel işlevselliği kapsar ve çim veya python aletlerinin kullanımını ve bazı oluşturma işlevlerini kapsayacak şekilde daha fazla çizgi ile kolayca geliştirilebilir:

#include  ; need this for the mouse clicks

Run("C:Program FilesQGIS 3.4binqgis-ltr-bin-g7.exe") ; starting the program
Local $qgis = WinWaitActive("Unbenanntes Projekt - QGIS")
WinSetState ($qgis, "", @SW_MAXIMIZE) ; maximise the working window
Send("^+n"); ctrl Shift n for new geopackage Layer
WinWaitActive("Neuer GeoPackage-Layer") ; waiting for the window to appear
Send("{TAB 3}") ; Presses the DEL key 3 times
; damn navigation fro creating a Geopackage layer...
Send("Test_Table") ;
Send("{TAB}")
Send("{DOWN}")
Send("{TAB 4}")
Send("Name") ;
Send("{TAB 2}")
Send("255")
Send("{TAB}")
Send("{SPACE}")
Send("{TAB}")
Send("C:Users" & @UserName & "DocumentsGIS DataBasetest")
Send("{ENTER}")
; should be ready now
WinWaitActive($qgis)
Send("!l") ;switch to Layer menu ALT+L
Send("{DOWN 8}")
Send("{ENTER}"); open edit mode
Send("^."); create new point
WinWaitActive($qgis)
MouseClick($MOUSE_CLICK_LEFT, 559, 411, 1) ; creates a poin on the map pane at x-y pixel 
WinWaitActive("Test_Table - Objektattribute")
Send("{TAB}"); we don't set a fid
Send("This is my name")
Send("{ENTER}"); closes attribut entry window
WinWaitActive($qgis)
Send("!l") ;switch to Layer menu ALT+L
Send("{DOWN 8}")
Send("{ENTER}"); closes edit mode
WinWaitActive("Bearbeitung beenden")
Send("{ENTER}") ;save edits
WinWaitActive($qgis)
WinClose($qgis)
WinWaitActive("Projekt speichern")
Send("{TAB 1}")
Send("{SPACE}")

Sonuç için kontrol edin

Her test programına gelince: Bu programın 0 çıkış kodu ile çalıştırılması, hata olmadan çalıştığını söylüyor. Şimdi, istenen konumda yeni bir dosya olup olmadığını kontrol etmek istiyoruz. Bunun için bir işlev kullanıyorum:

#include 
#include 

FileChecker()

Func FileChecker()
    Local $filePath = "C:Users" & @UserName & "DocumentsGIS DataBasetest.gpkg"
    Local $iFileExists = FileExists($filePath)
    ; Display a message of whether the file exists or not.
    If $iFileExists Then
        MsgBox($MB_SYSTEMMODAL, "", "The file exists." & @CRLF & "FileExist returned: " & $iFileExists)
    Else
        MsgBox($MB_SYSTEMMODAL, "", "The file doesn't exist." & @CRLF & "FileExist returned: " & $iFileExists)
    EndIf
    ; Delete the file:
    FileDelete($filePath)
EndFunc

Dosyanın tamamını bir Github’da Gist.

Çevrimiçi dokümantasyon çok yararlı ve çok canlı bir forum var. Yeter dedi: Mutlu kodlama!

En az 10 karakter gerekli


HIZLI YORUM YAP