এই টিউটোরিয়ালটি অনুমান করে আপনি set up Marionette for B2G সেট আপ করেছেন।
একটি টার্মিনাল খুলুন এবং ইন্টারেক্টিভ প্রম্পট পেতে পাইথন চালু করুন:
$ python
ইন্টারেক্টিভ প্রম্পট থেকে, ইন্টারেক্টিভ পদ্ধতিতে একটি Marionette সেশন ডাকার জন্য প্রয়োজনীয় কমান্ড পরিচালনা করুন:
>>> from marionette import Marionette
>>> marionette = Marionette('localhost', 2828)
>>> marionette.start_session()
u'session-b2g'
এখানে, আমরা দেখি যে সিস্টেমে একটি Marionette সেশন চলছে।
কমান্ড "marionette.execute_script()
" জাভাস্ক্রিপ্ট কমান্ড এম্বেড করতে পারে, যা তারপর B2G এর Gecko প্ল্যাটফর্মে চালানো সম্ভব। এটি ব্যবহার করে, আপনি কোন DOM এলিমেন্ট এইচটিএমএল এলিমেন্ট অবজেক্ট এবং উপলব্ধ বৈশিষ্ট্য ও পদ্ধতি রিটার্ন করে দেখতে পারেন:
>>> marionette.execute_script("return navigator.battery;")
{u'onlevelchange': None, u'level': 0.91, u'dischargingTime': None, u'onchargingchange': None, u'ondischargingtimechange': None, u'onchargingtimechange': None, u'chargingTime': None, u'charging': True}
>>> marionette.execute_script("return navigator.battery.level;")
0.91
>>> marionette.execute_script("return navigator.geolocation;")
{}
>>> marionette.execute_script("return navigator.mozSms;")
{u'onreceived': None, u'ondelivered': None, u'onsent': None}
আপনি এই টেকনিক ব্যবহার করে DOM ট্রি ট্রাভার্স করতে পারেন কোন অবজেক্ট,পদ্ধতি, এবং গুণাবলী পাওয়া যায় তা মূল্যায়নের জন্য।
ইন্টারেক্টিভ পদ্ধতিতে বেসিক টেলিফোনি টেস্টিং
আপনি marionette এর সঙ্গে ইন্টারেক্টিভ পদ্ধতিতে মৌলিক টেলিফোনি পরীক্ষা করতে পারবেন। নিম্নলিখিত উদাহরণে দুটি সচল ফোনের প্রয়োজন, প্রতিটির সিমকার্ডসহ।একটি আপনার Galaxy SII, যেটিতে B2G চলমান।
একটি ইন্টারেক্টিভ Marionette সেশন শুরু করুন এবং পোর্ট ফরওয়ার্ড করুন:
$ adb forward tcp:2828 tcp:2828
$ python
>>> from marionette import Marionette
>>> marionette = Marionette('localhost', 2828)
>>> marionette.start_session()
u'5-b2g
এখন, আপনার marionette এর সাথে দুটি সম্ভাব্য উপায় আছে। একটি একটু বেশি পাইথনিক:
>>> marionette.set_context("chrome")
True
>>> marionette.execute_script("return navigator.mozTelephony;")
>>> num =
>>> marionette.execute_script("return navigator.mozTelephony.dial('%d');" % num)
অন্যথায়, এই পদ্ধতি, যা JS এর উপর বেশি নির্ভর করে ( marionette.execute_script()
মধ্যে এমবেডেড) JS নাম্বার ভেরিয়েবলের চারপাশে উদ্ধৃতি চিহ্ন লক্ষ্য করুন:
>>> marionette.set_context("chrome")
True
>>> marionette.execute_script("""
... var num = ""
... return navigator.mozTelephony.dial(num);
... """)
{}
আমরা প্রথম পদ্ধতি চেষ্টা করব:
এটি একটি ফোন কল চালু করে, যার আউটপুট $adb logcat
এ মনিটর করা যাবে।