এই নথিটি গঠন, ক্ষমতা, ব্যবহার, রেকর্ডিং এবং অ্যাকশন সহ Robo স্ক্রিপ্ট সম্পর্কে রেফারেন্স তথ্য প্রদান করে। রোবো স্ক্রিপ্টগুলি এমন পরীক্ষা যা মোবাইল অ্যাপের জন্য ম্যানুয়াল কোয়ালিটি অ্যাসুরেন্স (QA) কাজগুলিকে স্বয়ংক্রিয় করে এবং ক্রমাগত ইন্টিগ্রেশন (CI) এবং প্রি-লঞ্চ টেস্টিং কৌশলগুলি সক্ষম করে৷ একটি রোবো স্ক্রিপ্ট হল একটি JSON ফাইল যা ইউজার ইন্টারফেস (UI) এবং অন্যান্য ক্রিয়াগুলির একটি ক্রম বর্ণনা করে।
আপনি নিম্নলিখিত উপায়ে একটি রোবো স্ক্রিপ্ট তৈরি করতে পারেন:
- Robo স্ক্রিপ্ট রেকর্ডিং বৈশিষ্ট্য ব্যবহার করুন.
- ম্যানুয়ালি রোবো স্ক্রিপ্ট তৈরি করুন।
- Robo স্ক্রিপ্ট রেকর্ড করুন এবং তারপর ম্যানুয়ালি সম্পাদনা করুন।
রোবো স্ক্রিপ্ট ব্যবহার সম্পর্কে আরও জানতে, একটি রোবো স্ক্রিপ্ট চালান দেখুন।
অ্যাপ-আন্ডার-টেস্ট অ্যান্ড্রয়েড অ্যাপ্লিকেশন প্যাকেজ (এপিকে) এর মতো অন্যান্য ইনপুটগুলির পাশাপাশি রোবো স্ক্রিপ্টটি রোবো টেস্টে সরবরাহ করা হয়।
নিম্নলিখিত একটি রোবো স্ক্রিপ্টের একটি উদাহরণ যা একজন ব্যবহারকারীকে একটি অ্যাপে স্বাক্ষর করে:
[
{
"eventType": "VIEW_TEXT_CHANGED",
"replacementText": "user123",
"elementDescriptors": [
{
"resourceId": "my.app.package:id/username"
}
]
},
{
"eventType": "VIEW_TEXT_CHANGED",
"replacementText": "12345",
"elementDescriptors": [
{
"resourceId": "my.app.package:id/password"
}
]
},
{
"eventType": "VIEW_CLICKED",
"elementDescriptors": [
{
"resourceId": "my.app.package:id/login"
}
]
}
]
গঠন
রোবো স্ক্রিপ্টের প্রতিটি ক্রিয়াকে এক বা একাধিক অ্যাট্রিবিউট-মান জোড়ার বান্ডিল হিসাবে উপস্থাপন করা হয়, যা নিম্নলিখিত সারণীতে বর্ণনা করা হয়েছে:
বৈশিষ্ট্য | বর্ণনা |
eventType | অ্যাকশনের ধরন নির্দিষ্ট করে, যেমন, ক্লিক, টেক্সট এডিট ইত্যাদি। প্রতিটি অ্যাকশনের জন্য প্রয়োজনীয়। |
elementDescriptors | বর্ণনাকারী যা একটি UI উইজেট সনাক্ত করে। একটি নির্দিষ্ট বোতামে ক্লিক করার মতো একটি টার্গেট UI উইজেট আছে এমন সমস্ত অ্যাকশনের জন্য প্রয়োজনীয়৷ |
optional | যদি true তে সেট করা হয়, এই ক্রিয়াটি বাদ দেওয়া হয় যখন এটি সম্পাদন করা যায় না। উদাহরণস্বরূপ, এই ক্রিয়াটি বাদ দেওয়া হয় যখন এটি একটি স্ক্রিনে এর লক্ষ্য UI উইজেটটি খুঁজে পায় না– এতে থাকা Robo স্ক্রিপ্টটি ব্যর্থ না করে৷ ডিফল্টরূপে, মান false । |
replacementText | লক্ষ্য UI উইজেটে ইনপুট করার জন্য পাঠ্য। পাঠ্য সম্পাদনা কর্মের জন্য প্রয়োজনীয়। |
swipeDirection | সোয়াইপের দিক নির্দেশ করে। সোয়াইপ অ্যাকশনের জন্য প্রয়োজন। |
delayTime | মিলিসেকেন্ডে কতক্ষণ অপেক্ষা করতে হবে তা নির্দিষ্ট করে। অপেক্ষা কর্মের জন্য প্রয়োজন. |
pointTapXCoordinate এবং pointTapYCoordinate | ট্যাপ করা পয়েন্টের পিক্সেল X এবং Y স্থানাঙ্ক। pointTapXPercent এবং pointTapYPercent সহ পারস্পরিকভাবে একচেটিয়া। পয়েন্ট ট্যাপ অ্যাকশনের জন্য প্রয়োজন। |
pointTapXPercent এবং pointTapYPercent | ট্যাপ করা পয়েন্টের শতকরা X এবং Y স্থানাঙ্ক। pointTapXCoordinate এবং pointTapYCoordinate এর সাথে পারস্পরিকভাবে একচেটিয়া। পয়েন্ট ট্যাপ অ্যাকশনের জন্য প্রয়োজন। |
নিম্নলিখিতটি লক্ষ্য UI উইজেট ছাড়া দুটি ক্রিয়া সহ একটি রোবো স্ক্রিপ্টের একটি উদাহরণ, যার অর্থ এই ক্রিয়াগুলি একটি নির্দিষ্ট UI উইজেটে কাজ করে না:
[
{
"eventType": "DELAYED_MESSAGE_POSTED",
"delayTime": 3000
},
{
"eventType": "PRESSED_BACK"
}
]
উপাদান বর্ণনাকারী
একটি উপাদান বর্ণনাকারী নিম্নলিখিত সনাক্তকারী বৈশিষ্ট্যগুলির একটি বা একাধিক ব্যবহার করে একটি UI উইজেট সনাক্ত করে:
বৈশিষ্ট্য | বর্ণনা |
className | - |
ancestorClassName | উপাদানটির UI অনুক্রমের পূর্বপুরুষের শ্রেণির নাম। একটি পূর্বপুরুষ হল উপাদানের UI অনুক্রমের যেকোনও প্যারেন্ট নোড, যার মধ্যে উপাদানটিও রয়েছে। |
resourceId | - |
resourceIdRegex | জাভা রেগুলার এক্সপ্রেশন resourceId মেলে। |
contentDescription | - |
contentDescriptionRegex | জাভা রেগুলার এক্সপ্রেশন contentDescription সাথে মেলে। |
text (যা পর্দায় প্রদর্শিত হয়) | - |
textRegex | জাভা রেগুলার এক্সপ্রেশন text মেলে। |
groupViewChildPosition , recyclerViewChildPosition , or adapterViewChildPosition | একটি UI উইজেটের চাইল্ড পজিশন এর প্যারেন্ট উইজেটের ধরনের উপর নির্ভর করে। |
প্রায়শই, এই বৈশিষ্ট্যগুলি অনির্ধারিত থাকে, উদাহরণস্বরূপ, একটি বোতামে পাঠ্য এবং বিষয়বস্তুর বিবরণ নাও থাকতে পারে। কিছু অ্যাট্রিবিউট মান উপস্থিত থাকলেও, সেগুলি প্রদত্ত অ্যাপ স্ক্রিনে অনন্য নাও হতে পারে ( resourceId
সহ)।
উদাহরণস্বরূপ, একটি তালিকার আইটেমগুলির মধ্যে পার্থক্য করা সাধারণত শুধুমাত্র তাদের পিতামাতার উইজেটের মধ্যে তাদের বিভিন্ন সন্তানের অবস্থান ব্যবহার করেই সম্ভব। এর মানে হল যে একটি UI উইজেট সনাক্ত করতে শুধুমাত্র একটি উপাদান বর্ণনাকারী ব্যবহার করা সাধারণত অপর্যাপ্ত। তাই, একটি অ্যাকশনের এলিমেন্ট elementDescriptors
অ্যাট্রিবিউটে এলিমেন্ট বর্ণনাকারীর একটি ক্রম থাকে যেগুলি এমনভাবে সাজানো হয় যে প্রথমটি টার্গেট UI উইজেটের সাথে মিলে যায়, দ্বিতীয়টি টার্গেট UI উইজেটের প্যারেন্ট উইজেটের সাথে মিলে যায় এবং আরও অনেক কিছু। একটি অ্যাকশনের টার্গেট UI উইজেট মিলে যায় যখন এর সমস্ত উপাদান বর্ণনাকারী সংশ্লিষ্ট UI উইজেট সাব-হায়ারার্কির সাথে মেলে।
নিম্নলিখিতটি টেক্সট পরিবর্তন এবং ক্লিক অ্যাকশন সহ একটি রোবো স্ক্রিপ্টের একটি উদাহরণ, যে দুটিরই আপনাকে প্রদত্ত উপাদান বর্ণনাকারী ব্যবহার করে লক্ষ্য UI উইজেট সনাক্ত করতে হবে:
[
{
"eventType": "VIEW_TEXT_CHANGED",
"replacementText": "John",
"elementDescriptors": [
{
"className": "android.support.v7.widget.AppCompatEditText",
"groupViewChildPosition": 0,
"resourceId": "com.google.samples.apps.topeka:id/first_name"
},
{
"className": "android.widget.FrameLayout",
"groupViewChildPosition": 0
},
{
"className": "android.support.design.widget.TextInputLayout",
"groupViewChildPosition": 1
}
]
},
{
"eventType": "VIEW_CLICKED",
"elementDescriptors": [
{
"className": "android.support.design.widget.FloatingActionButton",
"groupViewChildPosition": 1,
"resourceId": "com.google.samples.apps.topeka:id/done"
},
{
"className": "android.widget.FrameLayout",
"groupViewChildPosition": 1,
"resourceId": "com.google.samples.apps.topeka:id/content"
},
{
"className": "android.widget.FrameLayout",
"groupViewChildPosition": 0,
"resourceId": "com.google.samples.apps.topeka:id/sign_in_content"
}
]
}
]
এক্সিকিউশন অপশন
আপনি ঐচ্ছিকভাবে একটি Robo স্ক্রিপ্টে একটি JSON অবজেক্টের সাথে অ্যাকশনের তালিকা প্রিফিক্স করতে পারেন যা সেই Robo স্ক্রিপ্টের জন্য এক্সিকিউশন বিকল্পগুলি নির্দিষ্ট করে৷ এই কনফিগারেশন roboscript
কীওয়ার্ড দিয়ে শুরু হয় এবং তারপরে পছন্দসই এক্সিকিউশন বিকল্পগুলির একটি JSON প্রতিনিধিত্ব করে।
রোবো স্ক্রিপ্টগুলি নিম্নলিখিত এক্সিকিউশন বিকল্পগুলিকে সমর্থন করে:
-
executionMode
- যখন একটি Robo স্ক্রিপ্ট চলছে তখন এক্সিকিউশন অপশন প্রয়োগ করা হয়:-
strict
-true
হিসাবে সেট করা হলে, রোবো স্ক্রিপ্ট আংশিক মিল, বর্তমান ক্রিয়া এড়িয়ে যাওয়া এবং সাসপেনশন নিয়োগ করে না। অর্থাৎ, রোবো স্ক্রিপ্ট একটি নিয়মিত ইন্সট্রুমেন্টেশন পরীক্ষা হিসাবে সম্পাদিত হয় এবং এর যেকোন ক্রিয়া সম্পাদন না করা মাত্রই ব্যর্থ হয়।
-
-
postscript
- একটি রোবো স্ক্রিপ্ট সম্পূর্ণ হওয়ার পরে প্রয়োগ করার বিকল্পগুলি:-
terminate
-true
সেট করা হলে, রোবো স্ক্রিপ্ট সম্পূর্ণ হওয়ার পরে রোবো পরীক্ষা ক্রল করা বন্ধ করে দেয়।
-
নিম্নোক্ত রোবো স্ক্রিপ্টের একটি উদাহরণ যা strict
মোডে কার্যকর করা হয় যা তিন সেকেন্ডের জন্য ঘুমায়, যার পরে ক্রল বন্ধ হয়ে যায়:
"roboscript": {
"executionMode": {
"strict": true
},
"postscript": {
"terminate": true
}
}
[
{
"eventType": "DELAYED_MESSAGE_POSTED",
"delayTime": 3000
}
]
টেমপ্লেট পরামিতি
একটি টেমপ্লেট প্যারামিটার হল একটি রোবো স্ক্রিপ্টের একটি স্থানধারক যা বাস্তব মানের সাথে প্রতিস্থাপিত হয় যখন রোবো পরীক্ষা কার্যকর করার জন্য সেই রোবো স্ক্রিপ্টটি লোড করে। টেমপ্লেট পরামিতিগুলি একটি ডবল আন্ডারস্কোর দ্বারা একটি শতাংশ চিহ্ন দ্বারা অনুসরণ করা হয় এবং একটি শতাংশ চিহ্নের সাথে একটি ডবল আন্ডারস্কোর দ্বারা অনুসরণ করা হয়।
Robo স্ক্রিপ্ট নিম্নলিখিত টেমপ্লেট প্যারামিটার সমর্থন করে:
-
__%APP_PACKAGE_NAME%__
- অ্যাপ-আন্ডার-টেস্টের প্যাকেজের নাম।
নিম্নলিখিতটি একটি রোবো স্ক্রিপ্টের উদাহরণ যা অ্যাপ-আন্ডার-টেস্ট প্রক্রিয়া বন্ধ করে দেয়:
[
{
"eventType": "ADB_SHELL_COMMAND",
"command": "am force-stop __%APP_PACKAGE_NAME%__"
}
]
মন্তব্য
একটি রোবো স্ক্রিপ্টে মন্তব্য লাইন থাকতে পারে, যেটি লাইনগুলি #
বা //
দিয়ে শুরু হয়।
নীচে কয়েকটি মন্তব্য সহ একটি রোবো স্ক্রিপ্টের একটি উদাহরণ:
# Confirm a user account.
[
{
// Click the DONE button.
"eventType": "VIEW_CLICKED",
"elementDescriptors": [
{
"resourceId": "com.google.samples.apps.topeka:id/done"
}
]
}
]
ক্ষমতা
ডিফল্টরূপে, যতক্ষণ না একটি রোবো স্ক্রিপ্টের সমস্ত ক্রিয়া সম্পন্ন হয় (বা অন্তত চেষ্টা করা হয়), রোবো স্ক্রিপ্ট সক্রিয় থাকে। যখনই এটি সম্পাদনের জন্য একটি ক্রিয়া বাছাই করে তখনই রোবো টেস্ট একটি রোবো স্ক্রিপ্ট অ্যাকশনের সাথে মেলানোর চেষ্টা করে। রোবো স্ক্রিপ্ট দৃঢ়তা বাড়ানোর জন্য নিম্নলিখিত কৌশলগুলি নিয়োগ করে:
প্রযুক্তি | বর্ণনা |
আংশিক মিল | যদি বর্তমান রোবো স্ক্রিপ্ট অ্যাকশনটি সম্পূর্ণরূপে মেলে না, তাহলে মিলের মানদণ্ড শিথিল করা হয় এবং ম্যাচিং পুনরায় চেষ্টা করা হয়। রোবো স্ক্রিপ্ট অ্যাকশনের টার্গেট UI উইজেটের সাথে মেলানোর সময় আংশিক ম্যাচিংটি বাইরেরতম উপাদান বর্ণনাকারীকে বিবেচনা করে না। আংশিক ম্যাচিং সফল হলে, সংশ্লিষ্ট রোবো স্ক্রিপ্ট অ্যাকশন যথারীতি সঞ্চালিত হয়। এই কৌশলটি এমন পরিস্থিতিতে সমর্থন করে যেখানে অ্যাপের কাঠামো পরিবর্তন হয়, উদাহরণস্বরূপ, অ্যাপ সংস্করণগুলির মধ্যে, যখন স্ক্রীন উপাদানগুলিকে পুনরায় সাজানো হয়। |
বর্তমান কর্ম এড়িয়ে যান | যদি বর্তমান রোবো স্ক্রিপ্ট অ্যাকশনটি সম্পূর্ণ বা আংশিকভাবে মেলে না, তাহলে রোবো পরবর্তী রোবো স্ক্রিপ্ট অ্যাকশনের সাথে মেলানোর চেষ্টা করে। যদি পরবর্তী অ্যাকশনটি সম্পূর্ণ বা আংশিকভাবে মেলে, তাহলে রোবো টেস্ট বর্তমান রোবো স্ক্রিপ্ট অ্যাকশনটি এড়িয়ে যায় (এবং কখনই ফিরে আসে না) এবং পরবর্তীটি সম্পাদন করে। এই কৌশলটি এমন পরিস্থিতিতে সমর্থন করে যখন অ্যাপের আচরণ সংস্করণগুলির মধ্যে পরিবর্তিত হয় বা ফ্লেকি হয়, উদাহরণস্বরূপ, যখন একটি রোবো স্ক্রিপ্টের রিপ্লে করার বিপরীতে রেকর্ডিংয়ের সময় বিভিন্ন স্ক্রিনে একটি বিরতিমূলক ডায়ালগ উপস্থিত হতে পারে। |
সাসপেন্ড | যদি বর্তমান বা পরবর্তী রোবো স্ক্রিপ্ট ক্রিয়াগুলি সম্পূর্ণ বা আংশিকভাবে মেলে না, তবে রোবো স্ক্রিপ্ট সাময়িকভাবে স্থগিত করা হয় এবং রোবো পরীক্ষা তার অন্যান্য কৌশলগুলি ব্যবহার করে সম্পাদন করার জন্য একটি ক্রিয়া বেছে নেয়। এই ক্রিয়াটি সম্পন্ন হওয়ার পরে, রোবো পরীক্ষা পুনরায় শুরু করে রোবো স্ক্রিপ্ট চালানো। যতক্ষণ না বর্তমান বা পরবর্তী রোবো স্ক্রিপ্ট অ্যাকশনগুলি মেলে না, রোবো স্ক্রিপ্ট যে কোনও সংখ্যক অ্যাকশনের জন্য স্থগিত থাকবে। এইভাবে, রোবো স্ক্রিপ্টগুলিকে রোবো পরীক্ষার জন্য একটি প্রস্তাবনা হওয়ার প্রয়োজন নেই এবং আপনি রোবো স্ক্রিপ্টের ক্রিয়াগুলিকে স্ট্যান্ডার্ড রোবো পরীক্ষার ক্রিয়াগুলির সাথে ছেদ করতে পারেন৷ এই কৌশলটি এমন পরিস্থিতিতে সমর্থন করে যখন অ্যাপের আচরণ অস্পষ্ট হয়, অথবা যখন অ্যাপের সংস্করণগুলির মধ্যে পরিবর্তনগুলি যথেষ্ট বড় হয় যে রোবো পরীক্ষাকে তার আদর্শ ক্রিয়াগুলির সাথে "শূন্যস্থান পূরণ" করতে হবে। |
RecyclerView এবং AdapterView সমর্থন
RecyclerView এবং AdapterView উইজেটগুলির শিশুগুলি গতিশীলভাবে লোড হয় এবং বর্তমান স্ক্রীন থেকে অনেক সোয়াইপ দূরে প্রদর্শিত হতে পারে৷ যেহেতু একটি স্ক্রিনের আকার, এবং এই সন্তানের কাছে যাওয়ার জন্য প্রয়োজনীয় সোয়াইপের সংখ্যা, বিভিন্ন ডিভাইস ফর্ম ফ্যাক্টরের জন্য আলাদা, তাই সন্তানের ডেটা অবস্থানের উপর নির্ভর করা অনেক বেশি শক্তিশালী, যা সম্পূর্ণ। এই শিশুটিকে স্ক্রিনে আনতে এবং তারপরে এর স্ক্রীন অবস্থান ব্যবহার করার জন্য প্রয়োজনীয় সোয়াইপের সংখ্যার উপর নির্ভর করা এটি একটি কম শক্তিশালী পদ্ধতি।
তাই, Robo স্ক্রিপ্ট RecyclerView শিশুদের নিখুঁত ডেটা অবস্থানগুলি ক্যাপচার করে যেগুলি recyclerViewChildPosition
হিসাবে Robo স্ক্রিপ্ট অ্যাকশনের লক্ষ্য। রোবো স্ক্রিপ্ট অ্যাডাপ্টারভিউ বাচ্চাদের নিখুঁত ডেটা অবস্থানগুলিও ক্যাপচার করে যা অ্যাডাপ্টারভিউচাইল্ডপজিশন হিসাবে adapterViewChildPosition
স্ক্রিপ্ট অ্যাকশনের লক্ষ্য।
RecyclerView এবং AdapterView শিশুদের উপর ক্রিয়াকলাপ নিম্নলিখিত ধাপে সঞ্চালিত হয়:
রোবো পরীক্ষা নিশ্চিত করে যে সংশ্লিষ্ট শিশুটি রিসাইক্লারভিউ বা অ্যাডাপ্টারভিউ ধারণকারী পজিশনিং অ্যাকশনের মাধ্যমে স্ক্রিনে প্রদর্শিত হবে।
রোবো টেস্ট সরাসরি চাইল্ড এলিমেন্টে রেকর্ড করা ক্রিয়া সম্পাদন করে, যেহেতু এটি ইতিমধ্যেই স্ক্রিনে প্রদর্শিত হয়েছে।
নিম্নলিখিতটি একটি অ্যাডাপ্টারভিউ ( android.widget.GridView
) শিশুর উপর ক্লিক অ্যাকশনের একটি উদাহরণ:
{
"eventType": "VIEW_CLICKED",
"elementDescriptors": [
{
"className": "com.google.samples.apps.topeka.widget.AvatarView",
"adapterViewChildPosition": 5,
"resourceId": "com.google.samples.apps.topeka:id/avatar",
"contentDescription": "Avatar 6"
},
{
"className": "android.widget.GridView",
"groupViewChildPosition": 1,
"resourceId": "com.google.samples.apps.topeka:id/avatars"
},
{
"className": "android.widget.LinearLayout",
"groupViewChildPosition": 1
},
{
"className": "android.widget.LinearLayout",
"groupViewChildPosition": 0
}
]
}
নিম্নলিখিতটি একটি RecyclerView ( android.support.v7.widget.RecyclerView
) শিশুর উপর ক্লিক অ্যাকশনের একটি উদাহরণ:
{
"eventType": "VIEW_CLICKED",
"elementDescriptors": [
{
"className": "android.support.v7.widget.AppCompatTextView",
"groupViewChildPosition": 1,
"resourceId": "com.google.samples.apps.topeka:id/category_title"
},
{
"className": "android.widget.FrameLayout",
"recyclerViewChildPosition": 8,
"resourceId": "com.google.samples.apps.topeka:id/category_item"
},
{
"className": "android.support.v7.widget.RecyclerView",
"groupViewChildPosition": 1,
"resourceId": "com.google.samples.apps.topeka:id/categories"
},
{
"className": "android.widget.FrameLayout",
"groupViewChildPosition": 1,
"resourceId": "com.google.samples.apps.topeka:id/category_container"
},
{
"className": "android.widget.LinearLayout",
"groupViewChildPosition": 0
}
]
}
অ্যান্ড্রয়েড স্টুডিওতে একটি রোবো স্ক্রিপ্ট রেকর্ড করুন এবং এটি পরীক্ষা ল্যাবে চালান
আপনি অ্যান্ড্রয়েড স্টুডিওতে একটি রোবো স্ক্রিপ্ট তৈরি করতে পারেন, যা স্ক্রিপ্টটিকে একটি JSON ফাইল হিসাবে সংরক্ষণ করে। তারপরে আপনি অ্যাপ্লিকেশন সহ Firebase টেস্ট ল্যাবে JSON ফাইল আপলোড করতে পারেন এবং সেই অনুযায়ী পরীক্ষা চালাতে পারেন।
আপনি যখন একটি স্ক্রিপ্ট সংযুক্ত করে একটি রোবো পরীক্ষা চালান, তখন রোবো পরীক্ষাটি প্রথমে আপনার প্রাক-স্ক্রিপ্ট করা ক্রিয়াগুলির মাধ্যমে পদক্ষেপ নেয় এবং তারপরে যথারীতি অ্যাপটি অন্বেষণ করে।
অ্যান্ড্রয়েড স্টুডিওতে একটি রোবো স্ক্রিপ্ট JSON ফাইল তৈরি করতে, অ্যান্ড্রয়েড স্টুডিওতে টেস্ট ল্যাব ব্যবহার করে একটি রোবো স্ক্রিপ্ট রেকর্ড করার ধাপগুলি অনুসরণ করুন।
রোবো স্ক্রিপ্ট অ্যাকশন
নিম্নলিখিত সাধারণ ঐচ্ছিক বৈশিষ্ট্য সমস্ত কর্মের জন্য প্রযোজ্য:
-
description
- রোবো টেস্ট আউটপুটগুলিতে এই রোবো স্ক্রিপ্ট অ্যাকশনের ট্র্যাক সম্পাদনে সহায়তা করে।
দাবী
যদি দাবি করা শর্তটি সত্য হয়, তাহলে রোবো স্ক্রিপ্ট পরবর্তী ক্রিয়ায় চলতে থাকে, যা অন্য দাবি হতে পারে। অন্যথায়, একটি ব্যর্থ দাবির কারণে রোবো স্ক্রিপ্ট কার্যকর করা বন্ধ করা হয়েছে এবং পরীক্ষার ফলাফল ব্যর্থ হয়েছে।
নিম্নলিখিত সারণী প্রয়োজনীয় বৈশিষ্ট্যগুলি তালিকাভুক্ত করে:
বৈশিষ্ট্য | বর্ণনা |
"eventType": "ASSERTION" | -- |
contextDescriptor | দাবিকৃত প্রসঙ্গ বা শর্ত বর্ণনা করে। |
প্রসঙ্গ বর্ণনাকারী
একটি প্রসঙ্গ বর্ণনাকারী নিম্নলিখিত বৈশিষ্ট্যগুলির একটি বা একটি সংমিশ্রণ ব্যবহার করে প্রসঙ্গ/শর্ত সংজ্ঞায়িত করে:
বৈশিষ্ট্য | বর্ণনা |
---|---|
"condition": "element_present" | চেক করে যে একটি UI উইজেট যা উপাদান visionText elementDescriptors নির্দিষ্ট করা পাঠ্য স্ক্রিনে উপস্থিত রয়েছে। |
"condition": "element_disabled" | চেক করে যে একটি UI উইজেট যা elementDescriptors এর সাথে মেলে তা স্ক্রিনে উপস্থিত রয়েছে এবং এর সাথে ইন্টারঅ্যাক্ট করা যাবে না। |
"condition": "element_checked" | চেক করে যে একটি UI উইজেট যা elementDescriptors এর সাথে মেলে সেটি স্ক্রিনে উপস্থিত আছে এবং চেক করা হয়েছে। |
"condition": "app_under_test_shown" | ফোরগ্রাউন্ডে অ্যাপ-আন্ডার-টেস্ট চলছে কিনা তা পরীক্ষা করে। |
"condition": "default_launcher_shown" | একটি ডিভাইসের হোম স্ক্রীন দেখানো হয়েছে কিনা তা পরীক্ষা করে, যার অর্থ হল কোন অ্যাপ ফোরগ্রাউন্ডে চলছে না। |
"condition": "non_roboscript_action_performed" | Robo পরীক্ষার দ্বারা সম্পাদিত শেষ অ্যাকশনটি একটি Robo স্ক্রিপ্ট অ্যাকশন নয় তা পরীক্ষা করে। |
negateCondition | true হিসাবে সেট করা হলে, condition অস্বীকার করে। উদাহরণস্বরূপ, একটি UI উইজেট স্ক্রিনে উপস্থিত নেই কিনা বা অ্যাপ-আন্ডার-টেস্টটি ফোরগ্রাউন্ডে চলছে না কিনা তা পরীক্ষা করতে আপনি এই বৈশিষ্ট্যটি ব্যবহার করতে পারেন। |
elementDescriptors | এক বা একাধিক উপাদান বর্ণনাকারী যা স্ক্রিনে একটি UI উইজেট সনাক্ত করে। এটি element_present , element_disabled এবং element_checked অবস্থার সাথে একত্রে ব্যবহৃত হয়। visionText সাথে পারস্পরিক একচেটিয়া। আরও তথ্যের জন্য, উপাদান বর্ণনাকারী দেখুন। |
visionText | অপটিক্যাল ক্যারেক্টার রিকগনিশন (OCR) API ব্যবহার করে স্ক্রিনে টেক্সট শনাক্ত করা হয়। visionText element_present অবস্থার সাথে একত্রে ব্যবহৃত হয়। elementDescriptors সাথে পারস্পরিকভাবে একচেটিয়া। |
নিম্নলিখিতটি একটি রোবো স্ক্রিপ্টের দাবির উদাহরণ যা পরীক্ষা করে যে অ্যাপ-আন্ডার-টেস্ট অগ্রভাগে রয়েছে:
{
"eventType": "ASSERTION",
"contextDescriptor": {
"condition": "app_under_test_shown"
}
}
নিম্নলিখিতটি একটি রোবো স্ক্রিপ্ট দাবির একটি উদাহরণ যা পরীক্ষা করে যে রিসোর্স আইডি "com.google.samples.apps.topeka:id/done"
সহ একটি UI উইজেট একটি স্ক্রিনে উপস্থিত রয়েছে:
{
"eventType": "ASSERTION",
"contextDescriptor": {
"condition": "element_present",
"elementDescriptors": [
{
"resourceId": "com.google.samples.apps.topeka:id/done"
}
]
}
}
নিম্নলিখিতটি একটি রোবো স্ক্রিপ্ট দাবীর উদাহরণ যা পরীক্ষা করে যে OCR ব্যবহার করে একটি স্ক্রিনে "Settings"
সনাক্ত করা হয়নি:
{
"eventType": "ASSERTION",
"contextDescriptor": {
"condition": "element_present",
"negateCondition": true,
"visionText": "Settings"
}
}
ক্লিক
নিম্নলিখিত সারণী প্রয়োজনীয় বৈশিষ্ট্যগুলি তালিকাভুক্ত করে:
বৈশিষ্ট্য | বর্ণনা |
---|---|
eventType | রোবো স্ক্রিপ্ট অ্যাকশনের ধরন নির্দিষ্ট করে। |
"eventType": "VIEW_CLICKED" | অ্যাপ-আন্ডার-টেস্টের টার্গেট এলিমেন্টে ক্লিক করে। |
"eventType": "SOFT_KEYBOARD_CLICK" | সফট কীবোর্ডের টার্গেট এলিমেন্টে ক্লিক করে। |
"eventType": "SOFT_KEYBOARD_RANDOM_CLICK" | maxNumberOfRuns বার পর্যন্ত নরম কীবোর্ডের এলোমেলো উপাদানগুলিতে ক্লিক করে। |
"eventType": "LIST_ITEM_CLICKED" | তালিকা আইটেম ক্লিক করার জন্য অ্যান্ড্রয়েড স্টুডিওতে রোবো স্ক্রিপ্ট রেকর্ডার দ্বারা ব্যবহৃত। |
elementDescriptors | Android UI অনুক্রম ব্যবহার করে ক্লিক করা UI উইজেট সনাক্ত করে। visionText সাথে পারস্পরিক একচেটিয়া। |
visionText | OCR ব্যবহার করে ক্লিক করা উপাদান সনাক্ত করে। elementDescriptors সাথে পারস্পরিকভাবে একচেটিয়া। |
maxNumberOfRuns | যখন eventType হয় তখন সফ্ট কীবোর্ডের একটি এলোমেলো উপাদানে কতবার ক্লিক করতে হবে তা SOFT_KEYBOARD_RANDOM_CLICK করে। ডিফল্ট মান হল 1 । |
নিম্নলিখিতটি একটি রোবো স্ক্রিপ্ট অ্যাকশনের একটি উদাহরণ যা রিসোর্স আইডি "com.google.samples.apps.topeka:id/done"
সহ একটি বোতামে ক্লিক করে :
{
"eventType": "VIEW_CLICKED",
"elementDescriptors": [
{
"resourceId": "com.google.samples.apps.topeka:id/done"
}
]
}
নিচে একটি রোবো স্ক্রিপ্ট অ্যাকশনের একটি উদাহরণ যা OCR ব্যবহার করে স্ক্রিনে সনাক্ত করা "Privacy Policy"
-তে ক্লিক করে:
{
"eventType": "VIEW_CLICKED",
"visionText": "Privacy Policy"
}
নিম্নলিখিত একটি রোবো স্ক্রিপ্ট অ্যাকশনের একটি উদাহরণ যা একটি বিষয়বস্তুর বিবরণ "Emoji button"
সহ একটি নরম কীবোর্ড উপাদানে ক্লিক করে:
{
"eventType": "SOFT_KEYBOARD_CLICK",
"elementDescriptors": [
{
"contentDescription": "Emoji button"
}
]
}
নিম্নলিখিতটি একটি রোবো স্ক্রিপ্ট অ্যাকশনের একটি উদাহরণ যা র্যান্ডম সফট কীবোর্ড উপাদানগুলিকে পাঁচ বার পর্যন্ত ক্লিক করে:
{
"eventType": "SOFT_KEYBOARD_RANDOM_CLICK",
"maxNumberOfRuns": 5
}
নরম কীবোর্ড অক্ষম করুন
নিম্নলিখিত সারণী প্রয়োজনীয় বৈশিষ্ট্যগুলি তালিকাভুক্ত করে:
বৈশিষ্ট্য | বর্ণনা |
"eventType": "DISABLE_KEYBOARD" | -- |
নীচে একটি রোবো স্ক্রিপ্ট অ্যাকশনের একটি উদাহরণ যা নরম কীবোর্ডকে নিষ্ক্রিয় করে:
{
"eventType": "DISABLE_KEYBOARD"
}
adb শেল কমান্ড চালান
নিম্নলিখিত সারণী প্রয়োজনীয় বৈশিষ্ট্যগুলি তালিকাভুক্ত করে:
বৈশিষ্ট্য | বর্ণনা |
"eventType": "ADB_SHELL_COMMAND" | -- |
command | অ্যান্ড্রয়েড ডিবাগ ব্রিজ (এডিবি) শেল কমান্ড কার্যকর করতে। |
নিম্নলিখিতটি একটি রোবো স্ক্রিপ্ট অ্যাকশনের একটি উদাহরণ যা অ্যাপ-আন্ডার-টেস্ট ব্যবহারকারী ডেটা সাফ করে:
{
"eventType": "ADB_SHELL_COMMAND",
"command": "pm clear __%APP_PACKAGE_NAME%__"
}
অনুমতি দিন
এসপ্রেসো টেস্ট রেকর্ডারের সাথে ব্যাকওয়ার্ড সামঞ্জস্যের জন্য এই অ্যাকশনটি অ্যান্ড্রয়েড স্টুডিওতে রোবো স্ক্রিপ্ট রেকর্ডার দ্বারা রেকর্ড করা হয়েছে। রোবো পরীক্ষা প্রতিটি ক্রলের শুরুতে অ্যাপ-আন্ডার-টেস্টের সমস্ত অনুমতি দেয় এবং এইভাবে, এই ক্রিয়াটি নো-অপ। আপনার রোবো স্ক্রিপ্টে এই ক্রিয়াটি ব্যবহার করবেন না।
নিম্নলিখিত সারণী প্রয়োজনীয় বৈশিষ্ট্যগুলি তালিকাভুক্ত করে:
বৈশিষ্ট্য | বর্ণনা |
"eventType": "PERMISSIONS_REQUEST" | -- |
ইনপুট পাঠ্য
নিম্নলিখিত সারণী প্রয়োজনীয় বৈশিষ্ট্যগুলি তালিকাভুক্ত করে:
বৈশিষ্ট্য | বর্ণনা |
---|---|
eventType | রোবো স্ক্রিপ্ট অ্যাকশনের ধরন নির্দিষ্ট করে। |
"eventType": "VIEW_TEXT_CHANGED" | টার্গেট UI উইজেটে প্রদত্ত টেক্সট ইনপুট করে। |
"eventType": "ENTER_TEXT" | প্রদত্ত টেক্সটটিকে টার্গেট UI উইজেটে ইনপুট করে এবং তারপর এই UI উইজেটে একটি KEYCODE_ENTER ইভেন্ট পাঠায়। |
elementDescriptors | Android UI অনুক্রম ব্যবহার করে লক্ষ্য UI উইজেট সনাক্ত করে। |
replacementText | লক্ষ্য UI উইজেটে ইনপুট করার জন্য পাঠ্য। |
নিম্নলিখিতটি একটি রোবো স্ক্রিপ্ট অ্যাকশনের একটি উদাহরণ যা রিসোর্স আইডি "com.google.samples.apps.topeka:id/first_name"
সহ একটি UI উইজেটে "John"
ইনপুট করে :
{
"eventType": "VIEW_TEXT_CHANGED",
"replacementText": "John",
"elementDescriptors": [
{
"resourceId": "com.google.samples.apps.topeka:id/first_name"
}
]
}
দীর্ঘ ক্লিক
নিম্নলিখিত সারণী প্রয়োজনীয় বৈশিষ্ট্যগুলি তালিকাভুক্ত করে:
বৈশিষ্ট্য | বর্ণনা |
"eventType": "VIEW_LONG_CLICKED" | -- |
elementDescriptors | Android UI অনুক্রম ব্যবহার করে লক্ষ্য UI উইজেট সনাক্ত করে। |
নিম্নলিখিত বৈশিষ্ট্য ঐচ্ছিক:
-
delayTime
- মিলিসেকেন্ডে দীর্ঘ ক্লিকের প্রেস ডাউন কতক্ষণ স্থায়ী হবে তা নির্দিষ্ট করে।
নিম্নলিখিতটি একটি রোবো স্ক্রিপ্ট অ্যাকশনের একটি উদাহরণ যা একটি UI উইজেটে পাঁচ সেকেন্ড-দীর্ঘ ক্লিক করে বিষয়বস্তুর বিবরণ "Avatar 8"
সহ:
{
"eventType": "VIEW_LONG_CLICKED",
"elementDescriptors": [
{
"contentDescription": "Avatar 8"
}
],
"delayTime": 5000
}
একটি এক-পয়েন্ট অঙ্গভঙ্গি সঞ্চালন
নিম্নলিখিত সারণী প্রয়োজনীয় বৈশিষ্ট্যগুলি তালিকাভুক্ত করে:
বৈশিষ্ট্য | বর্ণনা |
---|---|
"eventType": "ONE_POINT_GESTURE" | -- |
coordinates | একটি এক-পয়েন্ট অঙ্গভঙ্গির জন্য দুটি স্থানাঙ্ক, শতাংশ বা পিক্সেল হিসাবে "(x1,y1)->(x2,y2)" হিসাবে বিন্যাসিত৷ |
নিম্নলিখিত বৈশিষ্ট্য ঐচ্ছিক:
-
dragAndDrop
-true
হিসাবে সেট করা হলে, এক-পয়েন্ট অঙ্গভঙ্গি একটি টেনে আনে এবং ড্রপ ক্রিয়া সম্পাদন করে। ডিফল্টরূপে, এটাfalse
.
নিচের একটি রোবো স্ক্রিপ্ট ওয়ান-পয়েন্ট জেসচার অ্যাকশনের উদাহরণ যা নিচের দিকে সোয়াইপ করে:
{
"eventType": "ONE_POINT_GESTURE",
"coordinates": "(50%,25%)->(50%,75%)"
}
একটি দুই-পয়েন্ট অঙ্গভঙ্গি সঞ্চালন
নিম্নলিখিত সারণী প্রয়োজনীয় বৈশিষ্ট্যগুলি তালিকাভুক্ত করে:
বৈশিষ্ট্য | বর্ণনা |
---|---|
"eventType": "TWO_POINT_GESTURE" | -- |
coordinates | একটি দ্বি-বিন্দু অঙ্গভঙ্গির জন্য চারটি স্থানাঙ্ক, শতাংশ বা পিক্সেল হিসাবে "(x1,y1)->(x2,y2),(x3,y3)->(x4,y4)" হিসাবে বিন্যাসিত। |
নিম্নলিখিতটি একটি রোবো স্ক্রিপ্ট অ্যাকশনের একটি উদাহরণ যা একটি চিমটি আউট অঙ্গভঙ্গি সম্পাদন করে:
{
"eventType": "TWO_POINT_GESTURE",
"coordinates": "(50%,50%)->(25%,50%),(50%,50%)->(75%,50%)"
}
একটি IME ক্রিয়া সম্পাদন করুন৷
এই ক্রিয়াটি বর্তমান অ্যাকশন বোতাম টিপে, উদাহরণস্বরূপ, পরবর্তী, সম্পন্ন এবং অনুসন্ধান, নির্দিষ্ট লক্ষ্য UI উইজেটের জন্য ইনপুট মেথড এডিটর (IME) এ।
নিম্নলিখিত সারণী প্রয়োজনীয় বৈশিষ্ট্যগুলি তালিকাভুক্ত করে:
বৈশিষ্ট্য | বর্ণনা |
---|---|
"eventType": "PRESSED_EDITOR_ACTION" | -- |
elementDescriptors | Android UI অনুক্রম ব্যবহার করে লক্ষ্য UI উইজেট সনাক্ত করে। |
নিম্নলিখিত একটি রোবো স্ক্রিপ্ট অ্যাকশনের একটি উদাহরণ যা একটি UI উইজেটে রিসোর্স আইডি "com.google.samples.apps.topeka:id/first_name"
সহ একটি IME অ্যাকশন সম্পাদন করে :
{
"eventType": "PRESSED_EDITOR_ACTION",
"elementDescriptors": [
{
"resourceId": "com.google.samples.apps.topeka:id/first_name"
}
]
}
ফিরে টিপুন
নিম্নলিখিত সারণী প্রয়োজনীয় বৈশিষ্ট্যগুলি তালিকাভুক্ত করে:
বৈশিষ্ট্য | বর্ণনা |
eventType | রোবো স্ক্রিপ্ট অ্যাকশনের ধরন নির্দিষ্ট করে। |
"eventType": "PRESSED_BACK" | ডিভাইসে একটি KEYCODE_BACK ইভেন্ট পাঠায়। |
"eventType": "PRESSED_BACK_EMULATOR_28" | অ্যান্ড্রয়েড স্টুডিওতে রোবো স্ক্রিপ্ট রেকর্ডার দ্বারা এমুলেটর এপিআই 28-এ চাপ দেওয়ার জন্য ব্যবহৃত হয়। |
নিম্নলিখিতটি একটি রোবো স্ক্রিপ্ট অ্যাকশনের একটি উদাহরণ যা পিছনে চাপ দেয়:
{
"eventType": "PRESSED_BACK"
}
হোম টিপুন
এই ক্রিয়াটি ডিভাইসে একটি KEYCODE_HOME
ইভেন্ট পাঠায়৷
নিম্নলিখিত সারণী প্রয়োজনীয় বৈশিষ্ট্যগুলি তালিকাভুক্ত করে:
বৈশিষ্ট্য | বর্ণনা |
"eventType": "GO_HOME" | -- |
নীচে একটি রোবো স্ক্রিপ্ট অ্যাকশনের একটি উদাহরণ যা হোমে চাপ দেয়:
{
"eventType": "GO_HOME"
}
দৃশ্যে একটি উপাদান স্ক্রোল করুন
এই ক্রিয়াটি রবো পরীক্ষাকে UI উইজেটটিকে স্ক্রোল করতে বাধ্য করে যা নির্দিষ্ট childElementDescriptors
elementDescriptors
মেলে তা স্ক্রিনে উপস্থিত না হয়, বা স্ক্রোল করা উইজেটটি আর স্ক্রোল করা যায় না, বা সর্বাধিক 50টি স্ক্রল সংখ্যায় না পৌঁছায়৷
নিম্নলিখিত সারণী প্রয়োজনীয় বৈশিষ্ট্যগুলি তালিকাভুক্ত করে:
বৈশিষ্ট্য | বর্ণনা |
"eventType": "ELEMENT_SCROLL_INTO_VIEW" | -- |
elementDescriptors | Android UI অনুক্রম ব্যবহার করে স্ক্রোল করা UI উইজেট সনাক্ত করে। |
childElementDescriptors | Android UI অনুক্রম ব্যবহার করে স্ক্রোল করতে UI উইজেট সনাক্ত করে। |
নিম্নলিখিতটি একটি রোবো স্ক্রিপ্ট অ্যাকশনের উদাহরণ যা UI উইজেটটিকে রিসোর্স আইডি "my.app.package:id/scrollable_card_container"
করে যতক্ষণ না স্ক্রীনে "Orange"
পাঠ্য সহ UI উইজেট উপস্থিত না হয় (বা আর কোনও স্ক্রোল করা যাবে না) সঞ্চালিত হবে, অথবা সর্বাধিক 50 স্ক্রোল সংখ্যা পৌঁছেছে):
{
"eventType": "ELEMENT_SCROLL_INTO_VIEW",
"elementDescriptors": [
{
"resourceId": "my.app.package:id/scrollable_card_container"
}
],
"childElementDescriptors": [
{
"text": "Orange"
}
]
}
সোয়াইপ করুন
নিম্নলিখিত সারণী প্রয়োজনীয় বৈশিষ্ট্যগুলি তালিকাভুক্ত করে:
বৈশিষ্ট্য | বর্ণনা |
---|---|
"eventType": "VIEW_SWIPED" | -- |
swipeDirection | সোয়াইপের দিক নির্দেশ করে:
|
elementDescriptors | Android UI অনুক্রম ব্যবহার করে লক্ষ্য UI উইজেট সনাক্ত করে। |
নিম্নলিখিতটি একটি রোবো স্ক্রিপ্ট অ্যাকশনের একটি উদাহরণ যা রিসোর্স আইডি "my.app.package:id/custom_content"
সহ একটি UI উইজেট সোয়াইপ করে :
{
"eventType": "VIEW_SWIPED",
"swipeDirection": "Up",
"elementDescriptors": [
{
"resourceId": "my.app.package:id/custom_content"
}
]
}
স্ক্রিনশট নাও
নিম্নলিখিত সারণী প্রয়োজনীয় বৈশিষ্ট্যগুলি তালিকাভুক্ত করে:
বৈশিষ্ট্য | বর্ণনা |
"eventType": "TAKE_SCREENSHOT" | -- |
screenshotName | স্ক্রিনশট ফাইলের নাম নির্দিষ্ট করে। |
নিম্নলিখিত একটি রোবো স্ক্রিপ্ট অ্যাকশনের একটি উদাহরণ যা একটি স্ক্রিনশট নেয়:
{
"eventType": "TAKE_SCREENSHOT",
"screenshotName": "my_screenshot"
}
স্ক্রিনে একটি বিন্দু আলতো চাপুন
নিম্নলিখিত সারণী প্রয়োজনীয় বৈশিষ্ট্যগুলি তালিকাভুক্ত করে:
বৈশিষ্ট্য | বর্ণনা |
---|---|
"eventType": "POINT_TAP" | -- |
pointTapXCoordinate | ট্যাপ করা পয়েন্টের পিক্সেল X স্থানাঙ্ক। pointTapXPercent এবং pointTapYPercent সহ পারস্পরিকভাবে একচেটিয়া। |
pointTapYCoordinate | ট্যাপ করা পয়েন্টের পিক্সেল Y স্থানাঙ্ক। pointTapXPercent এবং pointTapYPercent সহ পারস্পরিকভাবে একচেটিয়া। |
pointTapXPercent | ট্যাপ করা পয়েন্টের শতকরা X স্থানাঙ্ক। pointTapXCoordinate এবং pointTapYCoordinate এর সাথে পারস্পরিকভাবে একচেটিয়া। |
pointTapYPercent | ট্যাপ করা বিন্দুর শতকরা Y স্থানাঙ্ক। pointTapXCoordinate এবং pointTapYCoordinate এর সাথে পারস্পরিকভাবে একচেটিয়া। |
নীচে একটি রোবো স্ক্রিপ্ট অ্যাকশনের একটি উদাহরণ যা একটি স্ক্রিনের মাঝখানে ট্যাপ করে:
{
"eventType": "POINT_TAP",
"pointTapXPercent": 50,
"pointTapYPercent": 50
}
একটি উপাদানের মধ্যে একটি বিন্দু আলতো চাপুন
নিম্নলিখিত সারণী প্রয়োজনীয় বৈশিষ্ট্যগুলি তালিকাভুক্ত করে:
বৈশিষ্ট্য | বর্ণনা |
"eventType": "POINT_TAP_ELEMENT" | -- |
pointTapXPercent | লক্ষ্য উপাদানের মধ্যে শতাংশ X স্থানাঙ্ক। |
pointTapYPercent | লক্ষ্য উপাদানের মধ্যে শতকরা Y স্থানাঙ্ক। |
elementDescriptors | Android UI অনুক্রম ব্যবহার করে লক্ষ্য UI উইজেট সনাক্ত করে। |
নিম্নলিখিতটি একটি রোবো স্ক্রিপ্ট অ্যাকশনের একটি উদাহরণ যা একটি সিকবারের স্লাইডারকে ডানদিকে নিয়ে যায়:
{
"eventType": "POINT_TAP_ELEMENT",
"pointTapXPercent": 80,
"pointTapYPercent": 50,
"elementDescriptors": [
{
"resourceId": "my.app.package:id/my_seekbar"
}
]
}
ক্রল বন্ধ করুন
এই ক্রিয়াটি রোবো পরীক্ষা বন্ধ করে দেয়।
নিম্নলিখিত সারণী প্রয়োজনীয় বৈশিষ্ট্যগুলি তালিকাভুক্ত করে:
বৈশিষ্ট্য | বর্ণনা |
---|---|
"eventType": "TERMINATE_CRAWL" | -- |
নিম্নলিখিত একটি রোবো স্ক্রিপ্ট অ্যাকশনের একটি উদাহরণ যা একটি রোবো পরীক্ষা বন্ধ করে:
{
"eventType": "TERMINATE_CRAWL"
}
অপেক্ষা করুন
নিম্নলিখিত সারণী প্রয়োজনীয় বৈশিষ্ট্যগুলি তালিকাভুক্ত করে:
বৈশিষ্ট্য | বর্ণনা |
"eventType": "DELAYED_MESSAGE_POSTED" | -- |
delayTime | মিলিসেকেন্ডে কতক্ষণ অপেক্ষা করতে হবে তা নির্দিষ্ট করে। |
নিম্নলিখিত একটি রোবো স্ক্রিপ্ট অ্যাকশনের একটি উদাহরণ যা তিন সেকেন্ডের জন্য অপেক্ষা করে:
{
"eventType": "DELAYED_MESSAGE_POSTED",
"delayTime": 3000
}
একটি উপাদান জন্য অপেক্ষা করুন
এই ক্রিয়াটি রোবো পরীক্ষাকে নির্দিষ্ট সময়সীমা পর্যন্ত স্ক্রিনে উপস্থিত হওয়ার জন্য একটি উপাদানের জন্য অপেক্ষা করে।
নিম্নলিখিত সারণী প্রয়োজনীয় বৈশিষ্ট্যগুলি তালিকাভুক্ত করে:
বৈশিষ্ট্য | বর্ণনা |
"eventType": "WAIT_FOR_ELEMENT" | -- |
delayTime | মিলিসেকেন্ডে, অপেক্ষার সময়সীমা নির্দিষ্ট করে। |
elementDescriptors | Android UI অনুক্রম ব্যবহার করে অপেক্ষাকৃত UI উইজেট সনাক্ত করে। |
নিম্নলিখিতটি একটি রোবো স্ক্রিপ্ট অ্যাকশনের একটি উদাহরণ যা স্ক্রিনে উপস্থিত হতে রিসোর্স আইডি "my.app.package:id/confirmation_button"
সহ একটি UI উইজেটের জন্য 30 সেকেন্ড পর্যন্ত অপেক্ষা করে:
{
"eventType": "WAIT_FOR_ELEMENT",
"delayTime": 30000,
"elementDescriptors": [
{
"resourceId": "my.app.package:id/confirmation_button"
}
]
}