Ticaret Federasyonu'nun modüler yaklaşımının temelinde opsiyon kullanımı yer alır. Özellikle, seçenekler
uygulama geliştiricisinin, Entegratörün ve Test Çalıştırıcısının herhangi bir çaba gerekmeden birlikte çalışabileceği
ve birbirlerinin çalışmasını
kopyalamak zorunda kalıyor. Basitçe ifade etmek gerekirse, seçenek işlemeyi uygulamamız,
bir Java sınıfı üyesini yapılandırılabilir olarak işaretlemesini gerektirir. Bu noktada, söz konusu üyenin değeri
integratör tarafından artırılabilir veya geçersiz kılınabilir ve daha sonra
test etmek için kullanılır. Bu mekanizma, tüm Java doğal türleri ve doğal türlerin Map
veya Collection
örnekleri için çalışır.
Not: Seçenek işleme mekanizması yalnızca sınıflarda çalışır bunlardan birini uygulamak Test Yaşam Döngüsü'ne dahil edilen arayüzler ve yalnızca söz konusu sınıf yaşam döngüsü makinesi tarafından tespit edilir.
Geliştirici
Başlangıç olarak geliştirici, bir üyeyi
@Option
ek açıklaması.
Bu seçenekler, en azından name
ve description
değerlerini belirtir. Bu değerler, ilgili seçenekle ilişkili bağımsız değişken adını ve komut --help
veya --help-all
ile çalıştırıldığında TF konsolunda gösterilen açıklamayı belirtir.
Örneğin, telefon numarası gibi çeşitli işlevleri arayan işlevsel bir telefon testi oluşturmak ve bu numaradan sonra gelen her numaradan bir dizi DTMF tonu almayı bekler. bağlanır.
public class PhoneCallFuncTest extends IRemoteTest { @Option(name = "timeout", description = "How long to wait for connection, in millis") private long mWaitTime = 30 * 1000; // 30 seconds @Option(name = "call", description = "Key: Phone number to attempt. " + "Value: DTMF to expect. May be repeated.") private Map<String, String> mCalls = new HashMap<String, String>; public PhoneCallFuncTest() { mCalls.add("123-456-7890", "01134"); // default }
Geliştiricinin bu SDK'ya ilişkin iki yapılandırma noktası oluşturması için gereken tüm bu
testi. Sonrasında devre dışı bırakıp mWaitTime
ve mCalls
uygulamalarını normal şekilde kullanabilirler.
ancak yapılandırılabilir olduklarına çok dikkat etmeyin. @Option
alanları, sınıf oluşturulduktan sonra ancak run
yöntemi çağrılmadan önce ayarlandığından, uygulayıcıların varsayılan ayarları belirlemesi veya aksi takdirde salt ekleme olan Map
ve Collection
alanlarında bir tür filtreleme yapması için kolay bir yol sağlar.
Entegre eden
Integrator, XML'de yazılan yapılandırmalar dünyasında çalışır. Yapılandırma biçimi, entegre edicinin herhangi bir @Option
alanı için değer ayarlamasına (veya eklemesine) olanak tanır. Örneğin, entegratör'ün varsayılan numarayı arayan düşük gecikmeli bir testin yanı sıra çeşitli numaraları arayan uzun süreli bir test tanımlamak istediğini varsayalım. Bir iki konfigürasyon çifti oluşturabilir
aşağıdaki gibi görünebilir:
<?xml version="1.0" encoding="utf-8"?> <configuration description="low-latency default test; low-latency.xml"> <test class="com.example.PhoneCallFuncTest"> <option name="timeout" value="5000" /> </test> </configuration>
<?xml version="1.0" encoding="utf-8"?> <configuration description="call a bunch of numbers; many-numbers.xml"> <test class="com.example.PhoneCallFuncTest"> <option name="call" key="111-111-1111" value="#*#*TEST1*#*#" /> <option name="call" key="222-222-2222" value="#*#*TEST2*#*#" /> <!-- ... --> </test> </configuration>
Test Çalıştırıcı
Test çalıştırıcı, Trade Federation konsolu üzerinden de bu yapılandırma noktalarına erişebilir.
Öncelikle, run command <name>
talimatıyla (veya kısaca run <name>
) bir komut (yani bir yapılandırma ve tüm bağımsız değişkenleri) çalıştırırlar.
Bunun yanı sıra, komutun parçası olan herhangi bir bağımsız değişken listesini de belirtebilir.
her yapılandırmadaki yaşam döngüsü nesneleri tarafından belirtilen alanlara ekleyin.
many-numbers
telefon numarasıyla düşük gecikme testi yapmak için Test Çalıştırıcısı
yürütülebilir:
tf> run low-latency.xml --call 111-111-1111 #*#*TEST1*#*# --call 222-222-2222 #*#*TEST2*#*#
Veya ters yönde benzer bir etki elde etmek için Test Çalıştırıcısı bekleme süresini azaltabilir
many-numbers
testi için süre:
tf> run many-numbers.xml --timeout 5000
Seçenek sıralaması
Uygulamanın temel aldığı call
seçeneğinin Map
olduğunu fark edebilirsiniz. Bu nedenle, komut satırında tekrarlanan --call
komutları tümünün depolanmasını sağlar.
long
'un temel uygulamasını içeren timeout
seçeneği yalnızca bir değer saklayabilir. Bu nedenle, yalnızca belirtilen son değer saklanır.
--timeout 5 --timeout 10
, 10 içeren timeout
sonucunu döndürür.
Temel uygulama olarak List
veya Collection
olması durumunda
tüm değerler komut satırında belirtilen sırayla depolanır.
Boole seçenekleri
Temel Boole türündeki seçenekler, doğrudan seçenek adı (ör. --[option-name]
) ile true
olarak ayarlanabilir ve --no-[option-name]
söz dizimi kullanılarak false
olarak ayarlanabilir.