REST Resource: projects.histories.executions.steps

संसाधन: चरण

'स्टेप', एक कार्रवाई को दिखाता है जिसे एक्ज़ीक्यूशन के हिस्से के तौर पर किया जाता है. किसी टूल के एक्ज़ीक्यूशन को दिखाने के लिए, स्टेप का इस्तेमाल किया जा सकता है. उदाहरण के लिए, टेस्ट रनर एक्ज़ीक्यूशन या कंपाइलर को एक्ज़ीक्यूट करना.

चरण ओवरलैप हो सकते हैं (उदाहरण के लिए, अगर कुछ कार्रवाइयां साथ-साथ की जाती हैं, तो दो चरणों के शुरू होने का समय एक ही हो सकता है).

यहां एक उदाहरण दिया गया है. मान लें कि हमारे पास लगातार चलने वाला बिल्ड है, जिसमें हर इटरेशन के लिए एक टेस्ट रनर को एक्ज़ीक्यूट किया जा रहा है. वर्कफ़्लो ऐसा दिखेगा: - उपयोगकर्ता आईडी 1 के साथ एक एक्ज़ीक्यूटिव बनाता है - एक्ज़ीक्यूशन 1 के लिए उपयोगकर्ता 100 आईडी के साथ एक Testसरल्यूशन बनाता है - रॉ xml लॉग जोड़ने के लिए आईडी 100 के साथ उपयोगकर्ता अपडेट Test शानदारion - उपयोगकर्ता, आईडी 100 के साथ Test DisplayutionStep की स्थिति को पूरा करने के लिए अपडेट करता है

किसी चरण को तब तक अपडेट किया जा सकता है, जब तक कि उसकी स्थिति पूरा नहीं हो जाती और उसमें बदलाव नहीं किया जा सकता.

JSON के काेड में दिखाना
{
  "stepId": string,
  "creationTime": {
    object (Timestamp)
  },
  "completionTime": {
    object (Timestamp)
  },
  "name": string,
  "description": string,
  "state": enum (State),
  "outcome": {
    object (Outcome)
  },
  "hasImages": boolean,
  "labels": {
    string: string,
    ...
  },
  "dimensionValue": {
    string: string,
    ...
  },
  "runDuration": {
    object (Duration)
  },
  "deviceUsageDuration": {
    object (Duration)
  },
  "multiStep": {
    object (MultiStep)
  },

  // Union field step can be only one of the following:
  "testExecutionStep": {
    object (TestExecutionStep)
  },
  "toolExecutionStep": {
    object (ToolExecutionStep)
  }
  // End of list of possible types for union field step.
}
फ़ील्ड
stepId

string

इस चरण के लिए, एक्ज़ीक्यूशन में मौजूद यूनीक आइडेंटिफ़ायर.

अगर यह फ़ील्ड कॉल करने वाले ने सेट किया है या ओवरराइट किया है, तो यह फ़ंक्शन INVALID_PLACEHOLDER दिखाता है.

  • जवाब में: हमेशा सेट करें
  • बनाएं/अपडेट करें अनुरोध में: कभी सेट नहीं किया गया
creationTime

object (Timestamp)

चरण बनाए जाने का समय.

  • जवाब में: हमेशा सेट करें
  • बनाएं/अपडेट करें अनुरोध में: कभी सेट नहीं किया गया
completionTime

object (Timestamp)

वह समय जब चरण की स्थिति को पूरा होने के लिए सेट किया गया था.

स्थिति में बदलाव होने पर, यह वैल्यू अपने-आप सेट हो जाएगी.

  • रिस्पॉन्स में: यह सेट करें कि एक्ज़ीक्यूशन का स्टेटस 'पूरा हुआ' हो.
  • बनाएं/अपडेट करें अनुरोध में: कभी सेट नहीं किया गया
name

string

यूज़र इंटरफ़ेस (यूआई) में दिखाने के लिए, एक छोटा नाम, जिसे कोई भी व्यक्ति आसानी से पढ़ सकता है. ज़्यादा से ज़्यादा 100 वर्ण. उदाहरण के लिए: बिल्ड साफ़ करना

अगर नया चरण बनाने पर PRECondition_FAILED फ़ंक्शन का नाम और डाइमेंशन वैल्यू किसी मौजूदा चरण के साथ शेयर किया जाता है, तो उसे दिखाया जाएगा. अगर दो चरण एक जैसी कार्रवाई को दिखाते हैं, लेकिन उनके डाइमेंशन की वैल्यू अलग-अलग हैं, तो उनके नाम एक जैसे होने चाहिए. उदाहरण के लिए, अगर दो अलग-अलग प्लैटफ़ॉर्म पर जांच का एक ही सेट चलाया जाता है, तो दोनों चरणों का एक ही नाम होना चाहिए.

  • जवाब में: हमेशा सेट करें
  • अनुरोध बनाएं: हमेशा सेट करें
  • अपडेट करने के अनुरोध में: कभी सेट नहीं किया गया
description

string

इस टूल की जानकारी. उदाहरण के लिए: mvn साफ़ पैकेज -D driveTests=true

  • जवाब में: अगर बनाएं/अपडेट करें अनुरोध के हिसाब से सेट किया गया हो, तो यह मौजूद होता है
  • अनुरोध बनाएं/अपडेट करें: ज़रूरी नहीं
state

enum (State)

शुरुआती स्थिति IN_PROGRESS है. केवल कानूनी राज्य ट्रांज़िशन हैं * IN_PROGRESS -> पूरा करें

किसी अमान्य ट्रांज़िशन का अनुरोध करने पर, PRECondition_FAILED का अनुरोध किया जाएगा.

जिस चरण की स्थिति 'पूरा है' पर सेट है उसे बनाने के लिए मान्य है. स्थिति को सिर्फ़ एक बार पूरा होने पर सेट किया जा सकता है. अगर राज्य को कई बार पूरा करने पर सेट किया जाता है, तो PRECondition_FAILED दिखाया जाएगा.

  • जवाब में: हमेशा सेट करें
  • अनुरोध बनाएं/अपडेट करें: ज़रूरी नहीं
outcome

object (Outcome)

नतीजे को अलग-अलग कैटगरी में बांटा गया है. उदाहरण के लिए, फ़ेल या फ़ेल

  • जवाब में: अगर बनाएं/अपडेट करें अनुरोध के हिसाब से सेट किया गया हो, तो यह मौजूद होता है
  • अनुरोध बनाएं/अपडेट करें: ज़रूरी नहीं
hasImages

boolean

क्या इस चरण का कोई आउटपुट ऐसी इमेज है जिनके थंबनेल को थंबनेल.सूची की मदद से फ़ेच किया जा सकता है.

  • जवाब में: हमेशा सेट करें
  • बनाएं/अपडेट करें अनुरोध में: कभी सेट नहीं किया गया
labels

map (key: string, value: string)

उपयोगकर्ता की ओर से दिए गए ऐसे कुंजी/वैल्यू पेयर जो चरण से जुड़े होते हैं.

की नेमस्पेस को मैनेज करने की ज़िम्मेदारी उपयोगकर्ता की होती है, जैसे कि कुंजियां गलती से नहीं टकराती हैं.

अगर लेबल की संख्या 100 से ज़्यादा हो या किसी भी कुंजी या मान की लंबाई 100 वर्णों से ज़्यादा हो, तो INVALID_LANGUAGE फ़ंक्शन दिखाया जाएगा.

  • जवाब में: हमेशा सेट करें
  • अनुरोध बनाएं: ज़रूरी नहीं
  • अपडेट के अनुरोध में: ज़रूरी नहीं; कोई भी नया कुंजी/वैल्यू पेयर मैप में जोड़ दिया जाएगा और मौजूदा कुंजी के लिए कोई भी नई वैल्यू उस कुंजी की वैल्यू अपडेट कर देगी

एक ऑब्जेक्ट, जिसमें "key": value पेयर की सूची है. उदाहरण: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

dimensionValue

map (key: string, value: string)

अगर इस चरण वाले एक्ज़ीक्यूशन में कोई dynamic_परिभाषा सेट है, तो यह फ़ील्ड चाइल्ड डाइमेंशन की वैल्यू तय कर सकता है.

कुंजियां, एक्ज़ीक्यूशन के डाइमेंशन_परिभाषा से पूरी तरह मेल खानी चाहिए.

उदाहरण के लिए, अगर एक्ज़ीक्यूशन में dimension_definition = ['attempt', 'device'] है, तो चरण में उन डाइमेंशन के लिए वैल्यू तय करनी होगी. उदाहरण के लिए, dimensionValue = ['attempt': '1', 'device': 'Nexus 6']

अगर कोई चरण मैट्रिक्स के किसी एक डाइमेंशन में हिस्सा नहीं लेता, तो उस डाइमेंशन की वैल्यू खाली स्ट्रिंग होनी चाहिए. उदाहरण के लिए, अगर कोई टेस्ट ऐसे रनर ने किया है जो बार-बार कोशिश नहीं करता, तो उस चरण में dimensionValue = ['attempt': '', 'device': 'Nexus 6'] हो सकता है

अगर चरण, मैट्रिक्स के किसी भी डाइमेंशन में हिस्सा नहीं लेता है, तो डाइमेंशन वैल्यू को सेट नहीं किया जा सकता है.

अगर एक्ज़ीक्यूशन के डाइमेंशन_परिभाषा में कोई भी कुंजी मौजूद नहीं है, तो PRECondition_FAILED फ़ंक्शन दिखाया जाएगा.

अगर इस एक्ज़ीक्यूशन के किसी दूसरे चरण का नाम और डाइमेंशन वैल्यू पहले से मौजूद है, लेकिन दूसरे डेटा फ़ील्ड के हिसाब से अलग है, तो PRE खोलने की शर्त दिखेगी. उदाहरण के लिए, चरण का फ़ील्ड अलग होगा.

अगर डाइमेंशन वैल्यू सेट है, तो PRECondition_FAILED नतीजे दिखाया जाएगा. साथ ही, इसके एक्ज़ीक्यूट होने में डाइमेंशन_परिभाषा है, जिसे किसी भी कुंजी के तौर पर नहीं बताया गया है.

  • जवाब में: अगर 'बनाएं' के तौर पर सेट किया गया है, तो मौजूद है
  • अनुरोध बनाएं: ज़रूरी नहीं
  • अपडेट करने के अनुरोध में: कभी सेट नहीं किया गया

एक ऑब्जेक्ट, जिसमें "key": value पेयर की सूची है. उदाहरण: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

runDuration

object (Duration)

इस चरण को पूरा होने में कितना समय लगा.

अगर इसे सेट नहीं किया जाता है, तो चरण को पूरा होने की स्थिति में सेट होने पर, यह createTime और CompleteTime के बीच के अंतर पर सेट होता है. कुछ मामलों में, इस वैल्यू को अलग से सेट करना सही होता है: उदाहरण के लिए, अगर कोई चरण बनाया गया है, लेकिन इसकी कार्रवाई के पूरा होने से कुछ मिनट पहले तक कतार में है, तो इसकी रनअवधि में लाइन में बिताए गए समय को शामिल न करना बेहतर होगा.

अगर कोई व्यक्ति किसी ऐसे चरण पर Runअवधि सेट करने की कोशिश करता है जिसमें यह फ़ील्ड पहले से सेट है, तो PRECondition_FAILED नतीजे को दिखाया जाएगा.

  • जवाब में: अगर पहले से सेट है, तो मौजूद है; पूरा होने पर हमेशा मौजूद
  • अनुरोध बनाएं: ज़रूरी नहीं
  • अपडेट का अनुरोध किया जा रहा है: ज़रूरी नहीं
deviceUsageDuration

object (Duration)

जांच करने के लिए, डिवाइस के संसाधन का कितना इस्तेमाल किया जाता है.

यह बिलिंग के लिए इस्तेमाल किए गए डिवाइस के इस्तेमाल से जुड़ा डेटा है. यह रनटाइम की अवधि से अलग होता है. उदाहरण के लिए, डिवाइस के इस्तेमाल के लिए इंफ़्रास्ट्रक्चर से जुड़ी गड़बड़ी का शुल्क नहीं लिया जाएगा.

अगर कोई व्यक्ति किसी ऐसे चरण पर device_usage सेट करने की कोशिश करता है जिसमें यह फ़ील्ड पहले से सेट है, तो PRE खोलने की सुविधा को नतीजे के तौर पर वापस कर दिया जाएगा.

  • जवाब में: अगर पहले से सेट है, तो यह मौजूद होता है.
  • अनुरोध बनाएं: ज़रूरी नहीं
  • अपडेट का अनुरोध किया जा रहा है: ज़रूरी नहीं
multiStep

object (MultiStep)

ग्रुप की तरह एक ही कॉन्फ़िगरेशन के साथ चलने वाले कई चरणों की जानकारी. इस जानकारी का इस्तेमाल यह पहचानने के लिए किया जा सकता है कि यह चरण किस ग्रुप का हिस्सा है. यह ग्रुप के 'मुख्य चरण' की पहचान भी करता है जो ग्रुप के सभी सदस्यों के डेटा को इंडेक्स करता है.

  • जवाब में: अगर पहले से सेट है, तो यह मौजूद होता है.
  • 'अनुरोध करें' में: ज़रूरी नहीं है. अगर यह चरण एक से ज़्यादा बार किया गया है, तो इसे सेट करें.
  • अपडेट का अनुरोध किया जा रहा है: ज़रूरी नहीं

यूनियन फ़ील्ड step.

step इनमें से सिर्फ़ एक हो सकता है:

testExecutionStep

object (TestExecutionStep)

टेस्ट रनर को एक्ज़ीक्यूट करना.

toolExecutionStep

object (ToolExecutionStep)

टूल का इस्तेमाल उन चरणों के लिए किया जाता है जिनके साथ हम साफ़ तौर पर काम नहीं करते.

जांच करने का तरीका

यह एक ऐसा चरण है जिसमें मौजूदा टेस्ट की जानकारी दी जाती है.

यह ant-junit xml फ़ाइलों को स्वीकार करता है, जिन्हें सेवा के ज़रिए स्ट्रक्चर्ड टेस्ट के नतीजों में पार्स किया जाएगा. और फ़ाइलें जोड़ने के लिए xml फ़ाइल पाथ अपडेट किए जाते हैं, हालांकि उन्हें मिटाया नहीं जा सकता.

उपयोगकर्ता, test_result फ़ील्ड का इस्तेमाल करके मैन्युअल रूप से भी टेस्ट के नतीजे जोड़ सकते हैं.

JSON के काेड में दिखाना
{
  "testSuiteOverviews": [
    {
      object (TestSuiteOverview)
    }
  ],
  "toolExecution": {
    object (ToolExecution)
  },
  "testIssues": [
    {
      object (TestIssue)
    }
  ],
  "testTiming": {
    object (TestTiming)
  }
}
फ़ील्ड
testSuiteOverviews[]

object (TestSuiteOverview)

टेस्ट सुइट की खास जानकारी देने वाले कॉन्टेंट की सूची. इसे सर्वर से xUnit XML लॉग से पार्स किया जा सकता है या उपयोगकर्ता ने सीधे अपलोड किया हो सकता है. यह रेफ़रंस सिर्फ़ तब कॉल किया जाना चाहिए, जब टेस्ट सुइट को पूरी तरह से पार्स या अपलोड किया गया हो.

हर चरण में, टेस्ट सुइट की खास जानकारी ज़्यादा से ज़्यादा 1,000 हो सकती है.

  • जवाब में: हमेशा सेट करें
  • अनुरोध बनाएं: ज़रूरी नहीं
  • अपडेट करने के अनुरोध में: कभी नहीं (इसके बजाय, publishedXunitXmlFiles कस्टम तरीके का इस्तेमाल करें)
toolExecution

object (ToolExecution)

टेस्ट रनर की एक्ज़ीक्यूशन के बारे में जानकारी देता है.

इस टूल के एग्ज़िट कोड का इस्तेमाल, यह पता लगाने के लिए किया जाएगा कि टेस्ट पास हुआ है या नहीं.

  • जवाब में: हमेशा सेट करें
  • अनुरोध बनाएं/अपडेट करें: ज़रूरी नहीं
testIssues[]

object (TestIssue)

जांच के दौरान समस्याएं मिली हैं.

उदाहरण के लिए, अगर जांच के दौरान मोबाइल ऐप्लिकेशन क्रैश हो जाता है, तो डीबग करने में मदद करने के लिए, गड़बड़ी का मैसेज और स्टैक ट्रेस का कॉन्टेंट यहां रिकॉर्ड किया जा सकता है.

  • जवाब में: अगर बनाए या अपडेट के हिसाब से सेट किया गया हो, तो मौजूद होता है
  • अनुरोध बनाएं/अपडेट करें: ज़रूरी नहीं
testTiming

object (TestTiming)

जांच के चलने के समय का विश्लेषण.

  • जवाब में: अगर बनाए या अपडेट के हिसाब से सेट किया गया हो, तो मौजूद होता है
  • अनुरोध बनाएं/अपडेट करें: ज़रूरी नहीं

टूल एक्ज़ीक्यूशन

किसी आर्बिट्रेरी टूल को एक्ज़ीक्यूट करना. यह टेस्ट रनर या आर्टफ़ैक्ट कॉपी करने वाला या कोड डिप्लॉय करने वाला टूल हो सकता है.

JSON के काेड में दिखाना
{
  "commandLineArguments": [
    string
  ],
  "toolLogs": [
    {
      object (FileReference)
    }
  ],
  "exitCode": {
    object (ToolExitCode)
  },
  "toolOutputs": [
    {
      object (ToolOutputReference)
    }
  ]
}
फ़ील्ड
commandLineArguments[]

string

टोकन के तौर पर मौजूद पूरी कमांड लाइन, जिसमें प्रोग्राम का नाम शामिल है. यह किसी C प्रोग्राम में rcv के बराबर होता है.

  • जवाब में: अगर 'अनुरोध करें' के हिसाब से सेट किया गया हो, तो यह मौजूद होता है
  • अनुरोध बनाएं: ज़रूरी नहीं
  • अपडेट करने के अनुरोध में: कभी सेट नहीं किया गया
toolLogs[]

object (FileReference)

किसी सादे टेक्स्ट लॉग का रेफ़रंस देने पर, टूल को एक्ज़ीक्यूट किया जाता है.

टूल के चलने के दौरान, लॉग के लाइव व्यू को ऐक्सेस करने के लिए, इस फ़ील्ड को टूल के बंद होने से पहले सेट किया जा सकता है.

हर चरण में ज़्यादा से ज़्यादा 1,000 टूल लॉग जोड़े जा सकते हैं.

  • जवाब में: अगर बनाएं/अपडेट करें अनुरोध के हिसाब से सेट किया गया हो, तो यह मौजूद होता है
  • अनुरोध बनाएं: ज़रूरी नहीं
  • अपडेट करने के अनुरोध में: ज़रूरी नहीं, दी गई कोई भी वैल्यू मौजूदा सूची में जोड़ दी जाएगी
exitCode

object (ToolExitCode)

टूल के काम करने का एग्ज़िट कोड. टूल से बाहर निकलने के बाद इस फ़ील्ड को सेट कर दिया जाएगा.

  • जवाब में: अगर बनाएं/अपडेट करें अनुरोध के हिसाब से सेट किया गया हो, तो यह मौजूद होता है
  • अनुरोध बनाएं: ज़रूरी नहीं
  • अपडेट करने के अनुरोध में: वैकल्पिक, अगर ExitCode पहले से सेट है, तो FAILED_PRECondition गड़बड़ी मिलेगी.
toolOutputs[]

object (ToolOutputReference)

टूल के इस्तेमाल करने पर किसी भी फ़ॉर्मैट आउटपुट की ओपेक फ़ाइलों के बारे में जानकारी.

हर चरण में ज़्यादा से ज़्यादा 1,000 टूल आउटपुट डाले जा सकते हैं.

  • जवाब में: अगर बनाएं/अपडेट करें अनुरोध के हिसाब से सेट किया गया हो, तो यह मौजूद होता है
  • अनुरोध बनाएं: ज़रूरी नहीं
  • अपडेट करने के अनुरोध में: ज़रूरी नहीं, दी गई कोई भी वैल्यू मौजूदा सूची में जोड़ दी जाएगी

टूल बाहर निकलें कोड

टूल एक्ज़ीक्यूशन से कोड से बाहर निकलें.

JSON के काेड में दिखाना
{
  "number": integer
}
फ़ील्ड
number

integer

टूल के काम करने का एग्ज़िट कोड. 0 वैल्यू का मतलब है कि नियम लागू हो गया है.

  • जवाब में: हमेशा सेट करें
  • अनुरोध बनाएं/अपडेट करें में: हमेशा सेट

टेस्ट अंक

जांच के दौरान कोई समस्या हुई.

JSON के काेड में दिखाना
{
  "errorMessage": string,
  "stackTrace": {
    object (StackTrace)
  },
  "warning": {
    object (Any)
  },
  "severity": enum (Severity),
  "type": enum (Type),
  "category": enum (Category)
}
फ़ील्ड
errorMessage

string

इस समस्या के बारे में जानकारी देने वाला एक मैसेज, जिसे कोई भी व्यक्ति आसानी से पढ़ सकता है. ज़रूरी है.

stackTrace
(deprecated)

object (StackTrace)

कुछ चेतावनियों में, स्टैक ट्रेस फ़ील्ड को प्राथमिकता नहीं दी गई है.

warning

object (Any)

समस्या के बारे में ज़्यादा जानकारी देने वाला चेतावनी मैसेज. यह हमेशा com.google.devtools.toolresults.v1.warnings से मिला मैसेज होना चाहिए

severity

enum (Severity)

समस्या की गंभीरता. ज़रूरी है.

type

enum (Type)

समस्या किस तरह की है. ज़रूरी है.

category

enum (Category)

समस्या की कैटगरी. ज़रूरी है.

कोई भी

Any में एक आर्बिट्रेरी सीरियल प्रोटोकॉल बफ़र मैसेज होता है. साथ ही, एक यूआरएल भी होता है जो सीरियल नंबर वाले मैसेज के टाइप की जानकारी देता है.

Protobuf लाइब्रेरी से किसी भी वैल्यू को यूटिलिटी फ़ंक्शन या किसी भी टाइप के जनरेट किए गए अतिरिक्त तरीकों के रूप में पैक/अनपैक करने में मदद मिलती है.

उदाहरण 1: C++ में मैसेज को पैक और अनपैक करें.

Foo foo = ...;
Any any;
any.PackFrom(foo);
...
if (any.UnpackTo(&foo)) {
  ...
}

उदाहरण 2: Java में किसी मैसेज को पैक और अनपैक करें.

Foo foo = ...;
Any any = Any.pack(foo);
...
if (any.is(Foo.class)) {
  foo = any.unpack(Foo.class);
}

तीसरा उदाहरण: Python में किसी मैसेज को पैक और अनपैक करें.

foo = Foo(...)
any = Any()
any.Pack(foo)
...
if any.Is(Foo.DESCRIPTOR):
  any.Unpack(foo)
  ...

उदाहरण 4: Go में मैसेज को पैक और अनपैक करना

 foo := &pb.Foo{...}
 any, err := ptypes.MarshalAny(foo)
 ...
 foo := &pb.Foo{}
 if err := ptypes.UnmarshalAny(any, foo); err != nil {
   ...
 }

प्रोटोबफ़ लाइब्रेरी से मिलने वाले पैक के तरीके डिफ़ॉल्ट रूप से 'type.googleapis.com/full.type.name' का इस्तेमाल करेंगे क्योंकि टाइप यूआरएल और अनपैक करने के तरीकों में पूरी तरह क्वालिफ़ाइड टाइप नाम का इस्तेमाल सिर्फ़ आखिरी '/' के बाद किया जाता है टाइप यूआरएल में, उदाहरण के लिए "foo.bar.com/x/y.z" "y.z" टाइप नाम देगा.

JSON

Any वैल्यू को JSON फ़ॉर्मैट में दिखाने में, एम्बेड किए गए डीसीरियलाइज़ किए गए मैसेज को सामान्य तरीके से दिखाया जाता है. साथ ही, इसमें एक अतिरिक्त फ़ील्ड @type होता है, जिसमें टाइप यूआरएल होता है. उदाहरण:

package google.profile;
message Person {
  string first_name = 1;
  string last_name = 2;
}

{
  "@type": "type.googleapis.com/google.profile.Person",
  "firstName": <string>,
  "lastName": <string>
}

अगर एम्बेड किया गया मैसेज टाइप जाना-पहचाना है और उसमें पसंद के मुताबिक JSON फ़ॉर्मैट इस्तेमाल किया गया है, तो उस मैसेज को एक फ़ील्ड value जोड़कर एम्बेड कर दिया जाएगा. इसमें @type फ़ील्ड के साथ-साथ, कस्टम JSON भी शामिल होता है. उदाहरण (मैसेज google.protobuf.Duration के लिए):

{
  "@type": "type.googleapis.com/google.protobuf.Duration",
  "value": "1.212s"
}
JSON के काेड में दिखाना
{
  "typeUrl": string,
  "value": string
}
फ़ील्ड
typeUrl

string

ऐसा यूआरएल/संसाधन नाम जो खास तौर पर, सीरियल वाले प्रोटोकॉल बफ़र मैसेज के टाइप की पहचान करता है. इस स्ट्रिंग में कम से कम एक "/" होना चाहिए वर्ण. यूआरएल पाथ के आखिरी सेगमेंट में, टाइप का पूरी तरह क्वालिफ़ाइड नाम दिखना चाहिए (जैसा कि path/google.protobuf.Duration में है). नाम कैननिकल होना चाहिए (उदाहरण के लिए, इसकी शुरुआत में "." नहीं होना चाहिए).

व्यावहारिक तौर पर, टीमें आम तौर पर उन सभी टाइप की बाइनरी में पहले से कंपाइल हो जाती हैं जो उन्हें किसी भी संदर्भ में इस्तेमाल करने की उम्मीद करते हैं. हालांकि, http, https या बिना स्कीम वाली स्कीम का इस्तेमाल करने वाले यूआरएल के लिए, विकल्प के तौर पर एक सर्वर सेट अप किया जा सकता है. यह सर्वर, टाइप के यूआरएल को इस तरह से मैप करता है कि मैसेज की परिभाषाएं इस तरह से हैं:

  • अगर कोई स्कीम नहीं दी जाती है, तो https माना जाता है.
  • यूआरएल पर किसी एचटीटीपी जीईटी को बाइनरी फ़ॉर्मैट में google.protobuf.Type वैल्यू देनी चाहिए या इससे कोई गड़बड़ी होनी चाहिए.
  • ऐप्लिकेशन, यूआरएल के आधार पर लुकअप नतीजों को कैश मेमोरी में सेव कर सकते हैं या किसी लुकअप से बचने के लिए, उन्हें पहले से बाइनरी में कंपाइल कर सकते हैं. इसलिए, टाइप में किए गए बदलावों के लिए बाइनरी कंपैटबिलिटी को बनाए रखना ज़रूरी है. (नुकसान पहुंचाने वाले बदलावों को मैनेज करने के लिए, वर्शन वाले टाइप के नामों का इस्तेमाल करें.)

ध्यान दें: फ़िलहाल, यह सुविधा आधिकारिक प्रोटोबफ़ रिलीज़ में उपलब्ध नहीं है. साथ ही, इसका इस्तेमाल type.googleapis.com से शुरू होने वाले टाइप के यूआरएल के लिए नहीं किया जाता.

http, https (या खाली स्कीम) के अलावा, किसी और स्कीम का इस्तेमाल, लागू करने वाले खास सिमैंटिक के साथ किया जा सकता है.

value

string (bytes format)

ऊपर बताए गए टाइप का मान्य सीरियल प्रोटोकॉल बफ़र होना चाहिए.

base64 कोड में बदली गई स्ट्रिंग.

समस्या की गंभीरता

समस्याओं की गंभीरता.

एनम्स
unspecifiedSeverity डिफ़ॉल्ट रूप से, गंभीरता की जानकारी नहीं दी गई है. इस्तेमाल न करें. सिर्फ़ वर्शन के लिए.
info सामान्य समस्या, उपयोगकर्ताओं को टेस्ट रन के बारे में कुछ जानकारी देना.
suggestion एक गंभीर समस्या, उपयोगकर्ताओं को टेस्टिंग के अनुभव को बेहतर बनाने के लिए कुछ संकेत देना, जैसे कि गेम लूप का इस्तेमाल करने का सुझाव देना.
warning संभावित रूप से गंभीर समस्या.
severe गंभीर समस्या.

टाइप

समस्याएं किस तरह की हैं.

एनम्स
unspecifiedType डिफ़ॉल्ट अनिर्दिष्ट प्रकार. इस्तेमाल न करें. सिर्फ़ वर्शन के लिए.
fatalException समस्या एक गंभीर अपवाद है.
nativeCrash समस्या नेटिव क्रैश की है.
anr समस्या, ANR क्रैश होने की है.
unusedRoboDirective समस्या एक ऐसा रोबो डायरेक्टिव है जिसका इस्तेमाल नहीं हुआ है.
compatibleWithOrchestrator समस्या, ऑर्केस्ट्रेटर के इस्तेमाल का सुझाव है.
launcherActivityNotFound लॉन्चर की गतिविधि ढूंढने से जुड़ी समस्या
startActivityNotFound कोई गतिविधि शुरू करने के लिए, उपयोगकर्ता के दिए गए इंटेंट का समाधान करने से जुड़ी समस्या
incompleteRoboScriptExecution रोबो स्क्रिप्ट पूरी तरह से एक्ज़ीक्यूट नहीं हुई है.
completeRoboScriptExecution रोबो स्क्रिप्ट पूरी तरह से चलाकर सही तरीके से एक्ज़ीक्यूट की गई.
failedToInstall APK इंस्टॉल नहीं हो सका.
nonSdkApiUsageViolation ऐप्लिकेशन ने Non-sdk Api को ऐक्सेस किया है.
nonSdkApiUsageReport ऐप्लिकेशन को बिना SDK टूल के एपीआई का ऐक्सेस मिला है (ज़्यादा जानकारी वाली नई रिपोर्ट)
encounteredNonAndroidUiWidgetScreen रोबो क्रॉल को कम से कम एक स्क्रीन पर ऐसे एलिमेंट मिले जो Android यूज़र इंटरफ़ेस (यूआई) विजेट नहीं हैं.
encounteredLoginScreen रोबो क्रॉल को कम से कम एक संभावित लॉगिन स्क्रीन पर देखा गया.
performedGoogleLogin रोबो ने Google से साइन इन किया है.
iosException iOS ऐप्लिकेशन किसी अपवाद की वजह से क्रैश हुआ.
iosCrash iOS ऐप्लिकेशन बिना किसी अपवाद के क्रैश हो गया (उदाहरण के लिए, खत्म हो गया).
performedMonkeyActions रोबो क्रॉल में बंदर की कुछ गतिविधियां करते हुए दिखाया गया.
usedRoboDirective रोबो क्रॉल ने रोबो डायरेक्टिव का इस्तेमाल किया है.
usedRoboIgnoreDirective रोबो क्रॉल ने यूज़र इंटरफ़ेस (यूआई) एलिमेंट को अनदेखा करने के लिए, रोबो डायरेक्टिव का इस्तेमाल किया है.
insufficientCoverage रोबो ने ऐप्लिकेशन के कुछ संभावित रूप से ज़रूरी हिस्सों को क्रॉल नहीं किया.
inAppPurchases रोबो क्रॉल में कुछ इन-ऐप्लिकेशन खरीदारी शामिल थीं.
crashDialogError जांच के दौरान क्रैश डायलॉग का पता चला
uiElementsTooDeep यूज़र इंटरफ़ेस (यूआई) एलिमेंट की डेप्थ, थ्रेशोल्ड से ज़्यादा है
blankScreen रोबो क्रॉल में खाली स्क्रीन मिली है
overlappingUiElements रोबो क्रॉल में ओवरलैप करने वाले यूज़र इंटरफ़ेस (यूआई) एलिमेंट पाए जाते हैं
unityException Unity के अपवाद का पता चला है और यह ऐप्लिकेशन क्रैश नहीं होता.
deviceOutOfMemory ऐसे डिवाइस का पता चला जिसमें मेमोरी खत्म हो रही है
logcatCollectionError लॉगकैट इकट्ठा करते समय समस्याओं का पता चला
detectedAppSplashScreen रोबो को ऐप्लिकेशन (बनाम Android OS की स्प्लैश स्क्रीन) से मिली स्प्लैश स्क्रीन का पता चला.
assetIssue इस जांच में शामिल ऐसेट में कोई समस्या थी.

कैटगरी

समस्याओं की कैटगरी.

एनम्स
unspecifiedCategory डिफ़ॉल्ट अनिर्दिष्ट श्रेणी. इस्तेमाल न करें. सिर्फ़ वर्शन के लिए.
common समस्या किसी खास तरह के टेस्ट के लिए नहीं है (उदाहरण के लिए, नेटिव क्रैश).
robo समस्या खास तौर पर रोबो रन से जुड़ी है.

जांच का समय

अलग-अलग चरणों के बारे में जानने के लिए, अलग-अलग समय पर जांच करें.

JSON के काेड में दिखाना
{
  "testProcessDuration": {
    object (Duration)
  }
}
फ़ील्ड
testProcessDuration

object (Duration)

जांच की प्रोसेस को चलाने में कितना समय लगा.

  • जवाब में: अगर पहले से सेट है, तो यह मौजूद होता है.
  • अनुरोध बनाएं/अपडेट करें: ज़रूरी नहीं

टूल एक्ज़ीक्यूशन स्टेप

बाइनरी के लिए इस्तेमाल किया जाने वाला सामान्य टूल चरण, जिनका हम साफ़ तौर पर समर्थन नहीं करते हैं. उदाहरण के लिए: एक जगह से दूसरी जगह पर आर्टफ़ैक्ट कॉपी करने के लिए, cp का इस्तेमाल करें.

JSON के काेड में दिखाना
{
  "toolExecution": {
    object (ToolExecution)
  }
}
फ़ील्ड
toolExecution

object (ToolExecution)

टूल की प्रोसेस लागू की जा रही है.

  • जवाब में: अगर बनाएं/अपडेट करें अनुरोध के हिसाब से सेट किया गया हो, तो यह मौजूद होता है
  • अनुरोध बनाएं/अपडेट करें: ज़रूरी नहीं

मल्टीस्टेप

ग्रुप की तरह एक ही कॉन्फ़िगरेशन के साथ चलने वाले कई चरणों की जानकारी.

JSON के काेड में दिखाना
{
  "primaryStepId": string,
  "multistepNumber": integer,
  "primaryStep": {
    object (PrimaryStep)
  }
}
फ़ील्ड
primaryStepId

string

मुख्य (ओरिजनल) चरण का चरण आईडी, जो यह चरण हो सकता है.

multistepNumber

integer

हर चरण के लिए यूनीक वैल्यू दी गई है. इसकी रेंज 0(शामिल) से लेकर चरणों की कुल संख्या(अतिरिक्त) तक होती है. पहला चरण 0 है.

primaryStep

object (PrimaryStep)

अगर यह मुख्य (ओरिजनल) चरण है, तो इसे प्रज़ेंट करें.

प्राइमरी स्टेप

ग्रुप के तौर पर चलाए गए कई चरणों और हर चरण के नतीजे के तौर पर चलाए गए रोलअप टेस्ट के स्टेटस को स्टोर करता है.

JSON के काेड में दिखाना
{
  "rollUp": enum (OutcomeSummary),
  "individualOutcome": [
    {
      object (IndividualOutcome)
    }
  ]
}
फ़ील्ड
rollUp

enum (OutcomeSummary)

कई चरणों के रोलअप टेस्ट का स्टेटस, जो ग्रुप के तौर पर एक ही कॉन्फ़िगरेशन के साथ चलाए गए थे.

individualOutcome[]

object (IndividualOutcome)

चरण आईडी और हर चरण का नतीजा.

व्यक्तिगत आउटकम

चरण का आईडी और हर चरण का नतीजा, जो एक जैसे कॉन्फ़िगरेशन वाले दूसरे चरणों के साथ ग्रुप के तौर पर चलाया गया.

JSON के काेड में दिखाना
{
  "stepId": string,
  "outcomeSummary": enum (OutcomeSummary),
  "multistepNumber": integer,
  "runDuration": {
    object (Duration)
  }
}
फ़ील्ड
stepId

string

outcomeSummary

enum (OutcomeSummary)

multistepNumber

integer

हर चरण के लिए यूनीक वैल्यू दी गई है. इसकी रेंज 0(शामिल) से लेकर चरणों की कुल संख्या(अतिरिक्त) तक होती है. पहला चरण 0 है.

runDuration

object (Duration)

इस चरण को पूरा होने में कितना समय लगा.

तरीके

accessibilityClusters

दिए गए चरण के लिए, सुलभता क्लस्टर की सूची बनाता है

इनमें से कोई भी कैननिकल गड़बड़ी कोड दिख सकता है:

  • अनुमति_DENIED - अगर उपयोगकर्ता प्रोजेक्ट पढ़ने के लिए अधिकृत नहीं है
  • INVALID_LAMBDA - अगर अनुरोध के प्रारूप में दोष है
  • FAILED_PRECondition, - अगर अनुरोध में मौजूद कोई आर्ग्युमेंट अमान्य है; उदाहरण के लिए,

create

एक चरण बनाता है.

get

एक कदम चलता है.

getPerfMetricsSummary

PerfMetricssummary की मदद से, इसे वापस लाया जा सकता है.

list

यह डायलॉग बॉक्स लागू करने के चरणों की सूची बनाता है.

patch

दी गई आंशिक इकाई के साथ मौजूदा चरण को अपडेट करता है.

publishXunitXmlFiles

मौजूदा चरण में एक्सएमएल फ़ाइलें पब्लिश करें.