2016-02-16 13 views
5

Tôi có một nhiệm vụ cho công việc mà tôi dường như không thể hoàn thành vì tôi không hoàn toàn có được bộ công cụ trong tầm tay. Tôi có nghĩa vụ phải sử dụng JBehave cùng với Selenium Web Driver để có thể thêm một cuốn sách nào đó vào danh sách yêu thích trên tài khoản amazon. Tôi có một câu chuyện nhất định và tôi phải sử dụng các công cụ được đề cập trước đây để sử dụng cho "mục đích học tập". Tôi hiểu rằng JBehave là một khuôn khổ cho BDD. Vì vậy, tôi có một số loại câu chuyện mà tôi muốn thử nghiệm. Tuy nhiên, những gì gây nhầm lẫn cho tôi là cấu hình và "bước định nghĩa" một phần mà tôi không thực sự nhận được. Vấn đề của tôi là tôi không thực sự hiểu làm thế nào để có được tất cả những phần làm việc cùng nhau. Selenium WebDriver phù hợp với phương trình ở đâu? Lưu ý rằng tôi đã sử dụng Selenium với Java và điều đó thật dễ dàng.JBehave hoạt động như thế nào với Java?

Tôi muốn cung cấp cho bạn một ví dụ về câu chuyện theo định dạng gherkin và tôi sẽ đánh giá cao bất kỳ thông tin chi tiết nào về chủ đề này, có thể làm rõ cách tất cả các phần khớp với nhau.

Given user <username> with password <password> has a valid amazon.com account 
And has a wish list 
And wants to purchase book <title> at a later date 
When a request to place the book in the wish list is made 
Then the book is placed in the wish list 
And the book <title> appears in the wish list when <username> logs in at a later date. 
+0

hãy có một cái nhìn tại liên kết câu hỏi, bạn có thể nhận được một số ý tưởng làm thế nào để cấu hình java jbehave selen, [link] (http: // stackoverflow .com/questions/20733703/very-simple-step-by-step-jbehave-setup-tutorial) – SacTan

+0

Bạn có thể giải thích thêm mục tiêu của "nhiệm vụ học tập" này là gì? Bạn có muốn gì ngoài thực hiện một câu chuyện đơn giản này bằng cách sử dụng java + webdriver + jbehave, để chạy nó trên máy tính của bạn và kiểm tra kết quả?Hay đúng hơn là bạn muốn biết liệu bộ công cụ này có hữu ích trong thời gian dài hay không, để thử nghiệm hàng trăm câu chuyện và cách tổ chức dự án và toàn bộ khuôn khổ thử nghiệm bằng cách sử dụng các công cụ này để triển khai và chạy một cách dễ dàng và hiệu quả kiểm tra, hiển thị kết quả của họ và kiểm tra nguyên nhân gây lỗi? – krokodilko

+0

Wow có một vụ nổ từ quá khứ. JBehave là cổ đại, bản phát hành cuối cùng là vào năm 2006. Tôi cá nhân sẽ tìm kiếm một cái gì đó nhiều hơn một chút đến nay và được hỗ trợ tốt. Bạn sẽ gặp vấn đề nếu có gì sai vì không ai thực sự sử dụng nó nữa. – Ardesco

Trả lời

2

Bây giờ bạn có bạn Câu chuyện bạn cần bạn bước. Các bước là mã Java sẽ được thực hiện bởi câu chuyện. Mỗi dòng trong câu chuyện của bạn được ánh xạ tới một Bước Java. Xem tài liệu trên Candidate Steps.

Dưới đây là thực sự đâm đơn giản vào nội dung câu chuyện và các bước của bạn. Nhưng ít nhất nó cũng nên cho bạn một ý tưởng về cách các câu chuyện và các bước liên kết với nhau như thế nào.

Câu chuyện

Given user username with password passcode is on product page url 
When the user clicks add to wish list 
Then the wish list page is displayed 
And the product title appears on the wish list 

bước

public class WishlistSteps { 
    WebDriver driver = null; 

    @BeforeScenario 
    public void scenarioSetup() { 
    driver = new FirefoxDriver; 
    } 

    @Given("user $username with password $passcode is on product page $url") 
    public void loadProduct(String username, String passcode, String url) { 
    doUserLogin(driver, username, passcode); // defined elsewhere 
    driver.get(url); 
    } 

    @When("the user clicks add to wishlist") 
    public void addToWishlist() { 
    driver.findElement(By.class("addToWishlist")).click(); 
    } 

    @Then("the wish list page is displayed") 
    public void isWishlistPage() { 
    assertTrue("Wishlist page", driver.getCurrentUrl().matches(".*/gp/registry/wishlist.*")); 
    } 

    @Then("the product $title appears on the wish list") 
    public void checkProduct(String title) { 
    // check product entries 
    // assert if product not found 
    } 

    @AfterScenario 
    public void afterScenario() { 
    driver.quit(); 
    } 
} 

Tiếp theo, bạn sẽ cần một Á hậu mà thực sự tìm và chạy những câu chuyện. Xem tài liệu trên Running Stories. Dưới đây là một Á hậu rất đơn giản sẽ chạy như một bài kiểm tra JUnit.

Runner

public class JBehaveRunner extends JUnitStories { 
    public JBehaveRunner() { 
    super(); 
    } 

    @Override 
    public injectableStepsFactory stepsFactory() { 
    return new InstanceStepsFactory(configuration(), 
     new WishlistSteps()); 
    } 

    @Override 
    protected List<String> storyPaths() { 
    return Arrays.asList("stories/Wishlist.story"); 
    } 
} 

Á hậu này sau đó sẽ được thực hiện như một bài kiểm tra JUnit. Bạn có thể cấu hình IDE của bạn để chạy nó, hoặc sử dụng Maven hoặc Gradle (tùy thuộc vào thiết lập của bạn).

mvn test 

Tôi đã tìm thấy các trang bên dưới cung cấp tổng quan tuyệt vời về toàn bộ quá trình thiết lập. Và các ví dụ từ kho lưu trữ JBhave cũng hữu ích.

+0

Cảm ơn, nhưng đây chính là lời giải thích chính xác mà tôi thấy ở mọi nơi. Vấn đề của tôi là sau khi tạo tất cả những thứ đó, làm cách nào để thực sự chạy chúng? Tôi không thể tìm ra cách để thực sự chạy một kịch bản như vậy. Giống như những gì tôi so sánh kết quả của tôi làm gì? Tôi dường như không thể có được bức tranh đầy đủ ở đây. Lưu ý rằng tôi đã đọc các câu chuyện Chạy trên JBehave, nhưng họ bỏ qua quá nhiều lời giải thích quan trọng để có được bức tranh đầy đủ – Ralph

+0

Ok, bạn đang tìm kiếm một số ví dụ hoặc viết đơn giản để gắn kết tất cả lại với nhau. Tôi sẽ đăng một cái gì đó có thể giúp với điều đó. –

+0

Xem câu trả lời cập nhật của tôi. Hy vọng rằng điều này sẽ hữu ích hơn cho bạn. –

Các vấn đề liên quan