Trang chủ Kiểm thử phần mềm Giới thiệu về Ensure trong Serenity Screenplay

Giới thiệu về Ensure trong Serenity Screenplay

0

Trong phiên bản gần đây của Serenity Screenplay hỗ trợ chúng ta cách assertions với class Ensure. Cách này, được nhiều người đánh giá là dễ sử dụng và viết nhanh hơn. Trong bài này chúng ta cùng tìm hiểu về Ensure trong Serenity Screenplay.

Lưu ý: trước khi sử dụng Ensure trong Serenity Screenplay, bạn cần viết được kịch bản đầu tiên với Serenity.

Giới thiệu về Serenity Ensure

Trong quá trình thực hiện kịch bản, bạn cần xác định được kết actual và expect. Để thực hiện hành động, kiểm tra xem kết quả actual bạn nhận được so sánh với kết quả bạn mong đợi expect. Trong Serenity Screenplay hỗ trợ cho bạn class Ensure để dễ dàng sử dụng.

Class Ensure đã tạo một Performable (Performable class được dùng thực hiện thành động). Do đó, bạn có thể tích hợp trực tiếp vào method attemptsTo() ở trong kịch bản mà không cần tạo thêm Class khác.

Việc sử dụng class Ensure để assertion cũng giúp code của bạn trở lên dễ đọc hơn, gần giống như một câu văn.

Hãy xem ví dụ dưới đây:

  • Trong kịch bản này, ta có một actor là Sam.
  • sam.attemptsTo -> Sam có khả năng thực hiện những hành động ở trong khối của attemptsTo()
  • Enter.theValue("40").into(AGE_FIELD).thenHit(Keys.ENTER) -> actor Sam thực hiện điền giá trị “40” vào trường AGE_FIELD. Sau đó ấn nút Enter.
  • Ensure.that(AGE).text().isEqualTo("40") -> Sử dụng class Ensure để xác nhận xem rằng giá trị AGE đó có thật sự bằng 40
  • Kết quả sẽ được trả về là True hoặc False. Nếu AGE có giá trị bằng 40 -> kết quả trả về true. Nếu AGE có giá trị khác 40 -> kết quả trả về là false
sam.attemptsTo(
    Enter.theValue("40").into(AGE_FIELD).thenHit(Keys.ENTER),
    Ensure.that(AGE).text().isEqualTo("40")
);

Cách thêm Serenity Ensure vào project

Require: Bạn đã viết kịch bản automation test đầu tiên với Serenity Screenplay

Trong bài viết mình sử dụng Maven và Gradle.

Bước 1: Serenity Ensure cần thêm dependency vào project. Trong Maven, bạn thêm serenity-ensure dependency vào trong file pom.xml

<dependency>
    <groupId>net.serenity-bdd</groupId>
    <artifactId>serenity-ensure</artifactId>
    <version>${serenity.version}</version>
    <scope>test</scope>
</dependency>

Để cập nhật phiên bản mới nhất của Ensure. Bạn vào Maven Repository

Tìm kiếm từ khóa Ensure Serenity, chọn kết quả đầu tiên là Serenity Ensure

Tìm kiếm ensure serenity ở maven repository
Tìm kiếm ensure serenity ở maven repository

Sau đó sẽ hiển thị một danh sách các phiên bản. Version đầu tiên là phiên bản mới nhất.

Danh sách các phiên bản Serenity Ensure

Sau đó bạn copy phần Maven dependency vào project của bạn.

Serenity Ensure maven dependency

Bước 2: Trong Gradle, bạn cần thêm dependency

testCompile "net.serenity-bdd:serenity-screenplay-webdriver:${serenity.version}"

Một số phương thức Ensure assertion hay sử dụng

Gần như tất cả các phương thức Ensure được bắt đầu với Ensure.that() . Hãy cùng tìm hiểu một số phương thức hay dùng của Ensure Serenity.

Khi sử dụng một số IDE như IntelliJ IDEA. Bạn có thể dễ dàng sử dụng với gợi ý của IDE, sau khi đã thêm thành công Ensure dependency.

1. Assertion với số
isEqualToEnsure.that(age).isEqualTo(18)
isNotEqualToEnsure.that(age).isNotEqualTo(65)
Ví dụ assertion với số

Ngoài ra, với kiểu dữ liệu double và float. Bạn có thể sử dụng phương thức isCloseTo() để assert

isCloseTo()Ensure.that(creditScore).isCloseTo(9.81F, 0.01F)
Ví dụ assertion với kiểu dữ liệu float và double
2. Assertion với String
isEqualToEnsure.that(name).isEqualTo("Bill")
isNotEqualToEnsure.that(name).isNotEqualTo("Joe")
Ví dụ assertion với String

Một số trường hợp cần assert với nội dung của String ta có một số cách sau:

doesNotContainEnsure.that(colors).doesNotContain("cyan")
isBlank()Ensure.that(" ").isBlank()
contains()Ensure.that(colors).contains("Green")
isEmpty()Ensure.that("").isEmpty()
Ví dụ assertion với String content
3. Assertion với các element ở web

Khi viết các kịch bản liên quan đến UI, chúng ta cần assert một số thông tin của element. Sưr dụng Ensure giúp ta viết nhanh hơn.

Một số assert đơn giản nhất là assert về hiển thị hay được sử dụng:

isDisplayedEnsure.that(FIRST_NAME).isDisplayed()
isDisabledEnsure.that(FIRST_NAME).isDisabled()
isEnabledEnsure.that(FIRST_NAME).isEnabled()
Ví dụ assertion hiển thị với web element

Hoặc một số trường hợp assert về thông tin

valueEnsure.that(FIRST_NAME).value().isEqualTo("Joe")
textEnsure.that(DESCRIPTION).text().isNotEmpty()
selectedValueEnsure.that(COLORS).selectedValue().isEqualTo("green")
Ví dụ assertion thông tin với web element

Ngoài những assertion mình viết trên, vẫn còn rất nhiều các phương thức khác. Trong từng trường hợp sử dụng assert khác nhau. Hãy đọc thêm tại The Serenity BDD Book.

Chúc các bạn thực hiện thành công!

Tham khảo tại: The Serenity BDD Book

0 BÌNH LUẬN

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây

Exit mobile version