Protractor là gì

  -  

End to over (e2e) testing là một cách thức kiểm thử phần mềm được thực hiện để khám nghiệm xem luồng ứng dụng có vận động như muốn đợi từ trên đầu đến cuối tốt không.

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

Mặc định Angular CLI đã phát hành sẵn cho họ một bộ khung e2e hoàn chỉnh với Protractor và Jasmine.

Xem thêm: 7 Tựa Game Nông Trại Hay Nhất Hỗ Trợ Chơi Nhiều Người Cho Mùa Covid

Một ví dụ minh hoạ về e2e testing vào Angular 7:

*

Trong Angular họ chỉ cần chạy câu lệnh ng new là các files e2e sẽ được tạo nên cũng ứng dụng.

Xem thêm: Axit Axetic Là Gì? Sự Khác Biệt Giữa Axit Acetic Và Acid Acetic Băng Là Gì ?

*

Tất cả rất nhiều thứ liên quan đến e2e testing phần đông được đặt trong folder /e2e. Chúng ta cũng hoàn toàn có thể thực hiện tại viết test luôn mà không nên thay đổi ngẫu nhiên cài đặt mặc định như thế nào trong protractor.conf.js với tsconfig.e2e.json. Kế bên 2 files config trên thì chúng ta cũng có thêm một subfolder nữa là /src. Trong thư mục này mang định sẽ có được 2 files:

app.po.ts — là một trong những file Page Object chuyên shop với các elements có trong page bây giờ (Ví dụ như điền nội dung vào trong 1 ô textbox giỏi click vào một trong những nút nào đó). Những đoạn code tác động này đều cần được viết trong những phương thức (methods), tiếp đến bên file spec sẽ điện thoại tư vấn tới các phương thức này để xúc tiến kịch bản.

Mặc định Angular sẽ cho họ sẵn một vài đoạn code để họ dễ tưởng tượng hơn về e2e:

import browser, by, element from "protractor";export class AppPage navigateTo() return browser.get("/"); getParagraphText() return element(by.css("app-root h1")).getText(); import AppPage from "./app.po";describe("workspace-project App", () => let page: AppPage; beforeEach(() => page = new AppPage(); ); it("should display welcome message", () => page.navigateTo(); expect(page.getParagraphText()).toEqual("Welcome to lớn My App!"); ););Sau lúc đã xong xong 2 files là app.e2e-spec.tsapp.po.ts, chúng ta sẽ rất cần được chạy câu lệnh:

ng e2eCâu lệnh này sẽ:

Thực thi những spec được viết vào app.e2e-spec.ts lên trình coi xét (mặc định đang là Chrome, đồng thời khi chạy trình duyệt sẽ sở hữu thông báo là "Chrome is being controlled by automated thử nghiệm software")Đưa ra màn hình console các tác dụng khi thực thi các spec sinh sống trên. Ví dụ:

*

Chạy e2e testing với chế độ headless

Khi chạy ở chính sách headless, trình chú ý sẽ không tự động mở ra như lúc chạy bình thường. Điều này sẽ cân xứng nếu họ chạy nó cho mục đích Continues Integration (CI). Để có tác dụng được vậy chúng ta cần phải update lại tệp tin protractor.conf.js như sau:

capabilities: "browserName": "chrome", chromeOptions: binary: process.env.CHROME_BIN, args: <"--headless", "--no-sandbox"> ,Và cuối cùng, thay do chạy ng e2e thì chúng ta sẽ chạy câu lệnh:

ng e2e --capabilities.chromeOptions.args="--headless"

Một vài selectors hay cần sử dụng trong protractor

element(by.id("firstName"));element(by.css(".signout"));element(by.model("address.city"));element(by.binding("address.city"));element(by.input("firstName"));element(by.input("firstName")).clear();element(by.buttonText("Close"));element(by.partialButtonText("Save"));element(by.linkText("Save"));element(by.partialLinkText("Save"));element(by.css("img"));element(by.css(".pet .cat"));element(by.cssContainingText(".pet", "Dog"));allColors = element.all(by.options("c c in colors"));

Thao tác cùng với Input

element(by.id("firstName").sendKeys("John");sendKeys(Key.ENTER);sendKeys(Key.TAB);sendKeys(Key.BACK_SPACE);element(by.id("user_name")).clear();

Truy cập vào các thành phần trong list

var danh mục = element.all(by.css(".items));var list2 = element.all(by.repeater("personhome.results"));expect(list.count()).toBe(3);expect(list.get(0).getText()).toBe("First’)expect(list.get(1).getText()).toBe("Second’)expect(list.first().getText()).toBe("First’)expect(list.last().getText()).toBe("Last’)Tài liệu tham khảo: Automate kết thúc to kết thúc (e2e) testing for Angular 7 using Protractor và Jasmine