±à¼ÍƼö: |
ÎÄÕÂÖ÷Òª½éÉÜÁËcucumberµÄÏà¹Ø¸ÅÄî¡¢¹¤×÷ÔÀí£¬ÒÔ¼°cucumber¿ÉÒÔͨ¹ý¶àÉÙÖÖ¿ª·¢ÓïÑÔÀ´ÊµÏÖÓëµ×²ãÇý¶¯µÄÓ³ÉäµÈ¡£
±¾ÎÄÀ´×ÔÓÚtesterhome£¬ÓÉ»ðÁú¹ûÈí¼þLuca±à¼¡¢ÍƼö¡£ |
|
1. »îÎĵµ£¬Ò»¶Î´úÂëÈÏʶcucumber
# language :zh-CN
@baidu1
¹¦ÄÜ:*** Êý¾ÝÇý¶¯°Ù¶ÈËÑË÷
³¡¾°´ó¸Ù:*** Êý¾ÝÇý¶¯°Ù¶ÈËÑË÷
#½çÃæ-Ê×Ò³
¼ÙÉèÎÒÔÚä¯ÀÀÆ÷´ò¿ª@@@@@https://www.baidu.com/
#½çÃæ-ÊäÈë²éѯÌõ¼þ
µ±ÎÒͨ¹ýIDÔÚÊäÈë¿ò@@@@@kw@@@@@ÊäÈë@@@@@<Input>
²¢ÇÒÎÒͨ¹ýIDµã»÷@@@@@su
#½çÃæ-ÑéÖ¤²éѯ½á¹û
ÄÇôÎÒ½«»áÔÚ½çÃæÉÏ¿´µ½@@@@@<Output>
Àý×Ó:*** ²âÊÔÊý¾Ý
|Input |Output |
|java |java |
|github |github | |
˵Ã÷£º
cucumberÊÇ»ùÓÚ×ÔÈ»ÓïÑÔµÄBDD(Behaviour-Driven Development)µÄ²âÊÔ¿ò¼Ü£¬Ä¿Ç°Ö§³ÖµÄÒÑÓÐ42ÖÖÓïÑÔÖ®¶à£¬ÎÒÃÇĿǰµÄ¿´µ½µÄ¾ÍÊǶÔÖÐÎĵÄÖ§³Ö¡£
# language :zh-CN£¬Õâ¸ö¾ÍÊǶÔÖ§³ÖÓïÑԵıê¼Ç¡£
@baidu1£¬Õâ¸ö¾ÍÊǵ±Ç°½Å±¾µÄ±êÇ©tag, tag¿ÉÒÔ¿´×÷Êǽű¾µÄΨһÐÔ±ê¼Ç£¬¿ÉÒÔͨ¹ýtagΨһµÄÖÆ¶¨½Å±¾½øÐÐÔËÐС£
¹¦ÄÜ£¬¾ÍÊǶԽű¾¸²¸ÇµÄ¹¦ÄܽøÐÐÎÄ×ÖÐÔµÄÃèÊö¡£
³¡¾°´ó¸Ù£¬½Å±¾¸²¸ÇµÄ³¡¾°ÃèÊö¡£
Àý×Ó£¬ ¼´Îª×Ô¶¯»¯²âÊÔµÄÊý¾ÝÇý¶¯¡£
2. ÈÏʶcucumberµÄ¹Ø¼ü×Ö
cucumberµÄÔÉú´úÂëÊÇ»ùÓÚrubyµÄ
$ script/cucumber
--i18n zh-CN
| feature | "¹¦ÄÜ" |
| background | "±³¾°" |
| scenario | "³¡¾°" |
| scenario_outline | "³¡¾°´ó¸Ù" |
| examples | "Àý×Ó" |
| given | "* ", "¼ÙÈç" |
| when | "* ", "µ±" |
| then | "* ", "ÄÇô" |
| and | "* ", "¶øÇÒ" |
| but | "* ", "µ«ÊÇ" |
| given (code) | "¼ÙÈç" |
| when (code) | "µ±" |
| then (code) | "ÄÇô" |
| and (code) | "¶øÇÒ" |
| but (code) | "µ«ÊÇ" | |
ͨ¹ýÕâЩ¸ÅÄîµÄÁ˽⣬ÎÒÃǾͺÜÈÝÒ×µÄÄܶÁ¶®Õâ¸ö½Å±¾ÁË£¬Êý¾ÝÇý¶¯ÊµÏÖ°Ù¶ÈËÑË÷
3. CucumberµÄ¹¤×÷ÔÀí

˵Ã÷£º
ÃæÏòÒµÎñ£º¾ÍÊÇͨ¹ý×ÔÈ»ÓïÑÔ¶Ô×Ô¶¯»¯²âÊԽű¾µÄÃèÊö£¬·½±ãµÄ½Å±¾µÄÔĶÁÓëά»¤¡£
ÃæÏò¼¼Êõ£ºÐ´¹ýselenium×Ô¶¯»¯²âÊԵĶ¼ÖªµÀÎÒÃǶÔϵͳµÄÿһ²½²Ù×÷¶¼»á¶ÔÓ¦Ò»Ðлò¶àÐдúÂë¡£
cucumberµÄÇ¿´óÖ®´¦¾ÍÔÚÓÚ°Ñ¿´ËƲ»Ïà¹ØµÄÃæÏòÒµÎñÓëÃæÏò¼¼ÊõʵÏÖÁËÓ³Éä¡£
4. cucumberʵÏÖweb×Ô¶¯»¯²âÊÔ
ͨ¹ýÇ°ÃæµÄ½²½â£¬´ó¼ÒÃ÷°×cucumberʵÏÖ×Ô¶¯»¯Ò²ÊÇÐèÒªµ×²ã¼¼ÊõµÄ£¬µ×²ã¼¼ÊõÎ޷ǾÍÊÇʵÏÖ¶Ôweb
ä¯ÀÀÆ÷µÄÇý¶¯£¬ÎÒÃÇʹÓÃselenium2 µÄwebDriverÀ´ÊµÏÖ¡£
ͨ¹ýÏÂÃæµÄÁ´½Ó´ó¼Ò¿ÉÒÔÁ˽⵽£¬cucumber¿ÉÒÔͨ¹ý¶àÉÙÖÖ¿ª·¢ÓïÑÔÀ´ÊµÏÖÓëµ×²ãÇý¶¯µÄÓ³Éä¡£
cucumber github

5. ÔÚideaÀïÃæµÄ´úÂë½á¹¹

˵Ã÷£º
resourcesĿ¼ÊÇÓÃÀ´´æ·ÅcucumberµÄfeature½Å±¾Îļþ¡£
javaµÄpackageÀïÃæÊǷŵÄÊÇseleniumµÄÇý¶¯´úÂ룬javaÓëfeatureµÄÓ³Éä´úÂë¡£
6.´úÂëÓ³ÉäÓëʵÏÖ
¿ªÆªµÄ½Å±¾»Ø¹ýÍ·À´ÔÙ¿´Ò»Ï£¬Õâ¸ö½Å±¾µÄÌØµã¾ÍÊÇ·½±ãÔĶÁ£¬µ«Êǵ¥µ¥¿¿Õâ¸ö½Å±¾ÊDz»ÄܰÑ×Ô¶¯»¯ÅÜÆðÀ´µÄ£¬ÐèÒªµ×²ãµÄdriver
À´ÊµÏÖ£¬ÏÂÃæÕâ¶Î´úÂë¾ÍÊÇÓëÖ®¶ÔÓ¦µÄ¼¼ÊõʵÏÖ´úÂë¡£
package com.XXXX.autoTest.webApp;
import cucumber.api.java.After;
import cucumber.api.java.Before;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.When;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
/**
* Created by Administrator on 2015/10/21.
*/
public class StepDefinitions {
private WebDriver driver;
@Before
public void setUp() {
System.setProperty("webdriver.chrome.driver",
"res/chromedriver.exe");
driver = new ChromeDriver();
}
@Given("^ÎÒÔÚä¯ÀÀÆ÷´ò¿ª@@@@@(.*)$")
public void openUrl(String url) {
driver.get(url);
}
@When("^ÎÒͨ¹ýIDÔÚÊäÈë¿ò@@@@@(.*)@@@@@ÊäÈë@@@@@(.*)$")
public void inputById(String id, String value)
{
driver.findElement(By.id(id)).sendKeys(value);
}
@When("^ÎÒͨ¹ýIDµã»÷@@@@@(.*)$")
public void clickById(String id) {
driver.findElement(By.id(id)).click();
}
@After
public void tearDown() {
driver.quit();
}
} |
ͨ¹ý¶ÔÕÕÕâ¶Î´úÂëÓ뿪ƪµÄ½Å±¾´ó¼Ò²»ÄÑ·¢ÏÖ£¬Á½ÕߵĶÔÓ¦ÊÇ¿¿javaµÄ×¢½âÀ´Æ¥ÅäµÄ¡£
7.ÔËÐдúÂë
java´úÂëµÄÒª¼¯³Éjunit»òtestngÀ´ÊµÏֽű¾µÄÔËÐС£
|