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

**سلنیوم** یک چارچوب آزمون-نرم‌افزار قابل حمل برای برنامه‌های کاربردی وب است. سلنیوم یک ابزار به نام Selenium IDE را برای تست بدون نیاز به یادگیری زبان اسکریپت‌نویسی فراهم کرده و همچنین دارای زبانی به نام Selenese برای نوشتن آزمون‌ها به زبان‌های #Ruby، Python، PHP، Perl, Java, Groovy، C و Scala است. آزمون‌های نوشته شده روی بسیاری از مرورگرهای مدرن وب کار می‌کنند. سلنیوم روی ویندوز، لینوکس و مک او اس اجرا می‌شود. سلنیوم یک برنامه متن باز است که تحت مجوز آپاچی منتشر شده‌است.

## تاریخچه
سلنیوم در ابتدا توسط جیسون هوجینز در سال ۲۰۰۴ برای شرکت ToughtWorks توسعه داده شد.

در سال ۲۰۰۵ دن فابولیچ و نلسون سپرول (به کمک پت لایتبادی)، انجام تعدادی وصله نرم‌افزاری روی سلنیوم را (که در نهایت منجر به ایجاد نرم‌افزار فعلی شده‌است) پیشنهاد کردند.

در سال ۲۰۰۷، هوجیز به گوگل پیوست. سپس او به همراه دیگرانی چون جنیفر بیوان توسعه سلنیوم را ادامه دادند. همزمان، سیمون ستوارت (Simon Stewart) در ThoughtWorks ابزاری برتر برای خودکارسازی مرورگرها توسعه داده بود و در نهایت این دو پروژه با یکدیگر ادغام شده و پروژه Selenium Webdriver یا Selenium 2.0 را ایجاد کردند.

در سال ۲۰۰۸ فیلیپ هانریگو (phillippe Hanrigou) (سپس در ThoughtWorks) "سلنیوم گرید" یا "Selenium Grid" را ساخت که باعث کوتاه‌تر شدن زمان اجرای آزمون‌ها از طریق اجرای همزمان چندین آزمون سلنیوم به صورت همروند روی تعدادی سیستم محلی یا راه-دور شد.

نام سلنیوم از لطیفه ای که هوجیز در یکی از ایمیلهایش ساخت می‌آید که برای تمسخر نرم‌افزاری به نام Mercury گفته بود: «برای درمان مسمومیت جیوه از سلنیوم استفاده کنید». دیگران که ایمیل را دریافت کردند این نام را بر آن نهاده و اجرایش کردند.

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

### 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 سرور نرم‌افزاری ای است که امکان استفاده از مرورگرها روی ماشین‌های راه-دور برای اجرای آزمون را می‌دهد.

## جستارهای وابسته
* لیست ابزارهای آزمون وب

## منابع

## پیوند به بیرون
* 
رده:ابزارهای آزمایش بار
رده:نرم‌افزارهای توسعه وب
رده:پروژه‌های متن‌باز