wait لطفا صبر کنید
صفحه اصلی  » مقالات
1395/12/08
7676
10

ابزار تست sahi

ابزار sahi یک برنامه متن باز برای تست خودکار برنامه های تحت وب می باشد. نحوه عملکرد این ابزار به این صورت است که کدهای جاوااسکریپت لازم را به صفحه مورد تست تزریق می کند. این کدها طی پروسه تعریف مراحل تست معرفی و به کمک آنها در زمان تست، عملیات شبیه سازی می گردند.

ابزار sahi یک برنامه متن باز تحت جاوا برای تست خودکار برنامه های تحت وب می باشد. نحوه عملکرد این ابزار به این صورت است که کدهای جاوااسکریپت لازم را به صفحه مورد تست تزریق می کند. این کدها طی پروسه تعریف مراحل تست معرفی و به کمک آنها در زمان تست، عملیات شبیه سازی می گردند. به عنوان مثال برای تست یک صفحه لاگین کدهای جاوا اسکریپت برای مشخص کردن مقدار نام کاربری و پسورد و محل قرار گرفتن آنها در صفحه لاگین به صفحه تزریق می شوند.

 

 

از قابلیت های این ابزار می توان به موارد زیر اشاره کرد

مستقل از مرورگر و سیستم عامل

قابلیت ضبط قدرتمند اعمال کاربر بر روی برنامه وب

دارای APIهای ساده و قدرتمند

قابلیت فراخوانی کلاس های جاوا در اسکریپت ها

اسکریپت های مبتنی بر جاوااسکریپت بمنظور کنترل بهتر برنامه نویسی

پشتیبانی از صفحات  popup و مودال

پشتیبانی از AJAX و برنامه ای تحت وب پویا

امکانات گزارش‌گیری از نتایج آزمونهای انجام شده

اجرای فرامین کاربر بدون استفاده از موس

بسیار سبک

قابلیت تست مبتنی بر داده (Data Driven Testing). امکان اتصال به بانک داده، فایلهای اکسل و CSV

, ...

فرض کنید می خواهیم مراحل ارسال پیام در مکاتبات را تست کنیم. ابتدا صفحه وب مکاتبات را باز کرده و بر روی صفحه آن ALT + DBClick می کنیم تا صفحه کنترلر ساهی باز شود (اگر ALT + DBClick عمل نکرد از CTRL + ALT + DBClick استفاده می کنیم).

 

ضبط کردن تست:

با انتخاب یک نام و کلیک بر روی دکمه رکورد عملیات ضبط تست شروع می شود. در این مرحله می توانید مراحلی را که می خواید شبیه سازی شود را بر روی برنامه وب خود انجام داده و سپس همان مراحل ذخیره شده و بارها می توانید آنها را تکرار کنید.

همچنین می توانید با نگه داشتن کلید کنترل و انتقال موس بر روی هرکدام از کنترلهای صفحه، آن کنترل را در صفحه کنترلر ساهی برده و برای آن اثبات (assert) ایجاد کنید. بدین ترتیب که با دکمه assert کدهای اثبات اضافه می شوند. همچنین با دکمه test می توان درست بودن اثبات را بررسی کرد (اثباث ها برای اثبات درستی موارد مورد نظرمان به کار می روند). در نهایت پس از بررسی assert می توان آن را با دکمه append to script به اسکریپت افزود.

 

در نهایت اسکریپت تست به صورت زیر خواهد بود:

اجرای دوباره تست:

برای اجرای دوباره تست باید کنترلر ساهی را اجرا کرده، نام فایل و آدرس شروع صفحه تست (صفحه اول مکاتبات) را وارد می کنیم. با زدن دکمه set صفحه شروع لود شده و با دکمه Play، تست ضبط شده انجام می گیرد. در این تست تمام اسکریپت های ذخیره شده به صفحه های وب ذخیره و عملیات مورد نظر شبیه سازی می گردند. با مشاهده لاگ ها می توان موفق و یا غیرموفق بودن اجرای تست، زمان اجرا و میزان حافظه را بررسی کرد.

 

همچنین برای اجرای تست از طریق خط فرمان می توان از برنامه تحت داس testrunner.bat (و یا testrunner.sh برای لینوکس) در شاخه sahi/userdata/bin و به صورت زیر استفاده کرد.

testrunner.bat <sah file|suite file> <startURL> <browserType>

Cd sahi/userdata/bin

testrunner.bat test.sah http://website:8090 firefox

 همچنین می توان چندین تست را همزمان اجرا کرده (مود دسته ای ) و در وقت صرفه جویی کرد. بدین منظور نام فایلهای تست مورد نظر را در یک فایل متنی با پسوند suite قرار داده و دستور بالا را برای آن فایل متنی اجرا می کنیم:

tests.suite file

test1.sah

test2.sah

test3.sah

//commented_test1.sah

#commented_test2.sah

اجرای همزمان چند تست

testrunner.bat tests.suite http://website:8090 firefox

 

 

یک نمونه دیگر

 

اسکریپت زیر یه نمونه دیگر تست از تست کیس ها می باشد. در این تست کیس باید چک شود که شماره پرونده تکراری وارد نشود. اسکریپت زیر تست مورد نظر را برای تنها یک شماره پرونده (108010) چک می کند.

_setValue(_textbox("txt_username"), "admin");

 

_setValue(_password("txt_password"), "123");

 

_click(_submit("btn_SearchInfo"));

 

_click(_cell(201));

 

_click(_span("صفحات"));

 

_click(_link("شروع روند تطبیق مصوبات"));

 

_click(_checkbox("ctl00\$CtrlCnt\$FRM_Pre_Document_ascx\$chk_fl_chkbx_manualDocNo"));

 

_setValue(_textbox("ctl00\$CtrlCnt\$FRM_Pre_Document_ascx\$txt_fl_txt_manualDocNo"), 108010);

 

_click(_submit(" مرحله بعد"));

 

_assertExists(_span("شماره پرونده وارد شده:108010 تکراری است. لطفا مقدار شماره پرونده را اصلاح نمایید"));

 

_click(_div("خروج از سیستم"));

  

برای انجام تست بالا برای شماره پرونده های بیشتر (مثلا 108010   و 108008) می توان بر اساس قابلیت تست داده محور sahi اسکریپت زیر را تعریف کرد.


function doAdd($number){

_setValue(_textbox("ctl00\$CtrlCnt\$FRM_Pre_Document_ascx\$txt_fl_txt_manualDocNo"), $number);

_click(_submit(" مرحله بعد"));

_assertExists(_span("شماره پرونده وارد شده:"+$number+" تکراری است. لطفا مقدار شماره پرونده را اصلاح نمایید."));

}

var $data = [108010,108008]

_setValue(_textbox("txt_username"), "admin");

_setValue(_password("txt_password"), "123");

_click(_submit("btn_SearchInfo"));

_click(_cell(201));

_click(_span("صفحات"));

_click(_link("شروع روند تطبیق مصوبات"));

_click(_checkbox("ctl00\$CtrlCnt\$FRM_Pre_Document_ascx\$chk_fl_chkbx_manualDocNo"));

for (var $i=0; $i<$data.length; $i++){

var $n = $data[$i];

doAdd($n);

}

click(_div("خروج از سیستم"));

تماس با ما

ایمـیل : I N F O @ D E P N A . C O M
 دفتر تهران : خیابان کارگر شمالی - بعد از مسجد النبی - خیابان ابراهیمی (17) - پلاک 140
تلفن:88019001-021
 دفتر قم : خیابان 45 متری صدوقی - 20 متری فجر - خیابان دانش - کوی 14 - پلاک 10
تلفن:32906868-025