Screenplay với Page Object Model là 2 patterns dành riêng cho Automation Test. Dạo vừa vừa mới đây, screenplay nổi lên nlỗi rượu đụng, kiến nghị phiên bản thân đú trover, viết 1 bài nhằm mục đích bao gồm đa số Điểm chú ý của quy mô này.

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

Quý Khách vẫn xem: Screenplay là gì

Nội dung bài xích xích viết

II. Mô hình của Screenplay, so sánh cùng với Page Object.III Để đề xuất thực hiện screenplay hiệu quả

I. Screenplay Pattern là gì?

Screenplay, tiếng đồng hồ anh Tức là kịch bản, đề xuất ít nhiều tín đồ dân xuất sắc ba hoa “thực hiện screenplay bao hàm nghĩa bản thân là đơn vị chức năng soạn kịch“.

Nó là 1 thiết kế pattern phục vụ đến automation test, vô cùng có thể áp dụng mang về 2 màn nghịch API thuộc UI. Nguồn chỗ bắt đầu của nó từ chưng John Ferguson Smart, một bạn chuyên đi dạy về agile, triệu tập vào BDD.

Bác ý có một framework tên là serenity bdd, nó hỗ trợ tư vấn 3 biện pháp thao tác không giống nhau:

Page ObjectCucumberScreenplay

Vậy đề xuất chúng ta chớ lầm lẫn screenplay là serenity cùng ngược quay trở về. Screenplay là 1 giữa những design pattern thể hiện 1 cách viết kiểm tra. Còn serenity bdd là một trong những trong số những framework mang đến Automation Test.

Giờ trên đây screenplay vẫn xuất hiện thêm trên 3 framework khác nhau

II. Mô hình của Screenplay, so sánh cùng rất Page Object.


*

Hình bản thân từ vẽ lại cho tất cả màu xanh da trời lá cây :v

Quý người sử dụng ra sao Gọi được tiếng anh thì hoàn toàn có thể phát âm chỉ dẫn cùng reviews về screenplay ở vị trí này.

Mô hình Page Object:


*

1. Tất cả xoay bao quanh Actor

Trong quy mô này, trung TW của nó là Actor. Vì sao nó lại tất cả actor??? Actor là thay mặt đại diện thay mặt đại diện cho 1 người tiêu dùng thật, nó bắt đầu từ story vào agile. Và này cũng chính là vấn đề khác biệt chủ công giữa Screenplay với Page Object. Actor đang là tín vật dụng đứng ra có tác dụng các sự việc, điều đó dễ dàng thâu tóm rộng lớn là câu hỏi call method trường đoản cú quăng quật pageA rồi pageB.

Xem thêm: Idc Là Gì ? Ý Nghĩa Của Từ Idc Idc Là Viết Tắt Của Từ Gì

Ví dụ:


*

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

Code chủng loại copy trường đoản cú trang gốc:

Steps private PlaceholderText thePlaceholderText; private DisplayedItems theDisplayedItems = new DisplayedItems(); 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ể triển khai browser, trọn vẹn rất có thể tiến hành api)james.can(BrowseTheWeb.with(hisBrowser));//thực tế là khởi tạo thành webdriverActor vị tasks (task này quan sát dưới ánh mắt business)(james).wasAbleTo(OpenTheApplication.onTheHomePage())(james).attemptsTo(AddATodoItem.called("Buy some milk"))//thực tiễn là điện thoại tư vấn đều method nhằm mục tiêu triển khai action lên web applicationActor ask question(james).should(seeThat(theDisplayedItems, hasItem("Buy some milk")));//Thực hóa học là compare actual cùng với expectedVề thực chất 2 thằng hầu như tương đương nhau thôi, nhưng mà lại tuy nhiên Screenplay tạo nên thành mang về nó 1 layer abstraction để nhìn test bên dưới tinh tướng business, nỗ lực vị đính thêm chặt vào UI, chúng ta như thế nào giả dụ cần sử dụng cucumber cũng nhận thấy điểm y như.

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

Task bên dưới mắt nhìn business sẽ giúp đỡ mang đến họ không thay đổi được chạy thử giả dụ nlỗi UI thay đổi, thực ra thì bản thân thấy nó cũng ko rộng gì method của Page Object. Điểm nó xuất sắc rộng, đang là Task này là một trong interface extends từ bỏ interface Performable, nó có mang biện pháp làm việc thông thường đem đến toàn bộ những task to nhỏ nhỏ bé.

Task này vô cùng rất có thể đựng 1 hoặc các task khác.
*

khi quan tiền ngay cạnh vào task, các bạn chỉ nhận ra business với chỉ với thời điểm nào đi mang lại chiếc task cấp độ sau cùng, các bạn sẽ thấy được interaction, chính là code selenium ảnh hưởng cùng với browser (tất yếu là nó cũng khá được quấn bên phía ngoài bởi vì code khác).
*

3. Viết kiểm tra vô cùng giống hệt như câu văn

Viết code nlỗi thể viết vẩm thực, cùng với những người dân không giống cho nên vì thế ưu vậy, với bản thân thì nó là điểm yếu kém vcđ, nó luôn luôn làm cho bản thân yêu cầu cân nhắc cho ngữ pháp giờ đồng hồ anh mỗi một khi viết code cùng với cần mất mát java coding convention =)))) Còn bọn họ thì sao, hãy đánh giá 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 Để sử dụng screenplay hiệu quả

1. Về mind-set

Team chúng ta kiến nghị tuân theo phương thức BDD, còn còn nếu như không thì tín đồ tím lịm đó là các bạn viết chạy thử. :v

2. Về kỹ thuật

Java core (cực hoàn toàn có thể chắn)Quý khách hàng phải đọc cùng biết cách thức áp dụng Interface: marker interface cùng với functional interface (lambda expression) với cả interface thông thường.Bên cạnh đó là Generics, Annotationkhách hàng đề nghị tất cả tính năng quen thuộc cùng với làm nên đẻ class new nhỏng lợn bé, vì chưng screenplay bóc nhỏ tuổi từng đồ dụng, thử dùng viết rất nhiều class. Nếu thuận tiện viết một quãng code 3 mẫu selenium mở một trang web như thế nào tê thì bên đây các bạn buộc phải tất cả mang lại khoảng chừng chừng 3 class. Không nói bạn có thể tưởng tượng số lượng dòng code cấp khoảng tầm chừng vài ba lần.

IV. Tổng kết

Nếu các bạn thấy tuyệt hoặc không hiểu nhiều gì, chớ hổ thứa nliền kề mang lại câu chữ bài viết 1 lượt thích. :))) Vì nhằm viết được bài bác bác này, người sáng tác phải tạo cho tuy vậy nhiều loại dự án công trình dùng screenplay với vạc âm code framework hôm mai. Nếu bạn muốn tác giả đối với code của framework serenity, hãy vướng lại 1 bình luận, tác giả đang viết dần (mang dụ rảnh).This entry was posted in Screenplay pattern & tagged Page Object Model, screenplay, serenity bdd by Giang Nguyen. Bookmark the permalinks.