خودکارسازی فرآیند تست یک نرمافزارمسیریاب
فهرست مطالب
مواردی که در ویدئو مقابل میتوانید ببینید
- آموزش نحوه ضبط دستور Set text در برنامه ضبط کننده
- آموزش نحوه ضبط دستور Check control status text در برنامه ضبط کننده
- آموزش نحوه ایجاد و استفاده از متغییرهای عددی
- آموزش نحوه استفاده از اکشن Number to text
- آموزش نحوه استفاده از دستور Set text در برنامه ویراستار
- آموزش نحوه استفاده از دستور Check control status text در برنامه ویراستار
- آموزش کاربرد و نحوه استفاده از دستور Change Text
- آموزش کاربرد و نحوه استفاده از دستور Check Number
- آموزش کاربرد و نحوه استفاده از دستور Increase Number
- آموزش یکی از روش های ایجاد حلقه تکرار به کمک دستور Check Number و Increase Number
- آموزش نحوه استفاده و تغییر نام متغییرهای متنی در برنامه ویراستار
- آموزش نحوه استفاده از برنامه ویراستار برای اضافه کردن اکشن (open program/file)
- آموزش نحوه فراخوانی فایل در مبدا و مقصد به کمک متغییرهای از پیش تعریف شده در برنامه ویراستار
متن ویدئو بالا
در این فیلم میخواهم به شما نشان بدهم که چطور میتوان فرایند زمان بر تست نرمافزار را به کمک ربات کاربر مجازی خودکار سازی کرد بطوری که دیگر نیاز نباشد کلیه زمان مورد نیاز برای تست را خودم شخصا پشت سیستم حضور داشته باشم.
من یک برنامه مسیریاب طراحی کردم که یک تعداد شهر را به عنوان ورودی دریافت میکند و با بررسی فاصله بین آنها کوتاهترین مسیر برای رسیدن به این شهرها را به من نشان میدهد. طی کردن یک مرحله از این تست چندان سخت به نظر نمی رسد، ولی زمانی که قرار باشد تعداد زیادی از شهرها را بررسی کنم این فرایند تکراری ساعتها طول میکشد.
برای همین قصد دارم انجام مراحل را با کمک ربات کاربر مجازی خودکار سازی کنم. در واقع میخواهم مراحل تست یک شهر را به ربات یاد بدهم تا بتواند برای تعداد شهرهای بیشتر که ممکن است خیلی زمان بر باشد خودش اینکار را برای من انجام بدهد.
قبل از هرچیزی اجازه بدهید به شما نشان بدهم که چه تستی را می خواهم خودکار سازی کنم، برای تست برنامه مسیریاب می خواهم تعداد شهر موردنظر را درج کنم و گزینه های مربوط به تست را بزنم تا تست آغاز شود. بعد از اینکه برنامه کارش را انجام داد نتایج جستجو را با کلیک بر روی ذخیره مسیر در محل موردنظر save کنم.
برای اینکه کاربر مجازی فرایند تست را از من یاد بگیرد باید یک بار این فرایند را جلوی چشم ربات ضبط کننده کاربر مجازی انجام بدهم؛ برنامه مسیریاب را اجرا میکنم، بعد ربات ضبط کننده را اجرا می کنم و آن را در حالت ضبط قرار میدهم. در این حالت، من هرکاری با موس و کیبورد انجام بدهم ثبت و ضبط می شود.
در برنامه مسیریاب در قسمت شهرها داخل editbox کلیک می کنم. می بینیم که فرمان mouse command1 توسط ربات ضبط کننده ضبط شده است. حین اینکه اشاره گر موس ام را روی editbox نگه داشتم کلید f6 را از روی کیبورد فشار میدهم تا فرمان set text into window control به معنی درج متن ثبت بشود. این ترفندی است که با استفاده از آن میتوان بعدا تعداد شهرها را تعیین کرد و افزایش داد. در ادامه به شما نشان خواهم داد که چطور می توان این کار را انجام داد.
روی دکمه ایجاد مسیر تصادفی کلیک می کنم تا مجموعه شهرهای انتخاب شده ایجاد بشود. محدوده زمانی را مشخص می کنم و حالا باید روی دکمه جستجو مسیر جامع کلیک کنم. وقتی روی جست جو کلیک کنم جستجو شروع می شود و نوار پیشرفت هم نمایان می شود. زمانی که پیشرفت کار به پایان می رسد یعنی جستجو انجام شده است. پس با بررسی وضعیت کنترل نوار پیشرفت میتوان فهمید که عملیات جستجوی مسیر انجام شده است یا نه. به همین منظور بر روی شناسایی وضعیت این کنترل، حین اینکه اشاره گر ماوسم روی آن هست، کلید F9 را از روی کیبورد می زنم. حالا اگر به کنسول ربات ضبط کننده دقت کنید می بینیم که دستور check control status به معنی بررسی وضعیت دکمهها و کنترلها ذخیره شده است. این ترفندی است که میتواند تعیین کند این دکمه نمایان هست یا نه. در ادامه بیشتر در مورد آن توضیح خواهم داد.
ضبط را ادامه میدهم و در نهایت روی دکمه ذخیره مسیر کلیک می کنم. در صفحه باز شده روی مسیر ذخیره کلیک می کنم و همینطور که اشاره گر ماوسم روی آن قرار گرفته است کلید f6 را فشار میدهم. دوباره دستور set text ذخیره میشود. یک بار همان ابتدا هم این کار را برای تعداد شهرها انجام دادم. ثبت را موقتا متوقف می کنم تا نوشته هایی که خودم با کیبورد تایپ می کنم فعلا ضبط نشود چون قصد دارم از دستور set text در این قسمت استفاده کنم.
حالا به عنوان نمونه یک اسم وارد میکنم برمیگردم و دکمه ادامه دادن ضبط را میزنم. در نهایت روی دکمه save کلیک می کنم. ضبط دستورات به پایان رسیده است، ضبط را متوقف می کنم و دستورات ضبط شده را در قالب یک فایل روی دستکاپم روی فولدر برنامه مسیریاب save می کنم. اسمش را هم مسیریاب میگذارم. اگر وارد فولدر برنامه مسیریابم شوم میبینیم که دو فایل جدید ایجاد شده است؛ یکی با پسوند vum که حاوی دستورات ضبط شده است و به آن اصطلاحا ماکرو میگوئیم و دیگری با پسوند rImages که حاوی اسکرین شات های برنامه ضبط کننده در زمان ضبط هر دستور است.
از این پس دیگر با برنامه مسیریاب و ربات ضبط کننده کاری نداریم و میتوانیم آنها را ببندیم، همونطور که درطی فرایند ضبط دیدیم تنظیم برخی دستورات را به بعد موکول کردم و گفتم بیشتر به شما توضیح خواهم داد.
برای تنظیم و سفارشی سازی دستورات ضبط شده باید از برنامه ویراستار برنامه کاربر مجازی کمک بگیریم. بنابراین سراغ برنامه ویراستار می روم و فایل ماکروی خود را داخل آن باز می کنم. همانطور که مشاهده می کنید دستورات ضبط شده در وسط صفحه ویراستار نمایش داده می شوند. با انتخاب هر دستور میتوان اسکرین شات مربوط به همان دستور را در پایین صفحه دید. اینها همان تصاویری هستند که در فایل rImages ذخیره شده اند.
از آنجایی که در ابتدای تست برنامه میخواستم تعداد شهرهای موردنظر را با کمک کاربر مجازی وارد کنم، در edit box تعداد شهر از دستور set text به معنی درج متن استفاده کرده بودم که در اینجا ملاحظه می کنید.
کار این دستور قرار دادن یک متن داخل فیلدهاست برای ویرایش روی آن دابل کلیک می کنم، در این کادر دو قسمت برای تنظیم پارامترهای اکشن وجود دارد: در بالا کنترل هدف و در پایین متغیر متنی
کنترل هدف من edit box است که باید تعداد شهرهارا وارد کنیم چون زمانی که روی edit box بودم کلید f6 را زدم ربات ضبط کننده به طور خودکار و هوشمندانه این هدف را شناسایی کرده و برای من ذخیره کرده است. همزمان با ضبط این دستور بطور خودکار یک متغیر هم ساخته شده است که اسمش set text0 است. حالا میتوان اسم این متغیر را به دلخواه عوض کرد تا در روند تنظیم قابل درکتر باشد. میتوان متنش را هم متن دلخواه خودم قرار بدهم set text0 معنی و مفهوم واضحی ندارد. اسمش را city text var به معنی متغیر متنی شهر میگذارم و متن پیش فرضش را فعلا خالی می گذارم و تایید را می زنم.
می بینیم که در اکشن هم اسم متغیر متنی ما نمایان شد. بطورکل اکشن set text محتوای city text var را درجایی که مشخص کردم درج می کنم. اما برای اینکه این متغیر متنی بتواند تعداد شهرهای موردنظر من را به درستی درج کند از یک متغیر عددی هم باید استفاده کند.
چون قصد دارم کاری کنم که تعداد شهرها به طور خودکار افزایش پیدا کند نمی توان فقط با استفاده از متغیر متنی این کار را انجام داد. از کادر سمت راست در قسمت متغیرها وارد متغیرهای numeric می شوم و درج می زنم.
اسمش رو city-digit-var به معنی متغیر شماره شهر میگذارم. حالا مقداری که در قسمت پایین وارد میکنم عددی خواهد بود که قصد دارم در edit box تعداد شهرها وارد بشود مقدارش را 10 وارد می کنم.
حالا یک متغیر عددی با نام city-digit-var داریم و یک متغیر با نام city-text- var ، باید کاری کنم که متغیر عددی من به یک متغیر متنی تبدیل شود تا توسط اکشن set-text قابل پیاده سازی باشد.
برای این کار از اکشن number to text به معنی تبدیل عدد به متن استفاده می کنم. وارد قسمت اکشن های numeric می شوم و اکشن number to text را با ماوس به یک مرحله قبل از set text می کشم. برای ویرایش پارامترهای این اکشن در بالا متغیر عددی خودم را که همان city-digit-var هست وارد می کنم و در پایین هم متغیر متنی یعنی city-text-var تایید را می زنم.
می بینیم که اکشن number to text بالای set text قرار گرفته است. بنابراین متغیر عددی ما به یک متغیر متنی تبدیل می شود و در مرحله بعد توسط اکشن set text در باکس موردنظر ما درج می شود.
حال به اکشن check control status می رسیم که به معنای بررسی وضعیت دکمه است. درمراحل ضبط برای شناسایی وضعیت نوار پیشرفت با فشردن کلید f9 این اکشن را ثبت کردم و قرار شد در ادامه بیشنر راجع به آن به شما توضیح بدهم.
وقتی جستجو شروع شود این نوار یا کنترل ظاهر می شود و زمانی که جستجو به پایان برسد این کنترل هم محو می شود. حالا اهمیت محو یا ظاهر بودن نوار کنترل این است که میتوان این وضعیت را نشانه ای در نظر گرفت تا ربات کاربر مجازی از این طریق بفهمد که جستجو به پایان رسیده است یا نه. چون اگر این مسئله را به ربات یاد ندهیم، ربات کاربر مجازی قبل از اینکه فرایند حصول نتیجه تمام شده باشد، دکمه ذخیره مسیر را که مرحله بعدی کارش است بدون معطلی می زند و کار خراب می شود.
اکشن check control status می تواند ویژگیهایی مثل محو و ظاهرشدن فعال و غیرفعال شدن کنترل ها را تشخیص بدهد. برای ویرایش اکشن check control status روی آن دابل کلیک کنید.
میبینیم که در همین قسمت ابتدایی می توان با توجه به وضعیت موردنظر، شرطی را اعمال کرد تا ربات اجرا کننده از آن پیروی کند. وضعیت موردنظر من زمانی است که کنترل نوار پیشرفت رفع بشود؛ پس وضعیتی که باید چک شود روی حالت invisible به معنی محو شدن می گذارم.
این یعنی که ربات اجرا کننده بعد از نمایان شدن نوار پیشرفت آن قدر منتظر می ماند تا پیشرفت به 100درصد برسد و این کنترل محو بشود. حالا باید مشخص کنیم بعد از اینکه جستجو به پایان رسید ربات اجرا کننده نتایج جستجو را کجا و با چه نامی ذخیره کند.
اینجا یک اکشن set text میبینیم. من این اکشن را زمانی که روی پنجره ذخیره فایل بودم با کلید f6 ذخیره کردم تا در اینجا آن را ویرایش کنم. حین فرایند ضبط زمانی که روی مسیر ذخیره فایل بودم دستور set text را ذخیره کردم و متغیر set text 0 برای من ایجاد شد.
برای ویرایش این متغیر روی آن دابل کلیک میکنم و اسمش را به save-path-var به معنی متغیر مسیر ذخیره تغییر میدهم و محتوای آن را پاک می کنم. حال به شما نشان می دهم که میخواهم با این متغیر چه کار کنم.
میخواهم اینجا یک ترفند جالب را به شما نشان بدهم و شما را با یک سری امکانات دیگر کاربر مجازی آشنا کنم. به قسمت اکشن ها می روم و از داخل اکشن های متنی اکشن change text را به معنی تغییر متن با ماوس به یک مرحله قبل set text می کشیم.
کار این اکشن تغییر متن یا ایجاد متن جدید در متغیر متنی است، میخواهم کاری بکنم که فایل نتایج جستجو با عنوان تعداد شهرها به مسیری که من میخواهم برود. در قسمت ویرایش متغیر متنی مسیر ذخیره را در بالا انتخاب می کنم. این متغیر در واقع محل ذخیره فایل نتایج جستجو در قسمت پایین میتوان مسیر یا متن جدیدی را وارد کرد میتوانیم هر متغیری را اینجا وارد کنیم. vum file path را انتخاب می کنم که همان مسیری است که فایل ماکرو آنجا قرار دارد و یک / هم میزنم چون میخواهم اسمی که در این مسیر ذخیره میشود مطابق با تعداد شهرهایی باشد که در ابتدای جستجو وارد می شود.
بعد / متغیر تعداد شهر ورودی را انتخاب می کنم که در واقع همان city-text-var است یک txt در انتها وارد می کنم. حالا عملکرد این اکشن اینطور شده است که آدرس جدیدی که در پایین وارد کردیم را در مسیر متغیر save-path-var وارد می کنیم.
حال به اکشن set text هم نگاهی می اندازیم. میبینید که متغیری که اینجا انتخاب شده است متغیر save-path-var است که در مرحله قبل محتوای آن را به کمک اکشن change text تغییر دادیم.
تا اینجای کار دستورات یک بار انجام می شوند و به پایان می رسند, ماکرو را save میکنم و یکبار آزمایش می کنم تا ببینم مراحل به درستی انجام میشوند یا نه. فایل ماکرو را روی ربات اجرا کننده می کشم و برنامه را اجرا می کنم.
همانطور که مشاهده کردید مراحل تست نرمافزار مسیریاب یک بار بطور کامل انجام شد و نتیجه تست در فایل 10.txt در پوشه مربوطه ذخیره شد.
حالا میخواهم کاری بکنم که کاربر مجازی فرایند تست را ادامه بدهد و هربار تعداد شهر را خودش یکی اضافه بکند و نتیجه را برای من ذخیره کند. دوباره فایل ماکرو را روی برنامه ویراستار می کشم به قسمت اکشنها می روم و اکشن check number به معنی بررسی شماره را به انتهای دستورات می کشم.
کار این اکشن بررسی مقدار یک عدد است. با این اکشن میتوان تعیین کرد که در صورت کوچکتر، مساوی و یا بزرگتر بودن عدد موردنظر اکشن چه عملکردی را داشته باشد. با کمک این اکشن میخواهم کاری کنم که کاربر مجازی بتواند عدد ورودی برای تعداد شهرها را بررسی کند و تا زمانی که به عدد تعداد شهر موردنظرم نرسید فرایند تست ادامه پیدا کند. در قسمت target متغیر عددی موردنظرم را انتخاب می کنم که در واقع همان تعداد شهرها هستند، در پایین هم باید سقف تعداد شهری که میخواهم به این تعداد برسد را وارد کنم.
تعداد شهر ورودی را در مرحله اول 10 داده بودیم حالا دوباره بالاتر از آن را به عنوان نمونه 12 وارد می کنیم و در کنارش شرط برابر یا کوچکتر باشد را انتخاب میکنیم. تا اینجا شرط فرض را مشخص کردیم که به صورت ساده میگوید اگر تعداد شهرها کوچکتر یا مساوی 12 باشد چه اتفاقی بیافتد. حالا باید تعیین کنیم که در صورت رسیدن تعداد شهر تست به عدد 12 ربات اجرا کننده چه عملکردی داشته باشد.
در قسمت پایین و سمت چپ این کادر روی تنظیمات نتایج اجرا کلیک می کنیم. اینجا می توانیم مشخص کنیم در قبال موفقیت یا خطا در اجرای این اکشن کاربر مجازی چه عملکردی داشته باشد.
تنظیمات نتایج اجرا را اینطور پیاده سازی میکنم که درکنار اجرای عبارت موفق پرش را فعال می کنم و دستوری را که کاربر مجازی باید به آن برسد را مشخص می کنم به لیست دستورات نگاه می کنم و می بینیم که دستور خط دو شروع مراحل text پس عدد پرش را به خط دو تغییر می دهیم و در کنار عبارت بروز خطا پرش به آخر را save می کنم و در نهایت تایید میکنم.
با این کار تا زمانی که عدد تعداد شهرها به 12 نرسیده باشد کاربر مجازی به ابتدای دستورات برمیگردد حالا باید کاری کنم که شماره تعداد شهرها در هر چرخه از تست یک عدد بالاتر برود. به قسمت اکشنها می روم و اکشن Increase number به معنی افزایش شماره به یک مرحله قبل انجام اکشن check number می برم. برای ویرایش این اکشن متغیر عددی خود را وارد می کنم که در حقیقت همان تعداد شهر ها هستند.
در پایین یک تنظیم با نام increase by قابل مشاهده است. بصورت پیشفرض عدد یک براش لحاظ شده است. این یعنی هر متغیر عدد که در بالا انتخاب کردم با این اکشن یک عدد به آن اضافه میشود.
حالا آزمایش می کنم ببینم چه اتفاقی میافتد. اجازه بدهید قبلش فایلهای ایجاد شده را حذف کنم.
همان طور که مشاهده می کنید کاربر مجازی تعداد شهرها را تک به تک افزایش می دهد و نتیجه را save می کند. همانطور که ملاحظه کردید در نهایت تست عملکرد برنامه مسیریاب بطور کامل توسط ربات کاربر مجازی خودکار سازی شده است و تست هر تعداد شهر که مورد نیاز باشه بطور خودکار بررسی می شود و نتایج تست هر چقدر هم که زمانبر باشد در نهایت بطور خودکار ذخیره می شود