Behat Selenium Toolchain
Recently, I have been using the tool chain of behat+mink+selenium for a mission. These open source tool are not so bug-free, I'd say. So I have to dig in to the source code the see what's going on. It's quite interesting the see how these open source software are organised together. So let's begin with Behat.
Behat have many components.
Transierator: is mainly used to handle different character set problem. Like those letters with "accent" in french.
Gerkin: this is a library which is used to interprate the semi-natural language used by Behat. It should be interesting to see how it works inside, maybe like lex/yacc?
Mink: I'd like to consider it as a abstraction layer of all the operations on the web. like filling a field, looking for a elements etc..
Mink-selenium2-driver: this is used to translate the request in Mink to http POST request which will be send to selenium. Notice that this part also translate the "locator" name/id/label etc to xpath.
Selenium-standalone-*.jar: this is the main process of selenium, it listens on a port for incoming POST request and translate it to request to selenium webdriver;
WebDriver: as its name suggests, it understand the request and "drive the browser to do staff, like click on something etc..
Web Browser: this is the normal browers which are start up and controller by WebDriver.
Behat have many components.
Transierator: is mainly used to handle different character set problem. Like those letters with "accent" in french.
Gerkin: this is a library which is used to interprate the semi-natural language used by Behat. It should be interesting to see how it works inside, maybe like lex/yacc?
Mink: I'd like to consider it as a abstraction layer of all the operations on the web. like filling a field, looking for a elements etc..
Mink-selenium2-driver: this is used to translate the request in Mink to http POST request which will be send to selenium. Notice that this part also translate the "locator" name/id/label etc to xpath.
Selenium-standalone-*.jar: this is the main process of selenium, it listens on a port for incoming POST request and translate it to request to selenium webdriver;
WebDriver: as its name suggests, it understand the request and "drive the browser to do staff, like click on something etc..
Web Browser: this is the normal browers which are start up and controller by WebDriver.
Here is graphe summurazing the above text.
Comments
Post a Comment