Функционално тестване и селен
Разгледах Selenium, който според мен е страхотен инструмент за автоматизиране на функционалното тестване. От аналозите намерих само "Watir", но ми се стори много по-беден (или просто изглеждаше?). Има много платени аналози, включително тези от известните IBM и HP, но аз искам безплатен.
Досега съм използвал само версията на Firefox (Selenium IDE add-on). Най-лесният начин да направите тест е следният: отворете Selenium IDE, създайте нов тест, подгответе браузъра (отидете на страницата, от която ще започне тестът), щракнете върху червения бутон за запис (от дясната страна на лентата с инструменти), изпълнете някои действия в браузъра, спрете записа и вижте какво ще се случи.
След като последователността от действия в браузъра беше записана от Selenium, трябва да видите какво се е случило, възможно е да коригирате нещо. Езикът е прост и много разбираем, просто трябва да знаете малко английски. В първия си тест просто преместих входния низ към променлива, за да мога по-късно да го използвам в твърдение и преработих селектора на елементи от XPath на CSS (елементите могат да бъдат избрани чрез XPath, CSS, DOM, ID на елемент, regexp и по няколко други начина), а също така добавих самия assert, защото Selenium не знае какво представлява успешното завършване на теста.
Ето един прост тест, който записах, за да илюстрирам принципа:
За да може тестът да се изпълни, трябва да посочите основен URL адрес за него (където ще бъде изпълнен тестът и щракнете върху бутона за тестово изпълнение и теста на пакета). В нашата вътрешна "Wiki" в "Yandex" този тест ще отвори моя клъстер, ще намери там страницата "Тестване", ще щракнете върху бутона за редактиране върху нея, ще я отпечатате на страницата "THIS-IS-TEST-STRING", ще запазите промяната и ще се уверите, че въведеният низ се е появил на страницата.
Яжтевъзможността за дистанционно провеждане на тестове на множество браузъри и използването на C #, Perl, Ruby, Python, PHP и Java, но все още не съм се занимавал с това богатство, първите нужди са напълно покрити от това, което вече знам, останалото е въпрос на бъдещето.