Kiểm thử tự động hướng dữ liệu cho ứng dụng web sử dụng Selenium webdriver

6 155 0
Kiểm thử tự động hướng dữ liệu cho ứng dụng web sử dụng Selenium webdriver

Đang tải... (xem toàn văn)

Thông tin tài liệu

Mục tiêu của bài viết này là xây dựng một công cụ kiểm thử tự động hướng dữ liệu cho ứng dụng Web sử dụng nền tảng Selenium WebDriver. Với công cụ kiểm thử này, người sử dụng có thể kiểm thử bất kỳ trang Web nào mà không cần trang bị kiến thức về lập trình.

ISSN 2354-0575 KIỂM THỬ TỰ ĐỘNG HƯỚNG DỮ LIỆU CHO ỨNG DỤNG WEB SỬ DỤNG SELENIUM WEBDRIVER Đỗ Thị Thu Trang, Lê Thị Linh, Trịnh Thị Nhị, Ngô Thanh Huyền Trường Đại học Sư phạm Kỹ thuật Hưng Yên Ngày tòa soạn nhận báo: 20/06/2018 Ngày phản biện đánh giá sửa chữa: 06/08/2018 Ngày báo duyệt đăng: 13/08/2018 Tóm tắt: Kiểm thử tự động hướng liệu sử dụng liệu tách rời với kịch kiểm thử, lưu trữ dạng bảng tính sử dụng hiệu việc kiểm thử ứng dụng Web Mục tiêu báo xây dựng công cụ kiểm thử tự động hướng liệu cho ứng dụng Web sử dụng tảng Selenium WebDriver Với công cụ kiểm thử này, người sử dụng kiểm thử trang Web mà khơng cần trang bị kiến thức lập trình Từ khóa: Kiểm thử phần mềm, Kiểm thử tự động, WebDriver, Framework, Kiểm thử hướng liệu Giới thiệu Ngành Công nghiệp Phần mềm tăng trưởng theo cấp số nhân tạo nhiều ứng dụng phần mềm hữu ích, có ứng dụng Web - loại ứng dụng sử dụng rộng rãi phổ biến [3] Ứng dụng Web ngày khơng tăng gia số lượng mà cịn gia tăng yêu cầu chất lượng độ phức tạp ứng dụng Thực tế cho thấy, việc thực kiểm thử thủ công cho ứng dụng phần mềm nói chung ứng dụng Web nói riêng bộc lộ nhiều nhược điểm như: thời gian thực kiểm thử kéo dài, công việc lặp lặp lại gây nhàm chán, số lỗi kiểm thử thủ cơng, gặp khó khăn thực kiểm thử hồi quy [11] Điều đặt vấn đề cần phải có cách thức kiểm thử để khắc phục nhược điểm kiểm thử thủ cơng Vì vậy, kiểm thử tự động đời Việc sử dụng kiểm thử tự động kiểm thử phần mềm bước tiến quan trọng cần thiết quy trình kiểm thử phần mềm Dựa yêu cầu kiểm thử phần mềm, kiểm thử tự động chia thành hướng phát triển khác như: kiểm thử hướng mơ hình (Modular Testing), kiểm thử hướng liệu (Data Driven Testing), kiểm thử hướng từ khóa (Keyword Driven Testing)… [12] Trong đó, kiểm thử hướng liệu hướng kiểm thử sử dụng phổ biến trình kiểm thử ứng dụng Web Kiểm thử hướng liệu [6] cách kiểm thử giảm bớt thời gian kiểm thử trường hợp sử dụng bước thực kiểm thử kịch kiểm thử khác liệu đầu vào Với hướng tiếp cận này, liệu kiểm thử (Test Data) tách khỏi kịch kiểm thử (Test Script), lưu trữ dạng file 46 liệu XML, Excel, CSV, Database… Các liệu lưu trữ theo quy ước chung ‘Key - Value’, từ khóa (Key) sử dụng để truy cập truyền liệu (Value) vào kịch kiểm thử tương ứng thông qua số thư viện chung [2] Mặc dù có nhiều framework hỗ trợ viết kịch kiểm thử tự động cho ứng dụng Web, nhiên Selenium đánh giá framework kiểm thử tự động có nhiều ưu như: khơng chi phí quyền, thực kiểm thử tự động nhiều hệ điều hành, hỗ trợ kiểm thử nhiều trình duyệt, hỗ trợ nhiều ngơn ngữ lập trình [13] Selenium [5] công cụ kiểm thử mã nguồn mở bao gồm thành phần: Selenium Integrated Development Environment (IDE), Selenium Remote Control (RC), WebDriver Selenium Grid Hình Bộ cơng cụ Selenium [5] Mỗi công cụ đáp ứng nhu cầu kiểm thử khác ứng dụng Web Nó thực mạnh mẽ so sánh với công cụ kiểm thử tự động khác Khoa học & Công nghệ - Số 19/Tháng - 2018 Journal of Science and Technology ISSN 2354-0575 Selenium linh hoạt dễ sử dụng Thêm nữa, ngơn ngữ lập trình xây dựng chương trình kiểm thử độc lập với ngơn ngữ xây dựng ứng dụng Web Selenium framework mã nguồn mở đánh giá tốt [16] Trong đó, WebDriver framework thiết kế để hỗ trợ lập trình nâng cao với kịch kiểm thử ứng dụng Web Chúng ta xây dựng công cụ kiểm thử đặc thù dựa tảng hỗ trợ Selenium WebDriver Theo khảo sát chúng tơi thị trường có nhiều công cụ kiểm thử tự động hỗ trợ kiểm thử hướng liệu UFT (Unified Functional Testing) [9], Katalon Studio [10], TestComplete [14] Tuy nhiên, công cụ địi hỏi người sử dụng phải có kiến thức định lập trình trả giá phí cao để sử dụng Bài báo nghiên cứu xây dựng công cụ kiểm thử hướng liệu cho ứng dụng Web dựa tảng Selenium WebDriver Chúng lựa chọn xây dựng cơng cụ lý sau: - Ứng dụng Web trở lên phổ biến, việc kiểm thử tự động ứng dụng Web vô cần thiết - Ứng dụng Web ngày trở nên phức tạp, việc kiểm thử thủ công điều Chúng xây dựng công cụ kiểm thử chức hướng liệu cho trang web kiểm thử trình duyệt phổ biến - Cơng cụ xây dựng không yêu cầu kiểm thử viên phải có kiến thức lập trình Phần cịn lại báo có cấu trúc sau: phần giới thiệu mơ hình kiểm thử hướng liệu framework kiểm thử tự động Selenium WebDriver, phần mơ tả tốn, chương trình cài đặt kết đạt Phần cuối kết luận Mơ hình 2.1 Mơ hình kiểm thử hướng liệu Kiểm thử tự động hướng liệu tạo kịch kiểm thử nơi liệu kiểm thử giá trị đầu đọc từ tệp liệu thay sử dụng giá trị cụ thể cho lần chạy kiểm thử Bằng cách này, kiểm thử viên kiểm tra ứng dụng xử lý đầu vào khác cách hiệu Dữ liệu lưu kiểu file liệu như: XLS, XML, CSV, DataBase Với cách xây dựng kịch kiểm thử kịch kiểm thử cung cấp logic kiểm thử sử dụng lại để giảm thời gian, cơng sức bảo trì tăng phạm vi kiểm tra Các giá trị liệu đầu vào kết mong đợi (theo tiêu chí kiểm tra) lưu trữ nhiều nguồn liệu sở liệu, định dạng tổ chức thực tế tùy thuộc yêu cầu thực cụ thể 2.2 Ngun lý hoạt động Hình Mơ hình kiểm thử tự động hướng liệu [7] Thơng thường, tập liệu bao gồm giá trị đầu vào kết mong đợi đầu Khi nhớ chứa liệu đầu vào kết mong đợi đầu ra, kiểm thử theo hướng liệu bao gồm hoạt động sau thực vịng lặp: • Lấy liệu đầu vào từ nguồn liệu • Nhập liệu tự động vào ứng dụng cần kiểm thử thông qua kịch kiểm thử • Thực so sánh kết thực tế sau thực thi kiểm thử ứng dụng với kết mong đợi tập liệu • Tiếp tục vịng lặp với liệu đầu vào Khoa học & Công nghệ - Số 19/Tháng - 2018 2.3 Selenium WebDriver Selenium WebDriver [7] framework mã nguồn mở giúp xây dựng chương trình kiểm thử thực thi hành động lên trang Web cách tự động WebDriver chạy trực tiếp trình duyệt hỗ trợ tất trình duyệt phổ biến Firefox, Chrome, IE, Opera, Safari WebDriver chạy tất tảng Windows, Linux Macintosh Đây cơng cụ hữu ích cho việc kiểm thử chức ứng dụng Web kiểm tra khả tương thích với trình duyệt WebDriver hỗ trợ viết kịch kiểm thử nhiều ngôn ngữ khác bao gồm Java, C#, Python, PHP, Ruby, Perl Về mặt chất, WebDriver gói cung cấp API hay gọi thư viện Journal of Science and Technology 47 ISSN 2354-0575 Hình Kiến trúc Selenium WebDriver [15] Bài tốn chương trình 3.1 Bài tốn Bài tốn đặt xây dựng cơng cụ kiểm thử chức hướng liệu thực kiểm thử nhiều trang Web khác nhiều trình duyệt khác Google Chrome, FireFox, IE, Opera, Safari mà không yêu cầu người sử dụng cần trang bị kiến thức lập trình Vấn đề đặt trang Web có số lượng đối tượng cần tương tác trang khác nhau, dẫn đến số lượng đầu vào kiểm thử khác Như cần xây dựng phần mềm với số lượng đầu vào tùy biến Đồng thời đối tượng trang Web xác định nhiều cách khác dựa mã HMLT trang Web đó, bao gồm kiểu định vị như: Id, Name, Class Name, XPath, CssSelector, LinkText, Partial Link Text, Tag name Input: tệp liệu đầu vào bao gồm thông tin: mã trường hợp kiểm thử, kiểu định vị đối tượng trang, giá trị định vị đối tượng, giá trị liệu cần nhập cho đối tượng kết mong đợi tương ứng với trường hợp kiểm thử Output: kết trường hợp kiểm thử nhận giá trị Pass Fail Hỗ trợ báo cáo thông qua email, xuất tệp Excel chụp ảnh hình lúc thực thi kịch 3.2 Dữ liệu Dữ liệu xây dựng thử nghiệm cho chức tạo tài khoản Google Tệp liệu cho kịch kiểm thử có cấu trúc sau: Bảng Cấu trúc testcase hướng liệu 48 Khoa học & Công nghệ - Số 19/Tháng - 2018 Journal of Science and Technology ISSN 2354-0575 Cấu trúc tệp liệu bao gồm phần: - TCID: mã trường hợp kiểm thử Mỗi dòng tương ứng với trường hợp kiểm thử - Locator 1- Locator 5: dùng để xác định đối tượng trang Web cần tương tác kiểm thử bao gồm phần: phần trước dấu @ từ khóa bao gồm: Id, Name, Class Name, XPath, CssSelector, LinkText, Partial Link Text, Tag name; sau dấu @ giá trị cách định vị tương ứng Tùy thuộc số đối tượng trang Web cần tương tác, số lượng trường Locator tăng giảm Tùy thuộc vào mã HTML mà trang Web xây dựng, từ khóa xác định đối tượng lựa chọn khác - Button: xác định đối tượng Button trang Web Cách viết tương tự Locator phía - Value - Value 5: giá trị đầu vào tương ứng với đối tượng xác định Locator Mỗi dòng giá trị đầu vào tương ứng cho trường hợp kiểm thử Mỗi liệu đầu vào xác định thông qua kỹ thuật kiểm thử hộp đen như: Phân vùng tương đương, Phân tích giá trị biên, Kỹ thuật bảng định [8] - Act_Loc: xác định vị trí đối tượng trang chứa kết thực tế sau thực kịch bảng kiểm thử - Exp: kết mong đợi trường hợp kiểm thử 3.3 Xây dựng ứng dụng kiểm thử Trong phần mô tả chi tiết nguyên lý hoạt động chương trình cài đặt cơng cụ Ngun lý hoạt động Hình Ngun lý hoạt động cơng cụ Hoạt động công cụ kiểm thử tự động hướng liệu phân tích thành bước sau: - Bước 1: Nhập yêu cầu đầu vào cho chương trình bao gồm: (1) Ứng dụng cần kiểm thử: Đường link trang Web cần kiểm thử (Application Under Test) (2) Trình duyệt: lựa chọn trình duyệt thực kiểm thử (3) Tệp liệu kiểm thử: Nhập trường hợp kiểm thử liệu kiểm thử có cấu trúc xây dựng Bảng - Bước 2: Xử lý trường hợp kiểm thử kiểm thử tự động ứng dụng Web thông qua kịch Khoa học & Công nghệ - Số 19/Tháng - 2018 kiểm thử xây dựng dựa tảng hỗ trợ Selelinum WebDriver Chương trình thực tự động thao tác kiểm thử trình duyệt chọn với dịng liệu tệp liệu: nhập liệu vào đối tượng trang thông qua Locator Value; nhấn nút Button trang xác định Button so sánh kết thực tế với kết mong đợi Exp Kết thực tế xác định thông qua cột liệu Act_Loc - Bước 3: Đưa kết kiểm thử qua ba kênh: giao diện công cụ, gửi email xuất excel Chương trình hỗ trợ gửi mail tới Journal of Science and Technology 49 ISSN 2354-0575 nhiều người liên quan lúc Kết kiểm thử xuất tệp Excel giúp cho kiểm thử viên tổng hợp báo cáo cách dễ dàng, nhanh chóng thuận tiện Ngồi chương trình cịn cung cấp tính năng: Chụp ảnh hình lúc thực thi kiểm thử giúp kiểm thử viên dễ dàng việc tìm lỗi Các chương trình xây dựng: Chương trình 1: Xử lý tệp liệu đầu vào: Bước 1: Thực chuyển liệu từ tệp Excel sang dạng list Chúng ta thao tác với liệu list Bước 2: Sử dụng vịng lặp thực cơng việc sau: Xét dịng list, tiêu đề cột liệu: Nếu bắt đầu từ “Locator”, “Button”, “Atc” xét ký tự đầu trước phần @ ô liệu Các ký tự đầu ký hiệu kiểu định vị đối tượng trang Web xác định Selenium WebDriver: Id, Name, Class Name, XPath, CssSelector, LinkText, Partial Link Text, Tag name Dựa vào kiểu định vị, ứng dụng tương tác với đối tượng trang Web Nếu bắt đầu từ “Value” lấy giá trị nhập vào cho đối tượng trang Web tương ứng Nếu “Act_Loc” dùng để lấy kết thực tế sau thực thi kịch kiểm thử với liệu cụ thể Nếu “Exp” đưa kết mong đợi tương ứng cho kịch kiểm thử Bước 3: Thực so sánh kết thực tế với kết mong đợi: Nếu kết thực tế kết mong đợi giống trả kết Pass Đồng thời cộng kết số lượng trường hợp kiểm thử Pass thêm đơn vị Nếu kết thực tế kết mong đợi khơng giống trả kết Fail Đồng thời cộng kết số lượng trường hợp kiểm thử Fail thêm đơn vị Tổng số trường hợp kiểm thử tính dựa độ dài list Chương trình 2: Chuyển đổi liệu từ tệp liệu sang dạng list (danh sách) Bước 1: Tạo đối tượng Excel sử dụng thư viện Microsoft.Office.Interop.Excel Bước 2: Sử dụng vòng lặp đọc dòng liệu chuyển sang list bao gồm dòng tiêu đề Chương trình 3: Thực gửi email tới thành viên liên quan Bước 1: Khai báo sử dụng dịch vụ Google 50 SMTP gmail Bước 2: Thực lấy thông tin từ công cụ bao gồm: Địa email người gửi, Địa email người nhận (số lượng email người nhận nhiều người, tùy thuộc vào số email nhập), Tiêu đề thư, Nội dung thư Nội dung thư bao gồm thông tin sau: Tổng số trường hợp kiểm thử, số lượng trường hợp kiểm thử “Pass”, số lượng trường hợp kiểm thử “Fail” kết trường hợp kiểm thử cụ thể Và tệp đính kèm ảnh giao diện ứng dụng Web lúc thực thi kiểm thử Bước 3: Thực cấu hình gửi thư đưa thông báo thực gửi thành công 3.4 Kết thực Sau thực thi kịch kiểm thử, kết thu sau: Bảng Kết kiểm thử Tiêu đề Kết Ghi Total: 125 Tổng số trường hợp kiểm thử Pass: 103 Tổng số trường hợp kiểm thử thành công Fail: 22 Tổng số trường hợp kiểm thử không thành công TC01 Pass Kết kiểm thử mã TC01 TC02 Pass Kết kiểm thử mã TC02 TC03 Fail Kết kiểm thử mã TC03 … … … Từ thơng tin Bảng 2, có số phân tích: tính tỉ lệ test case thành công tổng số lượng test case Từ đưa định dừng kiểm thử hay chưa Đồng thời thông tin kết cụ thể test case cho phép biết trường hợp kiểm thử chưa thành cơng, thơng tin chuyển cho bên lập trình viên để thực chỉnh sửa Ngoài ra, việc lưu ảnh chụp hình lúc thực thi giúp việc tìm lỗi nhanh chóng Một lợi cơng cụ so với công cụ khác tự động chụp ảnh hình ứng dụng Web lúc thực thi kiểm thử tự động gửi kết kiểm thử tới người liên quan thông qua email Kết luận Bài báo có đóng góp sau: xây dựng công cụ kiểm thử tự động hướng liệu kiểm thử chức trang Web ba trình duyệt phổ biến Chrome, Firefox IE, đồng thời không yêu cầu người sử dụng có kiến thức lập trình Cơng việc mở Khoa học & Công nghệ - Số 19/Tháng - 2018 Journal of Science and Technology ISSN 2354-0575 rộng kết đạt báo công việc Thứ nhất, muốn mở rộng đầu vào liệu không file liệu Excel, mà nhiều dạng file liệu khác, cụ thể XML, CSV, Database; mở rộng kiểm thử hai trình duyệt Opera Safari Thứ hai, muốn triển khai kiểm thử ứng dụng mobile, cụ thể ứng dụng Android IOS Sau tìm hiểu so sánh vậy, chúng tơi tin cơng cụ mở rộng ứng dụng hỗ trợ kiểm thử tự động chức hướng liệu cách hiệu Tài liệu tham khảo [1] Bruns, A., Kornstadt, A., & Wichmann, D., Web application tests with selenium IEEE software, 26(5), 2009 [2] Vina M Lomte, Rishikesh Chandra, Ayush Gondhali, Ashish Shinde, Sanket Pimple, Data Driven Automation Testing Framework IJETCAS, 2014, pp 51-56 [3] Murugesan, S., Deshpande, Y., Hansen, S., & Ginige, A., Web engineering: A new discipline for development of web-based systems In Web Engineering, Springer, Berlin, Heidelberg, 2001, pp 3-13 [4] Conallen, J., Modeling Web application architectures with UML Communications of the ACM, 1999, 42(10), 63-70 [5] Krishna Rungta, Learn Selenium in Day: Definitive Guide to Learn Selenium for Beginners Penguin Random House South Afr, 2017 [6] Carl Cocchiaro, Selenium Framework Design in Data-Driven Testing Packt, 2018 [7] Zhan, Zhimin, Selenium WebDriver Recipes in C#, Apress, 2015 [8] Phạm Ngọc Hùng, Trương Anh Hoàng, Đặng Văn Hưng, Giáo trình kiểm thử phần mềm, 2014, pp 108-130 [9] https://www.softwaretestinghelp.com/qtp-tutorial-18-data-driven-and-hybrid-frameworks/ [10].https://medium.com/@katalon_studio/data-driven-testing-approach-with-katalon-studiob835c9e491dd [11].https://viblo.asia/p/kiem-thu-thu-cong-manual-testing-va-kiem-thu-tu-dong-automatedtesting-QWkwGnpER75g [12] https://www.softwaretestingmaterial.com/types-test-automation-frameworks/ [13].https://medium.com/@briananderson2209/best-automation-testing-tools-for-2018-top-10reviews-8a4a19f664d2 [14] https://smartbear.com/product/testcomplete/overview/ [15] https://www.softwaretestingmaterial.com/selenium-webdriver-architecture/ [16] https://dzone.com/articles/10-best-open-source-test-automation-frameworks-for DATA DRIVEN AUTOMATION TESTING FRAMEWORK FOR WEB APPLICATIONS USING SELENIUM WEBDRIVER Abstract: Software testing is the main technique to ensure quality and finding bugs In general, this is a difficult and time-consuming task Web applications are becoming more and more complex Due to the peculiarities of such applications, so manual testing is often poorly performed or skipped by testers Test automation can help to avoid this situation Data-driven automated testing with test scripts stored in spreadsheet formats is very effective in testing Web applications The goal of this paper is to develop a self-guided data-driven testing tool for web applications using the Selenium WebDriver framework With this testing tool, users can test any web page without programming knowledge Keywords: Software Testing, Automation Testing, Selenium WebDriver, Framework, Data Driven Framework Khoa học & Công nghệ - Số 19/Tháng - 2018 Journal of Science and Technology 51 ... hình kiểm thử hướng liệu Kiểm thử tự động hướng liệu tạo kịch kiểm thử nơi liệu kiểm thử giá trị đầu đọc từ tệp liệu thay sử dụng giá trị cụ thể cho lần chạy kiểm thử Bằng cách này, kiểm thử viên... kiểm thử tự động ứng dụng Web vô cần thiết - Ứng dụng Web ngày trở nên phức tạp, việc kiểm thử thủ công điều khơng thể Chúng tơi xây dựng cơng cụ kiểm thử chức hướng liệu cho trang web kiểm thử. .. trình duyệt thực kiểm thử (3) Tệp liệu kiểm thử: Nhập trường hợp kiểm thử liệu kiểm thử có cấu trúc xây dựng Bảng - Bước 2: Xử lý trường hợp kiểm thử kiểm thử tự động ứng dụng Web thông qua kịch

Ngày đăng: 25/04/2021, 10:47

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan