UFT (Unified Functional Testing) on Azure Pipelines

Kadriye Taylan
KoçSistem
Published in
7 min readApr 4, 2021

Herkese Merhaba :)

Bu yazımda sizlere test otomasyon aracı olan UFT ile geliştirmiş olduğunuz testleri Azure Pipelines(Azure DevOps Server) üzerinde nasıl çalıştıracağınzdan bahsedeceğim.

Nasıl entegre edilir sorusundan önce biraz UFT’den bahsetmek istiyorum.

UFT(Unified Functional Testing)

UFT; eski adı QTP(Quick Test Professional) olan, 2006 yılında HP tarafından piyasaya sürülen bir test otomasyon aracıdır. 2011 yılında çıkartılan 11.5 versiyonuyla birlikte ismi UFT olmuştur. 2017 yılında ise Micro Focus şirketi tarafından satın alınmıştır. Desktop, Web ve Mobil ortamlar için fonksiyonel, regresyon ve web servis testleri geliştirebilmeniz için bir altyapı sunan lisanslı bir üründür.Test otomasyonuna yeni başlayıp yeterl teknik bilgiye sahip olmayanlar için kolaylıkla kullanılabilecek bir test otomasyon aracıdır.

UFT ile test otomasyon süreçleri uçtan uca otomatize edilebililmektedir. Otomasyona bağlanan test süreçleri ile birlikte test masrafları azalırken geliştirilen yazılımın kaliteside büyük ölçüde artacaktır.

UFT’de neler yapılabiliyor?

  • Web UI Testi
  • API Testi
  • Mobile Testi
  • Desktop Testi
  • Entegrasyon Testi
  • CI entegrasyonları

Bazı Özellikleri

  • Kullanımı oldukça basit bir arayüze sahiptir.
  • Record and Play özelliği bulunan UFT test scriptlerini yazarken VBScript dilini kullanmaktadır.
  • Record işlemininde yardımı ile test scriptleri oldukça hızlı bir şekilde oluşturulabilmektedir.
  • Programlama yetkinliği çok gerektirmez ancak advance işlemlerde script yazılması gerekebilir.
  • Test development olarak yalnızca Windows işletim sistemlerini desteklemektedir.
  • Object repository ile obje yönetimi kolay yönetilebilir.
  • Jenkins, Bamboo, Azure Devops gibi araçlar ile pipeline üzerinde entegrasyonu gerçekleştirilebilmektedir.
  • SAP, Oracle gibi farklı ortamları destekler. Ancak bunun için ek lisans alınabilir. Buda ekstra maaliyet demektir.
  • Geriye dönük uyumluluk oldukça yüksektir.
  • Oldukça büyük bir community’ye sahip olduğundan sorunlara hızlı bir şekilde cevap alınabilmektedir. Ancak lisans maaliyeti oldukça yüksek bir uygulamadır.

Haydi şimdi UFT’yi Azure Pipelines üzerinde nasıl çalıştırabileceğimize bakalım.

Kurulumlar Azure DevOps Server(On-Prem)’a göre hazırlanmıştır.

Agent Kurulumu

Pipeline da kullanacağımız bu agentın kurulumu diğer kullanılan klasik agentlardan biraz farklı olacaktır.

İlk olarak agent’ın kurulacağı yere agent kurulum dosyaları download edilmelidir.

Project Settings>Agent Pool>Default Pool>New Agent>Download

Agent kurulum dosyaları indirildikten sonra extract edilerek aşağıdaki scriptler çalıştırılmalıdır.

C:\Agents\Agent1>config>> Connect:Enter server URL > AZUREDEVOPS_URLEnter authentication type (press enter for Integrated) > NegotiateEnter user name > ADMIN_USEREnter password > ************Connecting to server ...>> Register Agent:Enter agent pool (press enter for default) >Enter agent name (press enter for SERVERNAME) > AGENT_NAMEScanning for tool capabilities.Connecting to the server.Successfully added the agentTesting agent connection.Enter work folder (press enter for _work) >2021-02-02 14:01:16Z: Settings Saved.Enter run agent as service? (Y/N) (press enter for N) >Enter configure autologon and run agent on startup? (Y/N) (press enter for N) > yEnter User account to use for autologon > KSNET\sahipEnter a valid value for User account to use for autologon.Enter User account to use for autologon > sahipEnter Password for the account SERVERNAME\sahip > ********Checking for policies that may prevent autologon from working correctly.Checking for policies that may prevent screensaver from being disabled.Restart the machine to launch agent and for autologon settings to take effect.Enter Restart the machine at a later time? (Y/N) (press enter for N) >

Kurulumları gerçekleştirirken dikkat edilmesi gereken noktalar:

  • Micro Focus’un dökümanında Agent Pool olarak “Default” poolun kullanımı bold ile belirtilmiş. Bu nedenle default pooldan ilerlenebilir.
  • Agent’i kurarken “Run Interactively” seçeneğiyle(autologon) çalıştırmanız, GUI test otomasyonu çalıştırabilmeniz açısından önemli. “Run as Service” seçeneğiyle çalıştırırsanız GUI testleriniz çalışmayacaktır.

Yukarıdaki işlemleri tamamladıktan sonra, makineyi restart etmenizi isteyecek, restart işleminden sonra da Agent, CMD ekranında otomatik bir şekilde ayağa kalkacak, Default pool üzerinden de Online olduğunu görebilirsiniz

Kurulumlar için ön gereksinimler

Extension kurulumu iki aşamadan oluşmaktadır.

  1. Azure DevOps’a marketplace’den extension kurmak
  2. Agent tarafına slave kurmak

Kurulumlar için gereksinimleri aşağıdaki gibidir.

  1. Extension kurulumu için admin yetkisine sahip olmanız yada admin kullanıcısı ile işlemleri gerçekleştirmeniz gerekmektedir.
  2. Slave kurulumu için kullanılan Powershell versionu 4.0 yada üstü olmalıdır.
  3. JRE installation klasörü environment variableda PATH değişkenine eklenmelidir.

Azure DevOps Server’a Extention Kurulumu

Azure DevOps marketplace’te aşağıda gördüğün extenion’u bulup kurmanız yeterli olacaktır. “Unified Functional Testing” şeklinde aratabilirsiniz.

Collection Settings>Extensions

Agent/Slave Makinesine Azure DevOps Extention Kurulumu

  1. Micro Focus’un Github linkinden UFT.zip, unpack.ps1 dosyalarını indirin. Zip’i normal download diyerek indirebilirsiniz, unpack.ps1'i kopyalayıp, .zip’i indirdiğiniz dizinde yaratacağınız bir text dosyasına yapıştırıp kaydettikten sonra uzantısını ps1'e çekebilirsiniz. (Notepad veya Notepad++ kullanabilirsiniz.)
  2. Daha sonra CMD veya PowerShell yardımıyla unpack.ps1 scriptini çalıştırın.

Bu şekilde slave tarafında extention kurulumu tamamlanmış olacak.

Slave aracılığı ile UFT’nin kurulu olduğu makineye bağlantı sağlanmış olacak ve testler çalıştırılabilecek.

UFT Server Üzerinde Yapılması Gereken Konfigürasyonlar

  • Testleri RDC/RDP session yapmadan da yani, kilitli veya logged out olmuş vaziyetteki bir makinede koşabilmek için aşağıdaki yolu izleyerek UFT’yi bu koşula uygun hale getirebiliriz;

Tools → Options → General → Run Sessions ekranında “Enable testing on locked, logged off or disconnected remote computers.” checbox’ını işaretlemeniz gerekir.

Daha sonra Windows kullanıcı bilgilerini girip “Check Connection” dedikten sonra Verified uyarısını almamız yeterli olacaktır.

Bu işlemi UFT nin kurulu olduğu olduğu yerde yapmanız gerekmektedir.

Azure Pipelines Entegrasyonu

Azure Pipelines>Releases>New release pipeline diyerek yeni bir release create edilir. Yeni create edilen release de template seçiminde Empty Job olarak ilerlenir.

Daha sonra otomasyon kaynak kodlarının bulunduğu repository artifact olarak verilir.

Tasks tabında Agent Job konfigüre edilir.

  • Demands olarak uft>existing eklenir. Böylece pipeline çalışırken otomatik olarak uft’yi içeren agent’ta çalışacaktır.

Ben testleri trigger ederken, micro focusun dökümanlarında da bahsedilen batch file kullanılarak yapılan yöntemi seçtim. Bu yöntem için sırasıyla aşağıdaki adımları uygulanmalıdır.

Batch File Örneği;

TestSuits.mtbx<Mtbx><Test name='Test Name' path='Test Script Folder Path' reportPath='report_path'>
</Test>
</Mtbx>

Pipeline’da Variables kısmına UFT_LAUNCHER değişkeninin tanımlanması gerekiyor. Value’sı UFTWorking dizininin full path’i olması gerekiyor ve Settable at release time seçeneğinin aktif olması gerekiyor.

Şimdide Agent Job’a Tasklarımızı ekleyelim.

1-Change Screen Resolution için Batch script taskının eklenmesi

Testlerin daha stabil çalışabilmesi için ekran çözünürlüğü bir Batch Script taskı yardımıyla 1920x1080 olarak konfigüre ediliyor.

RDPDisconnectSession.bat dosyasının içeriği aşağıdaki gibidir;

for /f "skip=1 tokens=3" %%s in ('query user %sahip%') do (%windir%\System32\tscon.exe %%s /dest:console)"C:\Program Files (x86)\12noon Display Changer\dc64.exe" -width=1920 -height=1080

2-Copy Files taskının eklenmesi

Artifact olarak Agent’ın altında bir dizine indirilen test kodlarını, herhangi bir path related problemle karşılaşmamak için testleri Copy Files taskı ile geliştirdiğimiz dizinin altına taşıyoruz.

3-Delete files taskının eklenmesi

UFT, önceki koşumlardan kalan raporları silmediği için, o anki koşum sonuçlarını Publish etmemize engel oluyordu, dolayısıyla bu taskı da ekleyerek koşumdan önce, eski tüm raporları Delete Files taskı ile siliyoruz.

4-UFT File System Execution taskının eklenmesi

UFT File System Execution taskını kullanarak, batch file’da belirtmiş olduğumuz testleri koşmasını istiyoruz. Continue on error seçeneği önemli; hata olsa da raporları paylaşabilmemize yarıyor. Aksi taktirde testlerde alınan hata dolayısı ile release hata alarak çalışmaya devam etmeyecektir.

5-Publish Test Results taskının eklenmesi

Test sonuçlarını görüntüleyebilmek için Publish Test Result taskı ile xml test resultlarını publish ediyoruz.

Test Sonuçlarını çalıştırılan release içerisinde Tests tabından görüntüleyebilirsiniz.

6-Publish Release Artifact taskının eklenmesi

UFT test raporlarının detayını Pipeline üzerinde göremediğimiz için, raporu inceleyecek kişinin UFT Server’a bağlanıp bakması yerine Publish Release Artifact taskı kullanılarak UFT server’daki raporları Azure release log’larına upload ediyoruz.

Böylece, Releaes log’larını indirip, test sonuçlarını detaylı bir şekilde inceleyebilirsiniz.

Azure release loglarına ulaşmak için çalıştırılan release’e ait “Logs” tabından “Download All Logs” diyerek raporlarında bulunduğu tüm logları indirip raporları inceleyebilirsiniz.

ÖNEMLİ NOT

Eğer testleri çalıştırırken \bin\PSModule.dll was not loaded… gibi bir hata alıyorsanız ; UFTWorking’i kurduğunuz dizinde \bin klasörünün içindeki PSModule.dll dosyasına sağ tık yapıp özelliklerine gittiğinizde; Security kısmındaki checkbox’ı seçili hale getirerek sorunu ortadan kaldabilirsiniz.

Umarım faydalı bir yazı olmuştur.

Bir sonraki yazımda görüşmek üzere :)

--

--