Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Untuk memahami bagian ini, Anda harus terbiasa dengan cara menulis pengujian dalam bahasa pembuatan skrip. Bagian ini tidak akan membahas detail berbagai pendekatan pengujian berbasis data TAEF. Untuk gambaran umum singkat, tinjau berbagai konstruksi pengujian berbasis data TAEF:
- Pengujian berbasis data berbasis tabel
- Pengujian berbasis data Berbasis WMI
- Pengujian berbasis data berbasis PICT
- Pengujian berbasis data ringan
Anda bahkan dapat memilih untuk memiliki kombinasi sumber data dengan memiliki satu atau beberapa sumber data dari salah satu hal di atas. Lihat Menentukan Beberapa Sumber Data untuk detailnya.
Menentukan sumber data dalam bahasa skrip
Pengujian berbasis data di TAEF memungkinkan Anda menentukan DataSource di tingkat kelas atau pengujian. Dalam kelas berbasis data, data tersedia untuk pengaturan metode kelas dan pengujian, pembersihan, dan semua metode pengujian di kelas . Parameter DataSource adalah informasi yang memberi tahu dari mana data akan diambil. Dalam kasus pengujian berbasis data berbasis tabel, nilai ini menyertakan jalur relatif ke file XML dan TableId dalam file XML tempat data berada. Lihat tautan yang tercantum di atas untuk detail selengkapnya.
Contoh berikut menunjukkan cara menentukan properti DataSource .
1 <?xml version="1.0" ?>
2 <?component error="true" debug="true"?>
3 <package>
4 <component id="VBSampleTests">
5 <object id="Log" progid="WEX.Logger.Log" />
6 <object id="TestData" progid="Te.Common.TestData" />
7
8 <public>
9 <method name="TestOne">
10 <TestMethodProperty name="DataSource" value="WMI:SELECT Label, Caption FROM Win32_Volume"/>
11 </method>
12
13 <method name="TestTwo">
14 <TestMethodProperty name="DataSource" value="Table:ScriptExampleTable.xml#MyTable;WMI:SELECT Label, Caption FROM Win32_Volume"/>
15 </method>
16 </public>
17
18 <script language="VBScript">
19 <![CDATA[
20 Function TestOne()
21 dim caption
22 caption = "NoCaption"
23 Log.Comment("Caption is " + caption)
24
25 If TestData.Contains("Caption") Then
26 caption = TestData.GetValue("Caption")
27 End If
28 Log.Comment("Caption is " + caption)
29 End Function
30
31 Function TestTwo()
32 Log.Comment("Calling TestTwo")
33 dim caption
34 caption = "NoCaption"
35 Log.Comment("Caption is " + caption)
36
37 If TestData.Contains("Caption") Then
38 caption = TestData.GetValue("Caption")
39 End If
40 Log.Comment("Caption is " + caption)
41
42 dim size
43 If TestData.Contains("Size") Then
44 size = TestData.GetValue("Size")
45 End If
46 Log.Comment("Size is " + CStr(size))
47
48 dim transparency
49 If TestData.Contains("Transparency") Then
50 transparency = TestData.GetValue("Transparency")
51 End If
52 Log.Comment("Transparency is " + CStr(transparency))
53 End Function
54 ]] >
55 </script>
56 </component>
57
58 <component id="JScriptSampleTests">
59 <object id="Log" progid="WEX.Logger.Log" />
60 <object id="TestData" progid="Te.Common.TestData" />
61
62 <TestClassProperty name="DataSource" value="Table:ScriptExampleTable.xml#MyTable"/>
63
64 <public>
65 <method name="ClassSetup" type="TestClassSetup"/>
66 <method name="ClassCleanup" type="TestClassCleanup"/>
67 <method name="MethodSetup" type="TestMethodSetup"/>
68 <method name="MethodCleanup" type="TestMethodCleanup"/>
69
70 <method name="TestOne"/>
71 <method name="TestTwo">
72 <TestMethodProperty name="DataSource" value="WMI:SELECT Label, Caption FROM Win32_Volume"/>
73 </method>
74 </public>
75
76 <script language="JScript">
77 <![CDATA[
78 function ClassSetup()
79 {
80 Log.Comment("Calling class setup");
81 var size;
82 if(TestData.Contains("Size"))
83 {
84 size = TestData.GetValue("Size");
85 }
86 Log.Comment("Size is " + size);
87
88 var transparency;
89 if(TestData.Contains("Transparency"))
90 {
91 transparency = TestData.GetValue("Transparency");
92 }
93 Log.Comment("Transparency is " + transparency);
94 }
95
96 function ClassCleanup()
97 {
98 Log.Comment("Calling class cleanup");
99 return true;
100 }
101
102 function MethodSetup()
103 {
104 Log.Comment("Calling method setup");
105 var size;
106 if(TestData.Contains("Size"))
107 {
108 size = TestData.GetValue("Size");
109 }
110 Log.Comment("Size is " + size);
111
112 var transparency;
113 if(TestData.Contains("Transparency"))
114 {
115 transparency = TestData.GetValue("Transparency");
116 }
117 Log.Comment("Transparency is " + transparency);
118 return true;
119 }
120
121 function MethodCleanup()
122 {
123 Log.Comment("Calling method cleanup");
124 return true;
125 }
126
127 function TestOne()
128 {
129 Log.Comment("Calling TestOne");
130 var size;
131 if(TestData.Contains("Size"))
132 {
133 size = TestData.GetValue("Size");
134 }
135 Log.Comment("Size is " + size);
136
137 var transparency;
138 if(TestData.Contains("Transparency"))
139 {
140 transparency = TestData.GetValue("Transparency");
141 }
142 Log.Comment("Transparency is " + transparency);
143 }
144
145 function TestTwo()
146 {
147 Log.Comment("Calling TestTwo");
148 var caption = "NoCaption";
149 Log.Comment("Initial caption: " + caption);
150
151 if(TestData.Contains("Caption"))
152 {
153 caption = TestData.GetValue("Caption");
154 }
155 Log.Comment("Caption is " + caption);
156
157 var size;
158 if(TestData.Contains("Size"))
159 {
160 size = TestData.GetValue("Size");
161 }
162 Log.Comment("Size is " + size);
163
164 var transparency;
165 if(TestData.Contains("Transparency"))
166 {
167 transparency = TestData.GetValue("Transparency");
168 }
169 Log.Comment("Transparency is " + transparency);
170 }
171 ]] >
172 </script>
173 </component>
174 </package>
Dalam contoh di atas, baris 6 dan 60 mendeklarasikan dan membuat instans objek TestData yang memungkinkan akses ke data untuk pengujian berbasis data.
Tag <TestMethodProperty> dan <TestClassProperty> adalah baris yang menentukan DataSource untuk pengujian atau kelas. Dalam VBSampleTests, TestOne memiliki kueri WMI sebagai DataSource-nya. Label parameter dan caption tersedia untuk metode penyiapan, pembersihan, dan pengujian TestOne. Di kelas yang sama, TestTwo memiliki Beberapa DataSources yang ditentukan. Yang pertama adalah DataSource berbasis Tabel, dan yang kedua adalah DataSource berbasis WMI yang sama dengan TestOne.
TAEF menghasilkan perluasan gabungan dari set parameter untuk setiap properti DataSource . Satu set parameter tersedia untuk setiap pemanggilan metode pengujian. Jika kueri WMI mengembalikan empat set hasil (Win32_Volume) dan ada tiga baris dalam DataSource berbasis tabel, TestOne akan dijalankan empat kali - sekali dengan setiap Win32_Volume yang dikembalikan kueri WMI. Di sisi lain, TestTwo mengeksekusi 12 (4 X 3) kali untuk setiap kombinasi data Win32_Volume dan Baris yang ditentukan tabel. Data juga tersedia untuk metode penyiapan dan pembersihan terkait.
Di JScriptSampleTests, Anda dapat melihat contoh kelas berbasis data. Karena contoh menentukan DataSource di tingkat kelas, data tersedia untuk semua metode pengujian - serta metode penyiapan dan pembersihan tingkat pengujian dan kelas. Karena TestTwo adalah pengujian berbasis data dalam kelas berbasis data, data dari DataSource di tingkat kelas serta dari tingkat pengujian tersedia untuk TestTwo.
Jenis data yang tersedia untuk pengujian skrip
Jenis parameter berikut tersedia untuk bahasa skrip. Ini adalah jenis yang dapat Anda tentukan dalam pengujian berbasis data berbasis tabel. Jenis parameter default adalah String atau BSTR (mewakili VT_BSTR).
Bagian Jenis Parameter di DataSource berbasis Tabel memperlihatkan cara melihat jenis parameter yang tersedia (dalam Kode asli dan terkelola) saat menulis pengujian dalam bahasa skrip.
Menjalankan skrip berbasis data
Opsi /listproperties tidak hanya mencantumkan metadata tetapi juga data yang tersedia untuk setiap pemanggilan pengujian. (Menjalankan opsi /listproperties di seluruh dll dibiarkan sebagai latihan kepada pembaca.) Contoh berikut memilih pemanggilan TestOne dari VBSampleTests menggunakan bahasa kueri pemilihan :
f:\spartadev.binaries.x86chk\WexTest\CuE\TestExecution>te Examples\DataDrivenTest.wsc /listproperties /name:VBSampleTests::TestOne*
Test Authoring and Execution Framework v.R10 Build 6.1.6939.0 For x86
f:\spartadev.binaries.x86chk\WexTest\CuE\TestExecution\Examples\DataDrivenTest.wsc
VBSampleTests
VBSampleTests::TestOne#0
Property[DataSource] = WMI:SELECT Label, Caption FROM Win32_Volume
Data[Caption] = C:\
Data[Label] =
VBSampleTests::TestOne#1
Property[DataSource] = WMI:SELECT Label, Caption FROM Win32_Volume
Data[Caption] = D:\
Data[Label] = New Volume
VBSampleTests::TestOne#2
Property[DataSource] = WMI:SELECT Label, Caption FROM Win32_Volume
Data[Caption] = F:\
Data[Label] = New Volume
VBSampleTests::TestOne#3
Property[DataSource] = WMI:SELECT Label, Caption FROM Win32_Volume
Data[Caption] = E:\
Data[Label] = New Volume
VBSampleTests::TestOne#4
Property[DataSource] = WMI:SELECT Label, Caption FROM Win32_Volume
Data[Caption] = G:\
Data[Label] = New Volume
VBSampleTests::TestOne#5
Property[DataSource] = WMI:SELECT Label, Caption FROM Win32_Volume
Data[Caption] = H:\
Data[Label] = New Volume
VBSampleTests::TestOne#6
Property[DataSource] = WMI:SELECT Label, Caption FROM Win32_Volume
Data[Caption] = K:\
Data[Label] =
Opsi /listproperties menunjukkan bahwa TAEF memanggil metode pengujian VBSampleTests::TestOne 7 kali - sekali untuk setiap Win32_Volume. Untuk setiap pemanggilan, TAEF menambahkan indeks implisit ke metode pengujian untuk membedakan setiap pemanggilan. Anda juga dapat melihat data dan metadata yang tersedia untuk setiap pemanggilan metode pengujian.
Dengan menggunakan informasi dari opsi /listproperties , Anda dapat menerapkan kueri pilihan yang didasarkan pada nilai data atau nilai indeks untuk mendapatkan kontrol yang lebih baik dari pemanggilan pengujian mana yang akan dijalankan. Contoh berikut menunjukkan cara menjalankan hanya pemanggilan di mana caption adalah E:\:
te Examples\DataDrivenTest.wsc /select:"@Name='VBSampleTests::TestOne*' and @Data:Caption='E:\'"
Perintah berikut menggunakan indeks untuk memilih pengujian yang sama:
te Examples\DataDrivenTest.wsc /select:"@Name='VBSampleTests::TestOne*' and @Data:Index=3"
Menggunakan pengujian berbasis PICT dan ringan berbasis data dalam pengujian skrip dibiarkan sebagai latihan kepada pembaca.