Excel'den Veri İçe Aktarma, Okuma ve Değiştirme İşlemleri Nasıl Yapılır? QTP/UFT
⚡ Akıllı Özet
Excel'den veri içe aktarma, okuma ve değiştirme işlemleri. QTP/UFT Bu, çalışma kitabını çalışma zamanı veri tablosuna yükleyen yerleşik DataTable nesnesine dayanır; böylece her otomasyon komut dosyası, elektronik tablo satırlarından test adımlarını yönlendirebilir.

Test uzmanlarının girdi değerlerini, beklenen sonuçları ve ortam ayarlarını sakladıkları en yaygın yer hala elektronik tablolardır. QTPşimdi satılıyor OpenText UFT Ürün HP'den Micro Focus'a ve ardından da başka bir şirkete geçtikten sonra... OpenTextBu işlem, DataTable nesnesi aracılığıyla bu elektronik tabloları okur. Aşağıdaki bölümler, bir çalışma kitabını içe aktarmak, satırlarını saymak, tek tek hücreleri okumak, değerleri değiştirmek ve sayfayı diske geri yazmak için kullanılan tam ifadeleri göstermektedir.
EXCEL'den Verileri İçe Aktarma, Okuma ve Değiştirme Adımları
Şunları içe aktarmak istediğinizi varsayalım: Satış.xls Çalışma kitabınızı testinize ekleyin.
Dosya içe aktarıldıktan sonra UFTEn üst satır sütun başlığı olur, bu nedenle verilerinizi buna göre yapılandırın. 1. satırdaki her şey test verisi yerine parametre adı olarak kabul edilir ve kalan her satır veri satırı olarak sayılır.
Aşağıda Excel dosyasının tamamını içe aktarmak için kullanılan sözdizimi gösterilmektedir.
DataTable.Import(FileName)
Bizim durumumuzda ifade şu şekilde olur. VBScript'te bir metot ifade olarak çağrıldığında parantez gerekmez, bu nedenle burada düz form kullanılır.
DataTable.Import "D:\Automation\Sales.xls"
Çalıştırma işleminden sonra, içe aktarılan satırlar, çalışma kitabında yerleştirildikleri şekilde, çalışma zamanı Veri bölmesinde görünür.
Belirli bir sayfayı içe aktarmak için kullanılan sözdizimi aşağıda gösterilmiştir. SheetSource Bu, çalışma kitabının içindeki sayfadır ve SheetDest Bu, çalışma zamanı veri tablosundaki hedef sayfadır.
DataTable.ImportSheet FileName, SheetSource, SheetDest
Kullan Satır Sayısını Al Bir çalışma sayfasındaki veri satırlarının sayısını elde etme yöntemi. Her ifade kendi satırında yer almalıdır.
DataTable.Import "D:\Automation\Sales.xls" row = DataTable.GetSheet(1).GetRowCount MsgBox row
Görüntülenen mesaj kutusu, içe aktarılan sayfanın satır toplamını bildirir.
İmleci belirli bir satıra taşımak için şunu kullanın: GeçerliSatırı Ayarla yöntem. İkinci argümanı DataTable.Value Bu, satır numarası değil, sayfa numarasıdır; bu nedenle satır işaretçisinin ayrı olarak taşınması gerekir.
DataTable.Import "D:\Automation\Sales.xls" ' In the code below, 1 is the sheet number DataTable.SetCurrentRow 1 Row1 = DataTable.Value("Year", 1) DataTable.SetCurrentRow 2 Row2 = DataTable.Value("Year", 1) MsgBox "Year Row 1 = " & Row1 & " Year Row 2 = " & Row2
Her iki değer de aynı sütundan ancak iki farklı satırdan okunur ve mesaj kutusu bunları yan yana yazdırır.
Kullan Özellik İçe aktarılan sayfadaki verileri değiştirmek için atama işleminin sol tarafındaki yöntem kullanılır. Değişiklik, siz çağırana kadar bellekte kalır. İhracatBu işlem, çalışma zamanı veri tablosunu bir Excel dosyasına geri yazar.
DataTable.SetCurrentRow 1 DataTable.Value("Year", 1) = 2026 DataTable.Export "D:\Automation\Sales_Updated.xls"
Düzenlenen hücre, atama işlemi tamamlandıktan hemen sonra çalışma zamanı Veri bölmesinde görünür.
Dışa aktarılan çalışma kitabını açmak, değiştirilen değerlerin yalnızca çalışma süresi boyunca saklanmak yerine diske kaydedildiğini doğrular.
💡 İpucu: İçe aktardığınız dosya adından farklı bir dosya adına dışa aktarın. Aynı açık çalışma kitabına geri yazmak, paylaşım ihlaline neden olmanın ve çalışmayı kaybetmenin en hızlı yoludur.
Excel Verilerini Okuma, Değiştirme ve Dışa Aktarma: Eksiksiz Bir Örnek
Yukarıdaki kod parçacıklarının her biri bir yöntemi göstermektedir. Gerçek bir veri odaklı testte, bunlar her satırı dolaşan, bir şey hesaplayan, sonucu saklayan ve sayfayı dışa aktaran tek bir döngüde birleştirilir. Çalışma kitabının Satış.xls Aşağıdaki dört sütunu ve üç veri satırını içerir.
| Yıl | Bölge | Birimler | Fiyat |
|---|---|---|---|
| 2023 | Doğu | 120 | 25 |
| 2024 | Doğu | 150 | 25 |
| 2025 | Batısında | 200 | 30 |
Aşağıdaki komut dosyası bir ekleme yapar. Satış Tutarı Bir sütunu işler, satır satır doldurur, sürekli toplamı tutar ve tamamlanmış sayfayı yeni bir dosyaya yazar. AddParameter Kaynak çalışma kitabında sütun mevcut olmadığı için bu yöntem kullanılır; zaten mevcut olan bir sütun için bu yöntemi çağırmak hataya neden olur.
' Read, calculate and export Excel data in UFT One Dim sh, rowCount, i, units, price, revenue, total DataTable.Import "D:\Automation\Sales.xls" Set sh = DataTable.GetSheet(1) sh.AddParameter "Revenue", "" rowCount = sh.GetRowCount Print "Total rows imported: " & rowCount total = 0 For i = 1 To rowCount DataTable.SetCurrentRow i units = DataTable.Value("Units", 1) price = DataTable.Value("Price", 1) revenue = CInt(units) * CInt(price) DataTable.Value("Revenue", 1) = revenue total = total + revenue Print "Row " & i & " | Year: " & DataTable.Value("Year", 1) & _ " | Region: " & DataTable.Value("Region", 1) & _ " | Revenue: " & revenue Next Print "Grand Total Revenue: " & total DataTable.Export "D:\Automation\Sales_Revenue.xls" Set sh = Nothing
Çıktı:
Total rows imported: 3 Row 1 | Year: 2023 | Region: East | Revenue: 3000 Row 2 | Year: 2024 | Region: East | Revenue: 3750 Row 3 | Year: 2025 | Region: West | Revenue: 6000 Grand Total Revenue: 12750
Bu senaryoda üç nokta diğerlerinden daha önemlidir. Birincisi, GetRowCount Başlık satırı sütun adları olarak kullanıldığı için 4 yerine 3 döndürür. İkinci olarak, SetCurrentRow Her yinelemenin başında çağrılır; bu olmadan, üç yinelemenin tamamı aynı satırı okuyacaktır. Üçüncüsü, veri tablosundan gelen değerler dizelerdir, bu nedenle CInt Çarpma işleminden önce, aritmetik işlemler yerine dize birleştirmesini önlemek için uygulanır. Atlaping DataTable.Export Bu işlem, hesaplanan geliri Veri bölmesinde görünür halde bırakır ancak diskteki hiçbir dosyada yer almasını engeller.
DataTable Nesnesi ile Excel COM Nesnesi Arasındaki Fark UFT
Elektronik tabloya erişmenin tek yolu DataTable nesnesi değildir. UFT komut dosyaları ayrıca bir şey de oluşturabilir. Excel.Application COM nesnesi ve Excel'i doğrudan kullanma. İki yaklaşım farklı sorunları çözüyor.
| Görünüş | Veri tablosu nesnesi | Excel COM nesnesi |
|---|---|---|
| Excel kurulumu | Yürütme makinesinde gerekli değildir. | Microsoft Excel'in kurulu olması gerekmektedir. |
| Stili ele almak | Sütun adına ve satır işaretçisine göre | Hücre koordinatlarına, aralıklara veya adlandırılmış aralıklara göre |
| tekrarlamalar | Satırlar, test yinelemelerini otomatik olarak yönlendirir. | Yinelemelerle bağlantı yok; looping manueldir |
| Biçimlendirme ve formüller | Yok sayıldı; yalnızca değerler okundu. | Formüllere, renklere ve tablolara tam erişim. |
| Birden fazla çalışma kitabı | Tek bir çalışma zamanı tablosu, sayfalar tek tek içe aktarılıyor. | Aynı anda herhangi bir sayıda çalışma kitabı açık olabilir. |
| Sonuç raporlaması | Değerler şurada görünür: UFT sonuçları otomatik olarak çalıştır | Kendiniz bildirmediğiniz sürece hiçbir şey kaydedilmez. |
| Temizlik yükü | Tarafından işlendi UFT | Tüm nesneleri kapatmalı, çıkmalı ve serbest bırakmalısınız. |
Pratik kural basittir. Her bir elektronik tablo satırının bir yineleme haline geldiği, basit parametreleme için DataTable nesnesini kullanın. otomasyon testi Çalıştırın. Yalnızca veri tablosunun ifade edemediği bir şeye ihtiyacınız olduğunda COM nesnesine geçin; örneğin bir formül sonucunu okumak, biçimlendirilmiş bir rapor yazmak veya aynı komut dosyasında iki çalışma kitabını karşılaştırmak gibi. Aşağıdaki örnek bir hücreyi okur, bir durum bilgisi yazar ve Excel'i düzgün bir şekilde kapatır.
Dim xlApp, xlBook, xlSheet, cellValue Set xlApp = CreateObject("Excel.Application") xlApp.Visible = False xlApp.DisplayAlerts = False Set xlBook = xlApp.Workbooks.Open("D:\Automation\Sales.xls") Set xlSheet = xlBook.Worksheets("Sheet1") cellValue = xlSheet.Cells(2, 1).Value Print "Cell A2 contains: " & cellValue xlSheet.Cells(2, 5).Value = "Reviewed" xlBook.Save ' Release everything, in this order xlBook.Close False xlApp.Quit Set xlSheet = Nothing Set xlBook = Nothing Set xlApp = Nothing
Çıktı:
Cell A2 contains: 2023
A2 hücresi 2023 değerini içerir çünkü çalışma sayfasının 1. satırı başlık satırıdır ve A sütunu ise veri sütunudur. YılCOM adreslemesinin bir tabanlı olduğunu ve başlığı da saydığını unutmayın, oysa DataTable.SetCurrentRow 1 İlk veri satırındaki noktalar.
Excel Kullanırken Sık Yapılan Hatalar UFT ve Bunları Nasıl Düzeltebilirsiniz
Excel'de karşılaşılan sorunların çoğu UFT Bu hatalar, tekrarlanabilir küçük bir hata kümesinden kaynaklanır. Bunları tanımak, hata ayıklama süresinden büyük ölçüde tasarruf sağlar.
⚠️Uyarı: EXCEL.EXE işleminin yetim kalması, COM otomasyonunun en yaygın yan etkisidir. CreateObject("Excel.Application") bu, şunlarla eşleşmiyor: Quit artı Set … = Nothing Bu işlem, gizli bir Excel örneğinin çalışmasına izin verir. Birkaç yüz test çalışmasının ardından, yürütme makinesinin belleği tükenir ve kaynak çalışma kitabı düzenleme için kilitlenir.
- Excel bellekte kalır. Çalışma kitabını kapatın, arayın
xlApp.QuitArdından, sırasıyla sayfa, çalışma kitabı ve uygulama nesnelerini serbest bırakın. Uygulamayı önce serbest bırakmak, canlı bir referans bırakır ve işlemi devam ettirir. - Çalıştırma işlemi bittikten sonra değişiklikler kaybolur.
DataTable.ValueYalnızca çalışma zamanı veri tablosuna yazar.DataTable.ExportDosya sistemine hiçbir şey ulaşmıyor. - "Sütun mevcut değil" veya geçersiz parametre hatası. Geçirilen sütun adı
DataTable.ValueBaşlık hücresiyle, sondaki boşluklar da dahil olmak üzere, birebir aynı olmalıdır. KullanınAddParameterYazmaya başlamadan önce bir sütun oluşturmak. - Her yinelemede aynı değerler okunur.
SetCurrentRowDöngünün içinde çağrılmadığı için satır işaretçisi hiç hareket etmedi. - Tek satırlık sapmalar.
GetRowCountBaşlık satırını hariç tutar. Başlık satırı ve on kaydı olan bir çalışma kitabı 11 değil, 10 döndürür. - Yol ve izin hataları. Sabit kodlanmış yollar gibi
D:\Automation\Sales.xlsDiğer makinelerde kesintiye uğrar. Ortam değişkeninden yolu oluşturun, böylece aynı komut dosyası her aracıda çalışır. - Birleştirilmiş hücreler ve birden fazla başlık satırı. İçe aktarma işlemi, benzersiz adlardan oluşan tam olarak bir başlık satırı bekler. Birleştirilen hücreler boş veya yinelenen parametre adları üretir.
- İhracatta paylaşım ihlali. Hedef dosya Excel'de açılamıyor
ExportÇalıştırır. Önce kapatın veya zaman damgalı bir dosya adına dışa aktarın.
Faydalı bir alışkanlık, COM temizleme işlemlerini bir paketin içine sarmaktır. On Error Resume Next Blok, özel bir kurtarma fonksiyonuna yerleştirildiğinden, komut dosyasının ortasında meydana gelen bir hata yine de Excel'i kapatır. Excel verileri resmi bir işleme beslendiğinde test durumu Depo için de aynı disiplin sonuçlar için de geçerlidir: bir kez dışa aktarın, dosyanın var olduğunu doğrulayın, ardından çalıştırmaya ekleyin.
Burada değinilen konuları daha detaylı incelemek için, ilgili metnin tamamını okuyun. QTP/UFT öğretici Daha geniş bir çerçeve için, sonuçları nasıl ileriye taşıyacağınızı öğrenin. ALM'den UFTTemelleri gözden geçirin yazılım testive bu yaklaşımı veri odaklı betikleme ile karşılaştırın. Selenium.






