सुइट सेट करें

ट्रेडफेड में सुइट उस सेटअप को संदर्भित करता है जहां एक सामान्य परीक्षण धावक के तहत कई परीक्षण चल रहे हैं जो समग्र निष्पादन को संचालित करता है।

Tradefed में, सूट के माध्यम से संचालित कर रहे ITestSuite वर्ग है, जो परीक्षण जोड़ा गया है और वे किस तरह चलाए जा रहे हैं की स्वतंत्र रूप से हटा दिया जाना चाहिए अनुमति देता है।

परिभाषाएं

  • सुइट: एक ऐसी ही शीर्ष स्तर के सेटअप के अंतर्गत चलाने के लिए कॉन्फ़िगर किया गया एक भी आह्वान के तहत अपने परिणामों की रिपोर्ट परीक्षण मॉड्यूल के सेट।
  • शीर्ष-स्तरीय सेटअप: किसी भी परीक्षण मॉड्यूल को चलाने से पहले डिवाइस पर सेटअप लागू किया गया।
  • मुख्य विन्यास: सूट स्तरीय Tradefed एक्सएमएल विन्यास का वर्णन करता है कि जो मॉड्यूल चलाना चाहिए और जो शीर्ष स्तर के सेट का उपयोग किया जाना चाहिए।
  • मॉड्यूल-स्तरीय सेटअप: मॉड्यूल चलाने से ठीक पहले डिवाइस पर सेटअप लागू किया गया। ये भी मॉड्यूल विशेष व्यवस्था के रूप में जाना जाता है।
  • मॉड्यूल विन्यास: को संदर्भित करता है AndroidTest.xml Tradefed एक्सएमएल विन्यास कि मॉड्यूल और जो मॉड्यूल स्तर के सेटअप किया जाना चाहिए वर्णन करता है।
  • मॉड्यूल: एक सेटअप कदम (मॉड्यूल स्तर के सेटअप), एक परीक्षा निष्पादन कदम और कदम नीचे एक आंसू से बना टेस्ट यूनिट।

  • इंट्रा-मॉड्यूल पुन: प्रयास: मॉड्यूल के अंदर हार्नेस द्वारा किया गया स्वचालित पुन: प्रयास।

  • सुइट पुन: प्रयास: सूट के पहले विफल परीक्षणों का पूर्ण पुन: संचालन।

ITestSuite संरचना

ITestSuite Tradefed में आम आधार वर्ग एक सूट निष्पादन ड्राइविंग को दर्शाता है। यह सभी प्रमुख परीक्षण स्वीट द्वारा साझा किया जाता है, विशेष रूप Android संगतता टेस्ट सुइट (सीटीएस) और एंड्रॉयड वेंडर टेस्ट सुइट (वीटीएस) , और सभी सुइट्स में एकरूप निष्पादन अनुभव सुनिश्चित करता है।

हम कभी कभी सूट धावक के रूप में ITestSuite के पास भेजेगा।

निष्पादित करते समय सुइट रनर इन चरणों का पालन करता है:

  1. मॉड्यूल के कॉन्फ़िगरेशन को लोड करें और निर्धारित करें कि कौन सा सेट चलना चाहिए।
  2. प्रत्येक मॉड्यूल चलाएँ: a. मॉड्यूल-स्तरीय सेटअप चलाएँ b. मॉड्यूल परीक्षण चलाएँ c. मॉड्यूल-स्तर के आंसू चलाएं
  3. परिणामों की रिपोर्ट करें

शीर्ष-स्तरीय सेटअप

ट्रेडफेड के दृष्टिकोण से, ITestSuite सिर्फ एक और परीक्षा है। यह एक जटिल एक है, लेकिन अभी भी किसी अन्य की तरह सिर्फ एक परीक्षण है IRemoteTest । चल रहा है: तो जब एक Tradefed विन्यास में सूट धावक निर्दिष्ट करते समय, Tradefed विन्यास के सामान्य पैटर्न का पालन करेंगे build_provider , target_preparer , परीक्षण (इस मामले में हमारे सूट), और target_cleaner

ITestSuite वाले Tradefed कॉन्फ़िगरेशन में यह क्रम शीर्ष-स्तरीय सेटअप है।

उदाहरण:

<configuration description="Common config for Compatibility suites">

    <build_provider class="com.android.compatibility.common.tradefed.build.CompatibilityBuildProvider" />
    <!-- Setup applied before the suite: so everything running in the suite will
    have this setup beforehand -->
    <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
        <option name="run-command" value="settings put global package_verifier_enable 0" />
        <option name="teardown-command" value="settings put global package_verifier_enable 1"/>
    </target_preparer>

    <!-- Our ITestSuite implementation -->
    <test class="com.android.compatibility.common.tradefed.testtype.suite.CompatibilityTestSuite" />

    <result_reporter class="com.android.compatibility.common.tradefed.result.ConsoleReporter" />
</configuration>

मॉड्यूल मेटाडेटा

हम मॉड्यूल मेटाडाटा परीक्षण मॉड्यूल में निर्दिष्ट अतिरिक्त जानकारी फोन AndroidTest.xml । वे आपको मॉड्यूल के बारे में अतिरिक्त जानकारी निर्दिष्ट करने की अनुमति देते हैं, और मॉड्यूल को मेटाडेटा का उपयोग करके फ़िल्टर किया जा सकता है।

उदाहरण मेटाडेटा:

<option name="config-descriptor:metadata" key="component" value="framework" />
<option name="config-descriptor:metadata" key="parameter" value="instant_app" />

मेटाडेटा पर उदाहरण फ़िल्टर:

--module-metadata-include-filter component=framework

ऊपर घटक मेटाडाटा के रूप में एक रूपरेखा के साथ सभी मॉड्यूल चलाना शामिल है।

पूर्ण AndroidTest.xml उदाहरण:

<configuration description="Config for CTS Gesture test cases">
    <option name="test-suite-tag" value="cts" />
    <!-- Metadata -->
    <option name="config-descriptor:metadata" key="component" value="framework" />
    <option name="config-descriptor:metadata" key="parameter" value="instant_app" />
    <!-- End: metadata -->
    <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
        <option name="cleanup-apks" value="true" />
        <option name="test-file-name" value="CtsGestureTestCases.apk" />
    </target_preparer>
    <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
        <option name="package" value="android.gesture.cts" />
        <option name="runtime-hint" value="10m50s" />
    </test>
</configuration>

पैरामीटरयुक्त मॉड्यूल

एक विशेष प्रकार के मेटाडाटा है parameter

<option name="config-descriptor:metadata" key="parameter" value="instant_app" />

इस मेटाडाटा निर्दिष्ट करता है कि मॉड्यूल एक अलग विधा में एक मानक अनुप्रयोग मोड के बजाय, एक पल एप्लिकेशन के रूप में, निष्पादित करने के लिए उदाहरण के लिए की आवश्यकता होगी।

सभी संभव तरीके या मापदंडों के द्वारा वर्णित हैं ModuleParameters और में एक संबद्ध हैंडलर है ModuleParametersHelper है कि आप विशेष मोड में निष्पादित करने के लिए मॉड्यूल सेटअप बदलने के लिए अनुमति देता है।

उदाहरण के लिए, इंस्टेंट ऐप मोड एपीके इंस्टॉलेशन को इंस्टेंट मोड के रूप में बाध्य करेगा।

पैरामीटरकरण होने के लिए, कमांड लाइन को इसे इसके माध्यम से सक्षम करने की आवश्यकता है:

--enable-parameterized-modules

किसी दिए गए मोड को चलाना भी संभव है:

--enable-parameterized-modules --module-parameter <Mode>

--enable-parameterized-modules --module-parameter INSTANT_APP

जब एक मॉड्यूल का एक पैरामीटरयुक्त संस्करण चलता है, तो यह एक पैरामीटरयुक्त मॉड्यूल नाम के तहत इसके परिणामों की रिपोर्ट करेगा, उदाहरण के लिए CtsGestureTestCases[instant] बनाम आधार CtsGestureTestCases।