1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu selenium và ứng dụng trong kiểm thử website

67 2 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

HỌC VIỆN NGÂN HÀNG KHOA HỆ THỐNG THÔNG TIN QUẢN LÝ ⸺⸺***⸺⸺ BÁO CÁO CHUYÊN ĐỀ THỰC TẬP TÊN ĐỀ TÀI NGHIÊN CỨU SELENIUM WEBDRIVER VÀ ỨNG DỤNG TRONG KIỂM THỬ ỨNG DỤNG WEB TÊN SINH VIÊN NGUYỄN THÙY NHUNG HÀ NỘI, NĂM 2020 HỌC VIỆN NGÂN HÀNG KHOA HỆ THỐNG THÔNG TIN QUẢN LÝ BÁO CÁO CHUYÊN ĐỀ THỰC TẬP TÊN ĐỀ TÀI NGHIÊN CỨU SELENIUM WEBDRIVER VÀ ÁP DỤNG TRONG KIỂM THỬ ỨNG DỤNG WEB Giáo viên hướng dẫn: TS.Phan Thanh Đức Sinh viên thực hiện: Nguyễn Thùy Nhung Mã sinh viên: Lớp: Khóa: 2016-2020 Hệ: Đại học quy Hà Nội, tháng 06/ 2020 LỜI CẢM ƠN Em xin gửi lời cảm ơn chân thành tới TS Phan Thanh Đức – Giảng viên Khoa Hệ thống thông tin Quản lý – Học viện Ngân hàng Thầy ln tạo điều kiện tận tình hướng dẫn, giúp đỡ em hoàn thành chuyên đề tốt nghiệp Em xin chân thành cảm ơn Ban lãnh đạo công ty Episerver tạo điều kiện thuận lợi cho em tìm hiểu thực tiễn suốt trình thực tập công ty Đặc biệt cảm ơn anh chị hướng dẫn trực tiếp dạy cho em nhiều kiến thức mẻ thực tế, áp dụng vào đề tài chuyên đề tốt nghiệp mà cịn phục vụ cho cơng việc thực tiễn sau trường Cuối em xin gửi lời cảm ơn đến tồn thể thầy trường Học viện Ngân hàng, đặc biệt thầy cô Khoa Hệ thống thông tin Quản lý giảng dạy truyền đạt tận tình cho em kiến thức bổ ích năm học tập trường Em xin chân thành cảm ơn! Hà Nội, Ngày Tháng 06 Năm 2020 Sinh viên thực Nguyễn Thùy Nhung LỜI CAM ĐOAN Em xin cam đoan đề tài: “Nghiên cứu Selenium WebDriver áp dụng kiểm thử ứng dụng Web” trình bày báo cáo tốt nghiệp em thực hướng dẫn bảo Ts.Phan Thanh Đức Tất tài liệu tham khảo khảo dự án cho phép bên liên quan ghi cách rõ ràng danh mục tài liệu tham khảo báo cáo tốt nghiệp Trong báo cáo, khơng có việc chép tài liệu, cơng trình nghiên cứu người khác mà không rõ tài liệu tham khảo Hà Nội, Tháng Năm 2020 Sinh viên thực Nguyễn Thùy Nhung NHẬN XÉT (Của quan thực tập) ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… Hà Nội, ngày tháng 05 năm 2020 Người nhận xét (Ký tên, đóng dấu) NHẬN XÉT (Của giáo viên hướng dẫn) ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… Kết luận : ………… ………………………………………………………………… Hà Nội, ngày tháng 05 năm 2020 Giáo viên hướng dẫn (Ký tên) MỤC LỤC MỞ ĐẦU CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ BÀI TOÁN VÀ CƠ SỞ PHƯƠNG PHÁP LUẬN 1.1 Giới thiệu đơn vị thực tập 1.1.1 Sự hình thành phát triển .3 1.1.2 Các giải pháp công ty Episerver cung cấp cho khách hàng 1.2 Giới thiệu toán 1.3 Cơ sở phương pháp luận kiểm thử Website 1.3.1 Khái quát kiểm thử Website 1.3.2 Đặc điểm chất lượng Website 1.3.3 Quy trình kiểm thử ứng dụng Web .8 1.3.4 Các mức độ nghiêm trọng lỗi 12 1.3.5 Mơ hình đại diện ứng dụng Web .13 1.4 Giới thiệu công cụ kiểm thự tự động Selenium 18 1.4.1 Kiểm thử tự động 18 1.4.2 Một số công cụ kiểm thử tự động hỗ trợ kiểm thử ứng dụng Website .20 1.4.3 Công cụ kiểm thử tự động Selenium .21 1.5 Selenium WebDriver 22 1.5.1 Tổng quan đối tượng UI(Locators) 24 1.5.2 Các hàm xử lý chung Selenium WebDriver 24 CHƯƠNG 2: TRIỂN KHAI HỆ THỐNG THỰC TẾ 27 2.1 Bài toán thử nghiệm 27 2.1.1 Hoàn cảnh đời toán 27 2.1.2 Giới thiệu website ShopDemoQA 27 2.2 Thiết kế testcase cho chức .28 2.2.1 Chức đăng ký 28 2.2.2 Chức đăng nhập hệ thống .31 2.2.3 Chức Search 33 2.2.4 Chức thêm sản phẩm vào giỏ hàng 34 2.2.5 Chức đặt hàng 35 2.2.6 Chức thêm sản phẩm vào mục yêu thích 38 2.3 Hướng giải toán 39 2.3.1 Các yêu cầu công nghệ .39 2.3.2 Hướng thực thi kiểm thử hệ thống 39 CHƯƠNG 3: THỰC NGHIỆM HỆ THỐNG VÀ ĐÁNH GIÁ KẾT QUẢ 45 3.1 Thực thi kiểm thử tự động Website với Selenium WebDriver .45 3.1.1 Chức đăng ký .45 3.1.2 Chức đăng nhập 48 3.1.3 Chức tìm kiếm sản phẩm .49 3.1.4 Chức thêm sản phẩm vào giỏ hàng 52 3.1.5 Chức đặt hàng 53 3.1.6 Chức thêm sản phẩm vào danh sách yêu thích .54 3.2 Đánh giá kết kiểm thử 54 3.3 Hướng phát triển công cụ kiểm thử tự động 56 KẾT LUẬN 57 DANH MỤC HÌNH V Hình 1: Các giải pháp công ty Episerver Hình 2: Quy trình kiểm thử ứng dụng Web .9 Hình 3: Phân loại mức độ nghiêm trọng lỗi 13 Hình 4: Mơ hình meta ứng dụng Web 14 Y Hình 1: Website ShopDemoQA 28 Hình 2: Các package hỗ trợ test 41 Hình 1: Chức đăng ký tài khoản 45 Hình 2: Dữ liệu kiểm thử chức đăng ký 46 Hình 3: Kết đầu chức đăng ký tài khoản 47 Hình 4: Chức đăng nhập tài khoản 48 Hình 5: Dữ liệu kiểm thử chức đăng nhập 49 Hình 6: Kết đầu chức đăng nhập 49 Hình 7: Dữ liệu kiểm thử chức tìm kiếm 50 Hình 8: Kết đầu chức tìm kiếm 51 Hình 9: Giỏ hàng 52 Hình 10: Chức đặt hàng 53 DANH MỤC BẢNG BIỂU Bảng 1: So sánh ưu nhược điểm kiểm thử thủ công kiểm thử tự động 20 Y Bảng 1: Test case chức đăng ký 31 Bảng 2: Test case chức đăng nhập hệ thống 33 Bảng 3: Test case chức tìm kiếm 34 Bảng 4: Test case chức thêm sản phẩm vào giỏ hàng .35 Bảng 5: Test case chức đặt hàng .38 Bảng 6: Test case chức thêm sản phẩm vào mục yêu thích .39 Bảng 1: Kết test chức đăng ký tài khoản 47 Bảng 2: Kết test chức đăng nhập 49 Bảng 3: Kết test chức tìm kiếm 51 Bảng 4: Kết test chức thêm sản phẩm giỏ hàng 53 Bảng 5: Kết test chức đặt hàng 54 Bảng 6: Kết test chức thêm sản phẩm vào danh dách yêu thích .54 Bảng 7: Kết kiểm thử chức .55  Tạo Class TestBase using NUnit.Framework; using OpenQA.Selenium.Chrome; using System; namespace ChuyenDe { public class TestBase { public static ChromeDriver driver; [SetUp] public void Setup() { driver = new ChromeDriver(); driver.Manage().Window.Maximize(); driver.Manage().Timeouts().ImplicitWait = } [TearDown] public void Cleanup() { driver.Quit(); } } } 43 TimeSpan.FromSeconds(30); Trong class TestBase: o [SetUp]: chạy trước method test, có tác dụng khởi tạo biến, chuẩn bị mơi trường test o [TearDown]: chạy sau method test, có tác dụng hủy biến, kết nối, đóng trình duyệt  Tạo class Tests thực thi test case using ChuyenDe.PageModels; using NUnit.Framework; using OpenQA.Selenium; using OpenQA.Selenium.Support.UI; using System; using System.Linq; namespace ChuyenDe { public class Tests : TestBase { [Test] public void Login() { driver.Navigate().GoToUrl("http://shop.demoqa.com/my-account/"); LoginRegister.UserNameLoginInput.SendKeys("kozomii04"); LoginRegister.PasswordLoginInput.SendKeys("thuynhung19982005"); LoginRegister.LoginButton.Click(); //Verify Login3:successful CHƯƠNG THỰC NGHIỆM HỆ THỐNG VÀ ĐÁNH GIÁ KẾT QUẢ Assert.IsNotNull(LoginRegister.LoginSuccess); } } } 44 3.1 Thực thi kiểm thử tự động Website với Selenium WebDriver 3.1.1 Chức đăng ký Hình 1: Chức đăng ký tài khoản 45  Kịch kiểm thử chức đăng ký tài khoản using ChuyenDe.PageModels; using NUnit.Framework; using System; namespace ChuyenDe.TestScrifts { public class Register:TestBase { static Lazy loginRegister = new Lazy(() => new LoginRegister()); LoginRegister LoginRegister { get { return loginRegister.Value; } } [Test] public void Register1() { driver.Url = "http://shop.demoqa.com/my-account/"; string userName = "Kozomii" + new Random().Next(1, 100000); string email = userName + "@gmail.com"; LoginRegister.UserNameRegisterInput.SendKeys(userName); LoginRegister.EmailRegisterInput.SendKeys(email); LoginRegister.PasswordRegisterInput.SendKeys("Kozomii123"); LoginRegister.RegisterButton.Click(); //Verify Register  File Excel mô tảsuccessful trừờng hợp kiểm thử đầu vào: Assert.IsNotNull(LoginRegister.RegisterSuccess); } } } Hình 2: Dữ liệu kiểm thử chức đăng ký  File Excel kết kiểm thử: 46 Hình 3: Kết đầu chức đăng ký tài khoản  Kết kiểm thử chức đăng ký Số lượng test case Số test case Pass Số test case Failure Số test case chưa thực Tỉ lệ thành công 100% Bảng 1: Kết test chức đăng ký tài khoản 3.1.2 Chức đăng nhập Hình 4: Chức đăng nhập tài khoản  Kịch kiểm thử chức đăng ký tài khoản 47  using ChuyenDe.PageModels; using NUnit.Framework; using System; namespace ChuyenDe.TestScrifts { public class Login:TestBase { static Lazy loginRegister = new Lazy(() => new LoginRegister()); LoginRegister LoginRegister { get { return loginRegister.Value; } } [Test] public void Login1() { driver.Navigate().GoToUrl("http://shop.demoqa.com/my-account/"); LoginRegister.UserNameLoginInput.SendKeys("kozomii04"); LoginRegister.PasswordLoginInput.SendKeys("thuynhung19982005"); LoginRegister.LoginButton.Click(); //Verify successful File Excel mô tảLogin trừờng hợp kiểm thử đầu vào: Assert.IsNotNull(LoginRegister.LoginSuccess); } } Hình 5: Dữ liệu kiểm thử chức đăng nhập  File Excel kết kiểm thử: Hình 6: Kết đầu chức đăng nhập 48  Kết kiểm thử chức đăng nhập Số lượng test case Số test case Pass Số test case Failure Số test case chưa thực Tỉ lệ thành công 100% Bảng 2: Kết test chức đăng nhập 3.1.3 Chức tìm kiếm sản phẩm  Kịch kiểm thử chức tìm kiếm using ChuyenDe.PageModels; using NUnit.Framework; using OpenQA.Selenium; using System; namespace ChuyenDe.TestScrifts { public class Search:TestBase { static Lazy loginRegister = new Lazy(() => new LoginRegister()); LoginRegister LoginRegister { get { return loginRegister.Value; } } [Test] public void SearchProduct1() { //Search product LoginRegister.Search.Click(); LoginRegister.FormSearch.SendKeys("dress"); LoginRegister.FormSearch.SendKeys(Keys.Enter); //Verify search result is not null string expectedMessage = "Showing all 16 results"; NUnit.Framework.StringAssert.Contains(expectedMessage, LoginRegister.SearchSuccess.Text); } } 49  File Excel mô tả trừờng hợp kiểm thử đầu vào: Hình 7: Dữ liệu kiểm thử chức tìm kiếm  File Excel kết kiểm thử: Hình 8: Kết đầu chức tìm kiếm  Kết kiểm thử chức tìm kiếm Số lượng test case Số test case Pass Số test case Failure Số test case chưa thực Tỉ lệ thành công 100% Bảng 3: Kết test chức tìm kiếm 50 3.1.4 Chức thêm sản phẩm vào giỏ hàng Hình 9: Giỏ hàng  Kết kiểm thử chức thêm sản phẩm vào giỏ hàng 51 Số lượng test case Số test case Pass Số test case Failure Số test case chưa thực Tỉ lệ thành công 100% Bảng 4: Kết test chức thêm sản phẩm giỏ hàng 3.1.5 Chức đặt hàng Hình 10: Chức đặt hàng  Kết kiểm thử chức đặt hàng Số lượng test case Số test case Pass Số test case Failure 10 10 52 Số test case chưa thực Tỉ lệ thành công 100% Bảng 5: Kết test chức đặt hàng 3.1.6 Chức thêm sản phẩm vào danh sách yêu thích  Kết kiểm thử chức thêm sản phẩm vào danh sách yêu thích Số lượng test case Số test case Pass Số test case Failure Số test case chưa thực Tỉ lệ thành công 100% Bảng 6: Kết test chức thêm sản phẩm vào danh dách yêu thích 3.2 Đánh giá kết kiểm thử Đánh giá tồn q trình kiểm thử tổng số 36 test case chức hệ thống: Chức Tổng số test Số test pass Số test failure Tỉ lệ tài 5 công 100% khoản Đăng nhập tài 6 100% khoản Tìm kiếm 4 100% sản 5 100% 10 100% Đăng ký Thêm phẩm vào giỏ hàng Đặt hàng 10 53 thành Thêm sản 6 100% phẩm vào danh sách yêu thích Bảng 7: Kết kiểm thử chức  Nhận xét:  Tính khả dụng: Giao diện đơn giản, dễ sử dụng Chức phím tab, enter hoạt động tốt Khơng có lỗi tả, khơng khó để đọc chữ, hình ảnh xếp gọn gàng, hợp lý Giao diện có đầy đủ có menu menu quán với giao diện chức khác hệ thống Khi phóng to, thu nhỏ khơng bị vỡ giao diện  Khả tương thích Thực đầy đủ tất trƣờng hợp đƣợc mô tả thiết kế test case  Về chức Thực đầy đủ tất trường hợp đƣợc mô tả thiết kế test case 3.3 Hướng phát triển công cụ kiểm thử tự động  Xây dựng thêm phần DataDriven Selenium DataDriven giúp cho hệ thống đọc liệu đầu vào từ hệ thống quản lý file từ hệ quản trị sở liệu  Cải tiến framework để hỗ trợ cho bạn kiểm thử kỹ lập trình sử dụng dễ dàng 54 KẾT LUẬN Kiểm thử phần mềm giữ vai trò quan trọng việc đảm bảo chất lượng sản phẩm phần mềm Mặc dù việc sử dụng công cụ kiểm thử tự động giúp giảm thời gian, kinh phí, nhân lực trình phát triển phần mềm Nhưng có việc mà cơng cụ kiểm thử tự động thay kiểm thử viên, có việc cấu hình cho khó khăn nhiều so với kiểm thử thủ cơng Do đó, kiểm thử viên giỏi phải người nhận biết nên sử dụng công cụ kiểm thử tự động nên kiểm thử thủ công Sau thời gian thực chuyên đề hướng dẫn TS.Phan Thanh Đức, kết mà em thu cụ thể sau: Kết đạt được: 55  Trình bày kiến thức kiểm thử phần mềm nói chung kiểm thử phần mềm tự động cho ứng dụng Web nói riêng  Giới thiệu đặc điểm, thành phần công cụ kiểm thử tự động Selenium  Áp dụng kiến thức tìm hiểu vào thực kiểm thử tự động chức ứng dụng Web ShopDemoQA Hạn chế:  Chưa thể giả lập nhiều người dùng ảo chạy đồng thời để kiểm thử khả xử lý xung đột có nhiều khách hàng đặt hàng vào thời điểm  Chưa xây dựng DataDriven giúp cho hệ thống đọc liệu đầu vào từ hệ thống quản lý file TÀI LIỆU THAM KHẢO Tiếng Việt [1] Phạm Ngọc Hùng, Trương Anh Hồng, Đặng Văn Hưng Giáo trình kiểm thử phần mềm - tháng năm 2014 Tiếng Anh [2] David Burns Selenium 1.0 Testing Tools: Beginner's Guide Paperback – November 11, 2010 published by Packt Publishing Ltd [3] David Burns Selenium Testing Tools: Beginner's Guide Paperback – October 19, 2012 published by Packt Publishing Ltd 56 [4] Hans-Erik Eriksson, Magnus Penker, Brian Lyons, and David Fado, UML Toolkit, 2003, published by Wiley Publishing, pages 24-45 and 337-460 [5] Daniel Galin, “Software Quality Assurance From Theory to Implementation”, 2004, published by Israel’s leading publishers, pages 205 – 235 [6] Mike O'Docherty, Object Oriented Analysis & Design: Understanding System Development with UML 2.0, pages 123-147, 430-452, 2005 Danh mục Website tham khảo [7] WebDriver: Advanced Usage http://www.seleniumhq.org/ 57 ... người sử dụng ứng dụng …dẫn đến việc kiểm thử ứng dụng Web có khác biệt định so với kiểm thử phần mềm truyền thống Trong đó, kiểm thử giao diện người dùng, kiểm thử hiệu loại kiểm thử mà ứng dụng. .. Đề tài ? ?Nghiên cứu Selenium WebDriver áp dụng kiểm thử ứng dụng Web” nhằm nghiên cứu làm rõ tính năng, ưu nhược điểm công cụ Selenium kiểm thử website Với việc chọn đề tài ? ?Nghiên cứu Selenium. .. So sánh ưu nhược điểm kiểm thử thủ công kiểm thử tự động 1.4.2 Một số công cụ kiểm thử tự động hỗ trợ kiểm thử ứng dụng Website  Ranorex: Công cụ kiểm thử tự động cho ứng dụng Web, desktop di

Ngày đăng: 08/08/2022, 12:31

Xem thêm:

w