Screenplay Là Gì

Screenplay và Page Object Model là 2 patterns giành cho Automation Test. Dạo gần đây, screenplay nổi lên nhỏng rượu cồn, phải bản thân đú trkết thúc, viết 1 bài bác nhằm bao gồm đông đảo Đặc điểm của mô hình này.

Bạn đang xem: Screenplay là gì


Nội dung bài viết

II. Mô hình của Screenplay, đối chiếu cùng với Page Object.III Để dùng screenplay hiệu quả

I. Screenplay Pattern là gì?

Screenplay, tiếng anh Tức là kịch bản, yêu cầu nhiều người dân giỏi nói phét “dùng screenplay tất cả nghĩa mình là nhà biên soạn kịch“.

Nó là 1 thiết kế pattern Ship hàng cho automation test, hoàn toàn có thể áp dụng mang đến 2 màn chơi API cùng UI. Nguồn nơi bắt đầu của nó từ chưng John Ferguson Smart, một tín đồ chuyên đi dạy về agile, tập trung vào BDD.

Bác ý có 1 framework tên là serenity bdd, nó support 3 biện pháp làm việc khác nhau:

Page ObjectCucumberScreenplay

Vậy đề xuất bạn đừng nhầm lẫn screenplay là serenity với ngược trở lại. Screenplay là 1 trong những design pattern trình bày một cách viết test. Còn serenity bdd là một trong framework mang lại Automation Test.

Giờ đây screenplay đã xuất hiện bên trên 3 framework khác nhau

II. Mô hình của Screenplay, đối chiếu với Page Object.

*
Hình bản thân trường đoản cú vẽ lại mang lại bao gồm màu xanh :v

quý khách như thế nào đọc được giờ đồng hồ anh thì rất có thể đọc trả lời cùng ra mắt về screenplay tại chỗ này.

Mô hình Page Object:


*

1. Tất cả luân chuyển xung quanh Actor

Trong mô hình này, trung vai trung phong của nó là Actor. Vì sao này lại có actor??? Actor là thay mặt cho một người dùng thật, nó xuất phát điểm từ story vào agile. Và đó cũng là vấn đề biệt lập cốt tử thân Screenplay và Page Object. Actor vẫn là người đứng ra có tác dụng hồ hết việc, vấn đề này dễ nắm bắt hơn là bài toán Điện thoại tư vấn method tự pageA rồi pageB.

Xem thêm: Trẻ Sơ Sinh Ra Mồ Hôi Nhiều Ở Đầu, Trẻ Sơ Sinh Đổ Mồ Hôi Đầu Có Bình Thường Không

Ví dụ:

*
copy image from https://www.justinmind.com/blog/user-story-examples/

Code chủng loại copy từ bỏ trang gốc:


RunWith(SerenityRunner.class)public class AddNewTodos private Actor james = Actor.named("James");
Managed private WebDriver hisBrowser;
Before public void jamesCanBrowseTheWeb() james.can(BrowseTheWeb.with(hisBrowser));
Test public void should_be_able_to_add_a_todo_item() givenThat(james).wasAbleTo(OpenTheApplication.onTheHomePage()); when(james).attemptsTo(AddATodoItem.called("Buy some milk")); then(james).should(seeThat(theDisplayedItems, hasItem("Buy some milk")));
Actor has an ability (rất có thể sử dụng browser, có thể sử dụng api)james.can(BrowseTheWeb.with(hisBrowser));//thực tế là khởi tạo webdriverActor vị tasks (task này nhìn dưới góc nhìn business)(james).wasAbleTo(OpenTheApplication.onTheHomePage())(james).attemptsTo(AddATodoItem.called("Buy some milk"))//thực chất là Điện thoại tư vấn những method để triển khai action lên web applicationActor ask question(james).should(seeThat(theDisplayedItems, hasItem("Buy some milk")));//Thực chất là compare actual và expected

2. Khác biệt đến từ Task

Task dưới góc nhìn business sẽ giúp cho chúng ta:

Đọc câu chữ của thử nghiệm là phát âm demo này nói về đồ vật gi, chứ đọng không phải là đều lắp thêm bất nghĩa nhỏng điền “abc” vào thẻ input xuất xắc clichồng vào buttion như thế nào kia.Task có thể đựng 1 hoặc các task không giống.
*
Lúc quan sát vào task, chúng ta chỉ nhìn thấy business và chỉ còn bao giờ đi mang lại chiếc task cấp độ sau cùng, các bạn sẽ nhìn thấy interaction, chính là code selenium can dự với browser (tất nhiên là nó cũng được bọc phía bên ngoài bởi code của serenity cùng với chân thành và ý nghĩa cụ thể hơn).
*

3. Viết chạy thử cực kỳ như là câu văn

Viết code như là viết vnạp năng lượng, với người khác cho nên ưu thế, với mình thì nó là nhược điểm vcđ, nó luôn tạo nên mình yêu cầu suy nghĩ mang lại ngữ pháp giờ anh mỗi lúc viết code cùng yêu cầu hi sinh java coding convention =)))) Còn các bạn thì sao, hãy bình luận phía bên dưới nhé.


Testpublic void should_be_able_to_add_a_todo_item() givenThat(james).wasAbleTo(OpenTheApplication.onTheHomePage()); when(james).attemptsTo(AddATodoItem.called("Buy some milk")); then(james).should(seeThat(theDisplayedItems, hasItem("Buy some milk")));

III Để cần sử dụng screenplay hiệu quả

1. Về mind-set

Team các bạn cần tuân theo phương pháp BDD, còn nếu như không thì bạn tím lịm chính là fan viết kiểm tra. :v

2. Về kỹ thuật

Java core (cực chắc chắn chắn)Quý khách hàng bắt buộc hiểu cùng biết phương pháp sử dụng Interface: marker interface cùng functional interface (lambda expression) cùng cả interface thường thì.Dường như là Generics, Annotationquý khách đề nghị làm thân quen với loại đẻ class new như lợn bé, do screenplay tách bóc bé dại từng máy, phải viết rất nhiều class. Nếu đơn giản viết một đoạn code 3 cái selenium mở 1 trang web làm sao kia thì bên đây các bạn yêu cầu gồm cho khoảng chừng 3 class. Không nói chúng ta cũng có thể nghĩ đến số lượng mẫu code gấp khoảng tầm vài lần.

IV. Tổng kết

Nếu bạn thấy giỏi hoặc thiếu hiểu biết nhiều gì, chớ xấu hổ nngay gần đến nội dung bài viết 1 like. :))) Vì nhằm viết được bài xích này, tác giả cần làm đôi cái dự án công trình cần sử dụng screenplay và gọi code framework hôm sớm. Nếu bạn muốn tác giả phân tích code của framework serenity, hãy để lại 1 comment, tác giả đang viết dần (nếu như rảnh).


This entry was posted in Screenplay pattern and tagged Page Object Model, screenplay, serenity bdd by Giang Nguyen. Bookmark the permalink.