REST Resource: projects.histories.executions.steps

সম্পদ: ধাপ

একটি ধাপ এক্সিকিউশনের অংশ হিসেবে সম্পাদিত একটি একক ক্রিয়াকলাপের প্রতিনিধিত্ব করে। একটি পদক্ষেপ একটি টুলের কার্য সম্পাদনের প্রতিনিধিত্ব করতে ব্যবহার করা যেতে পারে (উদাহরণস্বরূপ একটি টেস্ট রানার এক্সিকিউশন বা একটি কম্পাইলারের এক্সিকিউশন)।

ধাপগুলি ওভারল্যাপ করতে পারে (উদাহরণস্বরূপ দুটি ধাপে একই শুরুর সময় থাকতে পারে যদি কিছু ক্রিয়াকলাপ সমান্তরালভাবে করা হয়)।

এখানে একটি উদাহরণ, আসুন বিবেচনা করা যাক যে আমাদের একটি ক্রমাগত বিল্ড প্রতিটি পুনরাবৃত্তির জন্য একটি পরীক্ষা রানার নির্বাহ করছে। ওয়ার্কফ্লো দেখতে এরকম হবে: - ব্যবহারকারী আইডি 1 দিয়ে একটি এক্সিকিউশন তৈরি করে - ব্যবহারকারী এক্সিকিউশন 1 এর জন্য আইডি 100 সহ একটি TestExecutionStep তৈরি করে - একটি কাঁচা xml লগ যোগ করতে 100 আইডি সহ ব্যবহারকারী আপডেট TestExecutionStep + পরিষেবাটি xml লগগুলিকে পার্স করে এবং একটি TestExecutionSt দিয়ে একটি TestExecutionStep ফেরত দেয় আপডেট করা পরীক্ষার ফলাফল - ব্যবহারকারী 100 আইডি সহ TestExecutionStep-এর স্থিতি সম্পূর্ণ করতে আপডেট করে

একটি ধাপ আপডেট করা যেতে পারে যতক্ষণ না তার অবস্থা সম্পূর্ণ সেট করা হয় যেখানে এটি অপরিবর্তনীয় হয়ে যায়।

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_ARGUMENT প্রদান করে যদি এই ক্ষেত্রটি কলার দ্বারা সেট বা ওভাররাইট করা হয়।

  • উত্তরে: সর্বদা সেট
  • তৈরি/আপডেট অনুরোধে: কখনই সেট করা হয় না
creationTime

object ( Timestamp )

যে সময় ধাপটি তৈরি হয়েছিল।

  • উত্তরে: সর্বদা সেট
  • তৈরি/আপডেট অনুরোধে: কখনই সেট করা হয় না
completionTime

object ( Timestamp )

ধাপের স্থিতি সম্পূর্ণ হওয়ার জন্য সেট করা সময়।

এই মানটি স্বয়ংক্রিয়ভাবে সেট হয়ে যাবে যখন রাজ্য পূর্ণ রূপান্তরিত হবে৷

  • উত্তরে: এক্সিকিউশন স্টেট সম্পূর্ণ হলে সেট করুন।
  • তৈরি/আপডেট অনুরোধে: কখনই সেট করা হয় না
name

string

UI-তে প্রদর্শনের জন্য একটি সংক্ষিপ্ত মানব-পাঠযোগ্য নাম। সর্বাধিক 100টি অক্ষর। যেমন: ক্লিন বিল্ড

একটি নতুন ধাপ তৈরি করার সময় একটি PRECONDITION_FAILED ফেরত দেওয়া হবে যদি এটি একটি বিদ্যমান ধাপের সাথে তার নাম এবং মাত্রার মান শেয়ার করে। যদি দুটি ধাপ একটি অনুরূপ ক্রিয়াকে উপস্থাপন করে, কিন্তু ভিন্ন মাত্রার মান থাকে, তাহলে তাদের একই নাম শেয়ার করা উচিত। উদাহরণস্বরূপ, যদি দুটি ভিন্ন প্ল্যাটফর্মে পরীক্ষার একই সেট চালানো হয়, তবে দুটি ধাপের একই নাম হওয়া উচিত।

  • উত্তরে: সর্বদা সেট
  • অনুরোধ তৈরি করুন: সর্বদা সেট করুন
  • আপডেটের অনুরোধে: কখনই সেট করবেন না
description

string

এই টুলের একটি বিবরণ উদাহরণস্বরূপ: mvn ক্লিন প্যাকেজ -D skipTests=true

  • প্রতিক্রিয়ায়: তৈরি/আপডেট অনুরোধ দ্বারা সেট করা হলে উপস্থাপন করুন
  • তৈরি/আপডেট অনুরোধে: ঐচ্ছিক
state

enum ( State )

প্রাথমিক অবস্থা হল IN_PROGRESS৷ একমাত্র আইনী রাষ্ট্রীয় রূপান্তর হল * IN_PROGRESS -> সম্পূর্ণ

একটি অবৈধ স্থানান্তরের অনুরোধ করা হলে একটি PRECONDITION_FAILED ফেরত দেওয়া হবে৷

একটি স্টেপ সহ স্টেপ তৈরি করা বৈধ রাজ্য শুধুমাত্র একবার সম্পূর্ণ সেট করা যেতে পারে। একটি PRECONDITION_FAILED ফেরত দেওয়া হবে যদি রাজ্যটি একাধিকবার COMPLETE সেট করা থাকে৷

  • উত্তরে: সর্বদা সেট
  • তৈরি/আপডেট অনুরোধে: ঐচ্ছিক
outcome

object ( Outcome )

ফলাফলের শ্রেণীবিভাগ, উদাহরণস্বরূপ সফলতা বা ব্যর্থতায়

  • প্রতিক্রিয়ায়: তৈরি/আপডেট অনুরোধ দ্বারা সেট করা হলে উপস্থাপন করুন
  • তৈরি/আপডেট অনুরোধে: ঐচ্ছিক
hasImages

boolean

এই ধাপের আউটপুটগুলির মধ্যে কোনটি এমন চিত্র কিনা যার থাম্বনেইলগুলি thumbnails.list দিয়ে আনা যেতে পারে।

  • উত্তরে: সর্বদা সেট
  • তৈরি/আপডেট অনুরোধে: কখনই সেট করা হয় না
labels

map (key: string, value: string)

নির্বিচারে ব্যবহারকারী দ্বারা সরবরাহ করা কী/মান জোড়া যা ধাপের সাথে যুক্ত।

ব্যবহারকারীরা কী নেমস্পেস পরিচালনা করার জন্য দায়বদ্ধ যাতে কীগুলি দুর্ঘটনাক্রমে সংঘর্ষে না পড়ে।

একটি INVALID_ARGUMENT ফেরত দেওয়া হবে যদি লেবেলের সংখ্যা 100 ছাড়িয়ে যায় বা যদি কোনো কী বা মানের দৈর্ঘ্য 100 অক্ষরের বেশি হয়।

  • উত্তরে: সর্বদা সেট
  • অনুরোধ তৈরি করুন: ঐচ্ছিক
  • আপডেট অনুরোধে: ঐচ্ছিক; যেকোন নতুন কী/মান জোড়া মানচিত্রে যোগ করা হবে, এবং বিদ্যমান কী-এর জন্য যেকোনো নতুন মান সেই কীটির মান আপডেট করবে

"key": value জোড়া। উদাহরণ: { "name": "wrench", "mass": "1.3kg", "count": "3" }

dimensionValue

map (key: string, value: string)

যদি এই ধাপটি সম্বলিত এক্সিকিউশনে কোনো মাত্রা_সংজ্ঞা সেট থাকে, তাহলে এই ক্ষেত্রটি শিশুকে মাত্রার মান নির্দিষ্ট করতে দেয়।

কীগুলি অবশ্যই এক্সিকিউশনের ডাইমেনশন_ডেফিনিশনের সাথে ঠিক মেলে।

উদাহরণস্বরূপ, যদি এক্সিকিউশনে dimension_definition = ['attempt', 'device'] থাকে তাহলে একটি ধাপ অবশ্যই সেই মাত্রাগুলির জন্য মান নির্ধারণ করবে, যেমন। dimensionValue = ['attempt': '1', 'device': 'Nexus 6']

যদি একটি ধাপ ম্যাট্রিক্সের একটি মাত্রায় অংশগ্রহণ না করে, তাহলে সেই মাত্রার মানটি খালি স্ট্রিং হওয়া উচিত। উদাহরণ স্বরূপ, যদি পরীক্ষাগুলির মধ্যে একটি রানার দ্বারা চালানো হয় যা পুনঃপ্রচার সমর্থন করে না, তবে ধাপে dimensionValue = ['attempt': '', 'device': 'Nexus 6']

যদি ধাপটি ম্যাট্রিক্সের কোনো মাত্রায় অংশগ্রহণ না করে, তাহলে এটি মাত্রা মান সেট না করে রেখে যেতে পারে।

এক্সিকিউশনের ডাইমেনশন_ডেফিনিশনে কোনো কী বিদ্যমান না থাকলে একটি PRECONDITION_FAILED ফেরত দেওয়া হবে।

একটি PRECONDITION_FAILED ফেরত দেওয়া হবে যদি এই এক্সিকিউশনের অন্য একটি ধাপে ইতিমধ্যেই একই নাম এবং মাত্রার মান থাকে, কিন্তু অন্যান্য ডেটা ক্ষেত্রের ক্ষেত্রে পার্থক্য থাকে, উদাহরণস্বরূপ, ধাপের ক্ষেত্রটি ভিন্ন।

ডাইমেনশন ভ্যালু সেট করা থাকলে একটি PRECONDITION_FAILED ফেরত দেওয়া হবে এবং এক্সিকিউশনে একটি ডাইমেনশন_ডেফিনিশন আছে যা কীগুলির একটি হিসেবে নির্দিষ্ট করা নেই।

  • প্রতিক্রিয়ায়: তৈরি দ্বারা সেট করা হলে উপস্থাপন করুন
  • অনুরোধ তৈরি করুন: ঐচ্ছিক
  • আপডেটের অনুরোধে: কখনই সেট করবেন না

"key": value জোড়া। উদাহরণ: { "name": "wrench", "mass": "1.3kg", "count": "3" }

runDuration

object ( Duration )

এই পদক্ষেপটি চালানোর জন্য কতক্ষণ লেগেছিল।

যদি সেট করা না থাকে, এটি তৈরির সময় এবং সমাপ্তির সময়ের মধ্যে পার্থক্য সেট করা হয় যখন ধাপটি সম্পূর্ণ অবস্থায় সেট করা হয়। কিছু ক্ষেত্রে, এই মানটি আলাদাভাবে সেট করা উপযুক্ত: উদাহরণস্বরূপ, যদি একটি ধাপ তৈরি করা হয়, কিন্তু এটি যে ক্রিয়াকলাপের প্রতিনিধিত্ব করে তা কার্যকর করার আগে কয়েক মিনিটের জন্য সারিবদ্ধ থাকে, এটিতে সারিবদ্ধভাবে ব্যয় করা সময়কে অন্তর্ভুক্ত না করাই উপযুক্ত হবে। রানের সময়কাল।

PRECONDITION_FAILED ফেরত দেওয়া হবে যদি কেউ এমন একটি ধাপে রান ডিউরেশন সেট করার চেষ্টা করে যেখানে ইতিমধ্যেই এই ফিল্ড সেট আছে।

  • প্রতিক্রিয়ায়: পূর্বে সেট থাকলে উপস্থিত; সর্বদা সম্পূর্ণ পদক্ষেপে উপস্থিত
  • অনুরোধ তৈরি করুন: ঐচ্ছিক
  • আপডেটের অনুরোধে: ঐচ্ছিক
deviceUsageDuration

object ( Duration )

পরীক্ষা করার জন্য ডিভাইসের রিসোর্স কতটা ব্যবহার করা হয়।

এটি হল বিলিং উদ্দেশ্যে ব্যবহৃত ডিভাইস ব্যবহার, যা runDuration থেকে আলাদা, উদাহরণস্বরূপ, অবকাঠামো ব্যর্থতার জন্য ডিভাইস ব্যবহারের জন্য চার্জ করা হবে না।

PRECONDITION_FAILED ফেরত দেওয়া হবে যদি কেউ এমন একটি ধাপে ডিভাইস_ব্যবহার সেট করার চেষ্টা করে যেখানে ইতিমধ্যেই এই ক্ষেত্র সেট করা আছে।

  • উত্তরে: পূর্বে সেট থাকলে উপস্থিত।
  • অনুরোধ তৈরি করুন: ঐচ্ছিক
  • আপডেটের অনুরোধে: ঐচ্ছিক
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 লগ থেকে পার্স করা যেতে পারে, বা ব্যবহারকারীর দ্বারা সরাসরি আপলোড করা যেতে পারে। এই রেফারেন্সগুলি শুধুমাত্র তখনই বলা উচিত যখন টেস্ট স্যুটগুলি সম্পূর্ণ পার্স বা আপলোড করা হয়।

প্রতি ধাপে টেস্ট স্যুট ওভারভিউয়ের সর্বাধিক অনুমোদিত সংখ্যা হল 1000।

  • উত্তরে: সর্বদা সেট
  • অনুরোধ তৈরি করুন: ঐচ্ছিক
  • আপডেটের অনুরোধে: কখনই (পরিবর্তে publishXunitXmlFiles কাস্টম পদ্ধতি ব্যবহার করবেন না)
toolExecution

object ( ToolExecution )

টেস্ট রানার মৃত্যুদন্ডের প্রতিনিধিত্ব করে।

পরীক্ষা পাস হয়েছে কিনা তা নির্ধারণ করতে এই টুলের প্রস্থান কোড ব্যবহার করা হবে।

  • উত্তরে: সর্বদা সেট
  • তৈরি/আপডেট অনুরোধে: ঐচ্ছিক
testIssues[]

object ( TestIssue )

পরীক্ষা সম্পাদনের সময় পরিলক্ষিত সমস্যা।

উদাহরণ স্বরূপ, যদি পরীক্ষার অধীনে মোবাইল অ্যাপটি পরীক্ষার সময় ক্র্যাশ হয়ে যায়, ত্রুটির বার্তা এবং স্ট্যাক ট্রেস বিষয়বস্তু ডিবাগিংয়ে সহায়তা করার জন্য এখানে রেকর্ড করা যেতে পারে।

  • প্রতিক্রিয়ায়: তৈরি বা আপডেট দ্বারা সেট করা হলে উপস্থাপন করুন
  • তৈরি/আপডেট অনুরোধে: ঐচ্ছিক
testTiming

object ( TestTiming )

পরীক্ষা নির্বাহের টাইমিং ব্রেক ডাউন।

  • প্রতিক্রিয়ায়: তৈরি বা আপডেট দ্বারা সেট করা হলে উপস্থাপন করুন
  • তৈরি/আপডেট অনুরোধে: ঐচ্ছিক

টুল এক্সিকিউশন

একটি নির্বিচারে হাতিয়ার একটি মৃত্যুদন্ড. এটি একটি পরীক্ষা রানার হতে পারে বা একটি টুল কপি করা আর্টিফ্যাক্ট বা ডিপ্লয়িং কোড হতে পারে।

JSON প্রতিনিধিত্ব
{
  "commandLineArguments": [
    string
  ],
  "toolLogs": [
    {
      object (FileReference)
    }
  ],
  "exitCode": {
    object (ToolExitCode)
  },
  "toolOutputs": [
    {
      object (ToolOutputReference)
    }
  ]
}
ক্ষেত্র
commandLineArguments[]

string

প্রোগ্রামের নাম সহ সম্পূর্ণ টোকেনাইজড কমান্ড লাইন (একটি সি প্রোগ্রামে আরজিভির সমতুল্য)।

  • প্রতিক্রিয়ায়: তৈরি অনুরোধ দ্বারা সেট করা হলে উপস্থাপন করুন
  • অনুরোধ তৈরি করুন: ঐচ্ছিক
  • আপডেটের অনুরোধে: কখনই সেট করবেন না
toolLogs[]

object ( FileReference )

যেকোনো প্লেইন টেক্সট লগের রেফারেন্স টুল এক্সিকিউশন আউটপুট করে।

টুলটি চলাকালীন লগগুলির একটি লাইভ ভিউতে অ্যাক্সেস পেতে সক্ষম হওয়ার জন্য টুলটি প্রস্থান করার আগে এই ক্ষেত্রটি সেট করা যেতে পারে।

প্রতি ধাপে টুল লগের সর্বাধিক অনুমোদিত সংখ্যা হল 1000৷

  • প্রতিক্রিয়ায়: তৈরি/আপডেট অনুরোধ দ্বারা সেট করা হলে উপস্থাপন করুন
  • অনুরোধ তৈরি করুন: ঐচ্ছিক
  • আপডেটের অনুরোধে: ঐচ্ছিক, প্রদত্ত যেকোন মান বিদ্যমান তালিকায় যুক্ত করা হবে
exitCode

object ( ToolExitCode )

টুল এক্সিকিউশন এক্সিট কোড। টুলটি বের হয়ে গেলে এই ক্ষেত্রটি সেট করা হবে।

  • প্রতিক্রিয়ায়: তৈরি/আপডেট অনুরোধ দ্বারা সেট করা হলে উপস্থাপন করুন
  • অনুরোধ তৈরি করুন: ঐচ্ছিক
  • আপডেটের অনুরোধে: ঐচ্ছিক, একটি FAILED_PRECONDITION ত্রুটি ফেরত দেওয়া হবে যদি একটি exitCode ইতিমধ্যেই সেট করা থাকে৷
toolOutputs[]

object ( ToolOutputReference )

টুল এক্সিকিউশন দ্বারা যেকোন ফরম্যাট আউটপুটের অস্বচ্ছ ফাইলের রেফারেন্স।

প্রতি ধাপে টুল আউটপুটের সর্বাধিক অনুমোদিত সংখ্যা হল 1000।

  • প্রতিক্রিয়ায়: তৈরি/আপডেট অনুরোধ দ্বারা সেট করা হলে উপস্থাপন করুন
  • অনুরোধ তৈরি করুন: ঐচ্ছিক
  • আপডেটের অনুরোধে: ঐচ্ছিক, প্রদত্ত যেকোন মান বিদ্যমান তালিকায় যুক্ত করা হবে

টুল এক্সিট কোড

একটি টুল এক্সিকিউশন থেকে প্রস্থান কোড.

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 একটি নির্বিচারে সিরিয়ালাইজড প্রোটোকল বাফার বার্তা রয়েছে এবং একটি URL সহ সিরিয়ালাইজড বার্তার ধরণ বর্ণনা করে৷

প্রোটোবুফ লাইব্রেরি যেকোন মান প্যাক/আনপ্যাক করতে সহায়তা প্রদান করে ইউটিলিটি ফাংশন বা যেকোন ধরণের অতিরিক্ত উৎপন্ন পদ্ধতির আকারে।

উদাহরণ 1: C++ এ একটি বার্তা প্যাক এবং আনপ্যাক করুন।

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

উদাহরণ 2: জাভাতে একটি বার্তা প্যাক এবং আনপ্যাক করুন।

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

উদাহরণ 3: পাইথনে একটি বার্তা প্যাক এবং আনপ্যাক করুন।

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' টাইপ URL হিসাবে ব্যবহার করবে এবং আনপ্যাক পদ্ধতিগুলি টাইপ URL-এ শেষ '/'-এর পরে সম্পূর্ণ যোগ্য টাইপ নাম ব্যবহার করবে, উদাহরণস্বরূপ "foo.bar.com/x/yz" টাইপ নাম দেবে "yz"।

JSON

Any মানের JSON উপস্থাপনা ডিসিরিয়ালাইজড, এমবেডেড বার্তার নিয়মিত উপস্থাপনা ব্যবহার করে, একটি অতিরিক্ত ফিল্ড @type সহ যা টাইপ URL ধারণ করে। উদাহরণ:

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

একটি ইউআরএল/রিসোর্স নাম যা সিরিয়ালাইজড প্রোটোকল বাফার মেসেজের ধরনকে অনন্যভাবে শনাক্ত করে। এই স্ট্রিংটিতে কমপক্ষে একটি "/" অক্ষর থাকতে হবে৷ URL এর পাথের শেষ সেগমেন্টটি অবশ্যই টাইপের সম্পূর্ণ যোগ্য নামের প্রতিনিধিত্ব করবে (যেমন path/google.protobuf.Duration )। নামটি একটি আদর্শ আকারে হওয়া উচিত (যেমন, অগ্রণী "।" গ্রহণযোগ্য নয়)।

অনুশীলনে, দলগুলি সাধারণত সমস্ত ধরণের বাইনারিতে প্রি-কম্পাইল করে যা তারা আশা করে যে এটি যে কোনও প্রসঙ্গে ব্যবহার করবে। যাইহোক, যে URL গুলির জন্য http , https , বা কোন স্কিম ব্যবহার করে না, কেউ ঐচ্ছিকভাবে একটি টাইপ সার্ভার সেট আপ করতে পারে যা বার্তার সংজ্ঞাগুলির সাথে টাইপ URL ম্যাপ করে:

  • যদি কোন স্কিম প্রদান করা না হয়, https ধরে নেওয়া হয়।
  • URL-এ একটি HTTP GET অবশ্যই বাইনারি বিন্যাসে একটি google.protobuf.Type মান দিতে হবে, অথবা একটি ত্রুটি তৈরি করবে৷
  • অ্যাপ্লিকেশনগুলিকে URL-এর উপর ভিত্তি করে অনুসন্ধান ফলাফল ক্যাশে করার অনুমতি দেওয়া হয়, বা কোনও লুকআপ এড়াতে সেগুলিকে একটি বাইনারিতে পূর্বে কম্পাইল করা হয়৷ অতএব, প্রকারের পরিবর্তনে বাইনারি সামঞ্জস্য রক্ষা করা প্রয়োজন। (ব্রেকিং পরিবর্তনগুলি পরিচালনা করতে সংস্করণযুক্ত টাইপ নামগুলি ব্যবহার করুন৷)

দ্রষ্টব্য: এই কার্যকারিতা বর্তমানে অফিসিয়াল প্রোটোবাফ রিলিজে উপলব্ধ নয়, এবং এটি type.googleapis.com দিয়ে শুরু হওয়া টাইপ URL-এর জন্য ব্যবহার করা হয় না।

http , https (বা খালি স্কিম) ছাড়া অন্য স্কিমগুলি বাস্তবায়ন নির্দিষ্ট শব্দার্থবিদ্যার সাথে ব্যবহার করা যেতে পারে।

value

string ( bytes format)

উপরের নির্দিষ্ট ধরনের একটি বৈধ সিরিয়ালাইজড প্রোটোকল বাফার হতে হবে।

একটি base64-এনকোডেড স্ট্রিং।

নির্দয়তা

সমস্যার তীব্রতা।

Enums
unspecifiedSeverity ডিফল্ট অনির্দিষ্ট তীব্রতা. ব্যবহার করবেন না. শুধুমাত্র সংস্করণের জন্য।
info অ-গুরুত্বপূর্ণ সমস্যা, ব্যবহারকারীদের পরীক্ষা চালানোর বিষয়ে কিছু তথ্য প্রদান করে।
suggestion অ-গুরুত্বপূর্ণ সমস্যা, ব্যবহারকারীদের তাদের পরীক্ষার অভিজ্ঞতা উন্নত করার জন্য কিছু ইঙ্গিত প্রদান করে, যেমন, গেম লুপ ব্যবহার করার পরামর্শ দেওয়া।
warning সম্ভাব্য সমালোচনামূলক সমস্যা।
severe গুরুতর সমস্যা.

টাইপ

সমস্যার প্রকারভেদ।

Enums
unspecifiedType ডিফল্ট অনির্দিষ্ট প্রকার। ব্যবহার করবেন না. শুধুমাত্র সংস্করণের জন্য।
fatalException ইস্যু একটি মারাত্মক ব্যতিক্রম।
nativeCrash সমস্যা একটি নেটিভ ক্র্যাশ.
anr সমস্যা হল একটি ANR ক্র্যাশ৷
unusedRoboDirective ইস্যুটি একটি অব্যবহৃত রোবো নির্দেশিকা।
compatibleWithOrchestrator ইস্যু হল অর্কেস্ট্রেটর ব্যবহার করার পরামর্শ।
launcherActivityNotFound একটি লঞ্চার কার্যকলাপ খোঁজার সমস্যা
startActivityNotFound একটি কার্যকলাপ শুরু করার জন্য একটি ব্যবহারকারী-প্রদত্ত অভিপ্রায় সমাধানের সাথে সমস্যা
incompleteRoboScriptExecution একটি রোবো স্ক্রিপ্ট সম্পূর্ণরূপে কার্যকর করা হয়নি।
completeRoboScriptExecution একটি রোবো স্ক্রিপ্ট সম্পূর্ণ এবং সফলভাবে সম্পাদিত হয়েছে।
failedToInstall APK ইনস্টল করতে ব্যর্থ হয়েছে.
nonSdkApiUsageViolation অ্যাপ একটি নন-sdk Api অ্যাক্সেস করেছে।
nonSdkApiUsageReport অ্যাপ একটি নন-এসডিকে এপিআই অ্যাক্সেস করেছে (নতুন বিশদ প্রতিবেদন)
encounteredNonAndroidUiWidgetScreen Android UI উইজেট নয় এমন উপাদান সহ রোবো ক্রল অন্তত একটি স্ক্রীনের সম্মুখীন হয়েছে৷
encounteredLoginScreen রোবো ক্রল অন্তত একটি সম্ভাব্য লগইন স্ক্রীনের সম্মুখীন হয়েছে৷
performedGoogleLogin Robo Google এর সাথে সাইন ইন করেছে।
iosException iOS অ্যাপ একটি ব্যতিক্রম সহ ক্র্যাশ হয়েছে।
iosCrash iOS অ্যাপ একটি ব্যতিক্রম ছাড়াই ক্র্যাশ হয়েছে (যেমন নিহত)।
performedMonkeyActions রোবো ক্রল কিছু বানর কর্ম সম্পাদন জড়িত.
usedRoboDirective রোবো ক্রল একটি রোবো নির্দেশিকা ব্যবহার করেছে।
usedRoboIgnoreDirective Robo ক্রল একটি UI উপাদান উপেক্ষা করার জন্য একটি Robo নির্দেশিকা ব্যবহার করেছে৷
insufficientCoverage রোবো অ্যাপের কিছু সম্ভাব্য গুরুত্বপূর্ণ অংশ ক্রল করেনি।
inAppPurchases রোবো ক্রল কিছু অ্যাপ-মধ্যস্থ কেনাকাটা জড়িত।
crashDialogError পরীক্ষা সম্পাদনের সময় ক্র্যাশ ডায়ালগ সনাক্ত করা হয়েছিল৷
uiElementsTooDeep UI উপাদানের গভীরতা থ্রেশহোল্ডের চেয়ে বেশি
blankScreen রবো ক্রল-এ ফাঁকা স্ক্রিন পাওয়া যায়
overlappingUiElements ওভারল্যাপিং UI উপাদানগুলি রোবো ক্রল-এ পাওয়া যায়
unityException একটি uncaught Unity ব্যতিক্রম সনাক্ত করা হয়েছে (এগুলি ক্র্যাশ অ্যাপস হয় না)।
deviceOutOfMemory ডিভাইসের মেমরি ফুরিয়ে গেছে শনাক্ত করা হয়েছে
logcatCollectionError লগক্যাট সংগ্রহ করার সময় সমস্যা সনাক্ত করা হয়েছে
detectedAppSplashScreen রোবো অ্যাপ দ্বারা প্রদত্ত একটি স্প্ল্যাশ স্ক্রিন সনাক্ত করেছে (বনাম অ্যান্ড্রয়েড ওএস স্প্ল্যাশ স্ক্রিন)।

শ্রেণী

বিষয়শ্রেণীর.

Enums
unspecifiedCategory ডিফল্ট অনির্দিষ্ট বিভাগ। ব্যবহার করবেন না. শুধুমাত্র সংস্করণের জন্য।
common সমস্যাটি একটি নির্দিষ্ট পরীক্ষার ধরণের জন্য নির্দিষ্ট নয় (যেমন, একটি নেটিভ ক্র্যাশ)।
robo সমস্যাটি 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

প্রতিটি ধাপে দেওয়া অনন্য int. 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

প্রতিটি ধাপে দেওয়া অনন্য int. 0 (অন্তর্ভুক্ত) থেকে ধাপের মোট সংখ্যা (এক্সক্লুসিভ) পর্যন্ত। প্রাথমিক ধাপ হল 0।

runDuration

object ( Duration )

এই পদক্ষেপটি চালানোর জন্য কতক্ষণ লেগেছিল।

পদ্ধতি

accessibilityClusters

একটি প্রদত্ত পদক্ষেপের জন্য অ্যাক্সেসিবিলিটি ক্লাস্টারগুলি তালিকাভুক্ত করে৷

নিম্নলিখিত ক্যানোনিকাল ত্রুটি কোডগুলির যেকোনটি ফেরত দিতে পারে:

  • PERMISSION_DENIED - যদি ব্যবহারকারী প্রকল্প পড়ার জন্য অনুমোদিত না হয়
  • INVALID_ARGUMENT - যদি অনুরোধটি ত্রুটিপূর্ণ হয়
  • FAILED_PRECONDITION - অনুরোধে একটি যুক্তি যদি অবৈধ হয়; যেমন

create

একটি ধাপ তৈরি করে।

get

একটি ধাপ পায়.

getPerfMetricsSummary

একটি PerfMetrics Summary পুনরুদ্ধার করে।

list

একটি প্রদত্ত এক্সিকিউশনের জন্য ধাপগুলি তালিকাভুক্ত করুন।

patch

সরবরাহকৃত আংশিক সত্তার সাথে একটি বিদ্যমান ধাপ আপডেট করে।

publishXunitXmlFiles

একটি বিদ্যমান ধাপে xml ফাইল প্রকাশ করুন।