Tradefed'de Opsiyon Kullanımı

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, Geliştirici, bir Java sınıfı üyesini yapılandırılabilir olarak işaretlemelidir. Bu noktada, söz konusu üyenin değeri Entegre edilebilir veya geçersiz kılınabilir. Ayrıca, test etmek için kullanılır. Bu mekanizma tüm Java yerleşik türleri için olduğu gibi Yerleşik türlerin Map veya Collection'ları.

Not: Seçenek işleme mekanizması yalnızca 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ı. . name ve description değerlerini (en azından) belirtirler. Bu Seçenek ile ilişkili bağımsız değişken adını ve komut --help veya --help-all ile çalıştırıldığında TF konsolunda çalışır.

Örneğin, telefon araması üreten ve kullanıma sunmak için ve ardından 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ştirici'nin bu SDK'ya ilişkin iki yapılandırma noktası oluşturması için gereken tüm budur 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. Çünkü @Option alanları, sınıf örneklendirildikten sonra, ancak run yöntemi çağrılır. Bu yöntem, uygulayıcıların veya bir tür filtre uygulama işlemi (örneğin, Map ve Collection) Aksi takdirde yalnızca sona eren kısımlar olur.

Entegre eden

Entegratör, XML'de yazılan Yapılandırmalar dünyasında çalışır. Yapılandırma biçimi Entegratörün herhangi bir @Option alanı için değer belirlemesine (veya eklemesine) olanak tanır. Örneğin, Entegratörün, varsayılan sayıyı çağıran bir düşük gecikme testi de tanımlamak istediğini varsayalım. , çeşitli numaraları çağrıştıran uzun süreli bir test olarak adlandırılır. 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ı, bu yapılandırma noktalarına Ticaret Federasyonu konsolu aracılığıyla da erişebilir. Her şeyden önce, bir komut (yani bir yapılandırma ve tüm bağımsız değişkenleri) run command <name> talimatı (veya kısaca run <name>). Bunun yanı sıra, komutun parçası olan herhangi bir bağımsız değişken listesini de belirtebilir. her yapılandırmada 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*#*#

Alternatif olarak, Test Çalıştırıcı ters yönde benzer bir etki elde etmek için bekleme süresini kısaltabilir many-numbers testi için:

tf> run many-numbers.xml --timeout 5000

Seçenek Sıralama

Temel uygulamanın temelindeki call seçeneğinin bir Map olduğunu fark edebilirsiniz. Bu nedenle, komut satırında --call tekrarlandıktan sonra hepsi depolanır.

long temel uygulamasına sahip timeout seçeneği, yalnızca tek bir değer depolayabilir. Bu nedenle, yalnızca belirtilen son değer saklanır. --timeout 5 --timeout 10 sonucu timeout içinde 10 bulunur.

Temel uygulama olarak List veya Collection olması durumunda tüm değerler, komut satırında belirtilen sırayla depolanır.

Boole Seçenekleri

Boole temel türünün seçenekleri,true seçenek adına (örneğin, --[option-name]) ve şu seçenek kullanılarak false olarak ayarlanabilir: --no-[option-name] söz dizimi.

İlgili Konular

Paket ve modüller için geçiş seçenekleri