سلنیوم (نرم‌افزار)

تاریخچه

سلنیوم در ابتدا توسط جیسون هوجینز در سال ۲۰۰۴ برای شرکت ToughtWorks توسعه داده شد.
در سال ۲۰۰۵ دن فابولیچ و نلسون سپرول (به کمک پت لایتبادی)، انجام تعدادی وصله نرم‌افزاری روی سلنیوم را (که در نهایت منجر به ایجاد نرم‌افزار فعلی شده‌است) پیشنهاد کردند.
در سال ۲۰۰۷، هوجیز به گوگل پیوست. سپس او به همراه دیگرانی چون جنیفر بیوان توسعه سلنیوم را ادامه دادند. همزمان، سیمون ستوارت (Simon Stewart) در ThoughtWorks ابزاری برتر برای خودکارسازی مرورگرها توسعه داده بود و در نهایت این دو پروژه با یکدیگر ادغام شده و پروژه Selenium Webdriver یا Selenium 2.0 را ایجاد کردند.
در سال ۲۰۰۸ فیلیپ هانریگو (phillippe Hanrigou) (سپس در ThoughtWorks) "سلنیوم گرید" یا "Selenium Grid" را ساخت که باعث کوتاه‌تر شدن زمان اجرای آزمون‌ها از طریق اجرای همزمان چندین آزمون سلنیوم به صورت همروند روی تعدادی سیستم محلی یا راه-دور شد.
نام سلنیوم از لطیفه ای که هوجیز در یکی از ایمیلهایش ساخت می‌آید که گفت برای درمان مسمومیت جیوه از سلنیوم استفاده کنید. دیگران که ایمیل را دریافت کردند این نام را بر آن نهاده و اجرایش کردند.

مولفه‌ها

سلنیوم از تعدادی مؤلفه تشکیل شده‌است که هر یک در توسعه آزمون‌های وب نقشی به عهده دارند.

Selenium IDE

Selenium IDE یک محیط توسعه مجتمع (IDE) برای آزمون‌های سلنیوم است که به عنوان یک افزونه فایرفاکس (Firefox Add-On) پیاده‌سازی شده‌است و امکان ضبط، ویرایش، و اشکال زدایی آزمون‌ها را فراهم می‌کند. Selenium IDE پیشتر Selenium Recorder خوانده می‌شد.
Selenium IDE می‌تواند به صورت خودکار اسکریپت‌ها را ضبط کند. پس از آن امکان ویرایش دستی دستورهای موجود در اسکیریپت وجود دارد. اسکریپت‌ها در Selenese (زبان اسکریپت‌نویسی آزمون) ضبط می‌شوند. Selenese دستوراتی برای اجرای اعمالی مثل کیلک کردن روی کی لینک، انتخاب یک گزینه و … و همچنین بازیابی داده‌ها از صفحات حاصله از لینک‌ها را فراهم می‌کند.
پس از بروزرسانی فایرفاکس به نسخه 55 Selenium IDE دیگر قادر به اجرا به عنوان افزونه روی این مرورگر نیست و از آن زمان توسعه آن متوقف شده‌است.

واسط برنامه‌نویسی مشتری Selenium

علاوه بر نوشتن آزمون‌ها در Selenese امکان نوشتن آزمون‌ها در زبان‌های برنامه‌نویسی متنوعی وجود دارد. این آزمون‌ها می‌توانند از طریق توابعی که در واسط برنامه‌نویسی Selenium وجود دارند با Selenium ارتباط برقرار نمایند. در حال حاضر برای زبان‌های برنامه‌نویسی مثل سی شارپ، جاوا، روبی، جاوااسکریپت و پایتون واسط برنامه‌نویسی فراهم می‌کند.
همزمان با انتشار سلنیوم ۲ یک واسط نرم‌افزاری جدید معرفی شد (که Webdriver مؤلفه اصلی آن بود). گرچه، واسط نرم‌افزاری قدیمی هنوز هم پشتیبانی می‌شود.

Selenium WebDriver

Selenium WebDriver جایگزین Selenium RC است. Selenium WebDriver دستورات را می‌پذیرد و آن‌ها را به مرورگر فرستاده و نتایج (صفحات وب) را بازمی‌گرداند. این امکان از طریق درایور مرورگر (که برای هر مرورگر متفاوت است) انجام می‌شود. غالب درایورهای مرورگرها هنگام اجرای دستورات، مرورگر (مثل فایرفاکس، کروم، اینترنت اکسپلورر، یا مایکروسافت اج) را اجرا می‌کند.

Selenium Remote Control

Selenium Remote Control یا (RC)، که به زبان جاوا نوشته شده‌است، دستورات مرورگر را بوسیله HTTP می‌پذیرد. RC امکان امکان نوشتن آزمونهای اتوماتیک برای برنامه‌های کاربردی وب به هر زبان برنامه‌نویسی ای را فراهم می‌کند. برای اینکه نوشتن آزمونها ساده‌تر گردد، Selenium برای زبان‌های پی ایچ پی، پایتون، روبی، دات نت، پرل و جاوا درایور مشتری را فراهم می‌کند. درایور جاوا می‌تواند برای جاوااسکریپت هم با استفاده از موتور Rhino) بکار رود.

Selenium Grid

Selenium Grid سرور نرم‌افزاری ای است که امکان استفاده از مرورگرها روی ماشین‌های راه-دور برای اجرای آزمون را می‌دهد.