Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 210 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
210
Dung lượng
5,57 MB
Nội dung
BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA: AN TỒN THƠNG TIN BÀI TẬP LỚN MƠN HỌC XÂY DỰNG ỨNG DỤNG WEB AN TOÀN Đề tài: KIỂM THỬ ỨNG DỤNG TRÊN NỀN WEB BẰNG CÔNG CỤ KATALON STUDIO Giảng viên hướng dẫn: ThS Hoàng Thanh Nam Sinh viên thực hiện: Nguyễn Văn Minh Hoàng Phạm Thị Thương Mến Thiều Thùy Trang Nữ Trần Võ Anh Thư Phan Văn Sự Lớp: AT12L Khóa: 12 TP Hồ Chí Minh, tháng năm 2019 BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA: AN TỒN THƠNG TIN BÀI TẬP LỚN MÔN HỌC XÂY DỰNG ỨNG DỤNG WEB AN TOÀN Đề tài: KIỂM THỬ ỨNG DỤNG TRÊN NỀN WEB BẰNG CÔNG CỤ KATALON STUDIO Giảng viên hướng dẫn: ThS Hoàng Thanh Nam Sinh viên thực hiện: Nguyễn Văn Minh Hoàng Phạm Thị Thương Mến Thiều Thùy Trang Nữ Trần Võ Anh Thư Phan Văn Sự Lớp: AT12L Khóa: 12 TP Hồ Chí Minh, tháng năm 2019 LỜI MỞ ĐẦU Ngày nay, cơng nghệ thơng tin nói chung cơng nghệ phần mềm nói riêng chiếm vị trí quan trọng tiến trình cơng nghiệp hoá, đại hoá đất nước Song song với việc phát triển công nghệ phần mềm tiềm ẩn thách thức cho dành doanh nghiệp, nhà phát triển phần mềm việc kiểm soát lỗi, chất lượng đầu sản phẩm Nguyên nhân gây thiệt hại kinh tế xã hội phần mềm không lỗi bảo mật mà lỗi chức sản phẩm Kiểm thử phần mềm trình liên tục, xuyên suốt giai đoạn phát triển phần mềm để đảm bảo phần mềm thỏa mãn yêu cầu thiết kế yêu cầu đáp ứng nhu cầu người sử dụng Các kỹ thuật kiểm thử phần mềm nghiên cứu việc kiểm thử phần mềm trở thành quy trình bắt buộc dự án phát triển phần mềm giới Ngày xu hướng áp dụng tự động hoá triển khai rộng rãi nhiều lĩnh vực, có kiểm thử phần mềm Đặc biệt, kiểm thử phần mềm cơng đoạn chiếm phần lớn thời gian q trình phát triển dự án phần mềm đời cơng cụ kiểm thử tự động có ý nghĩa hết, giúp tiết kiệm thời gian, công sức tiền bạc Katalon Studio công cụ hỗ trợ kiểm thử tự động tốt cho ứng dụng Web, hoạt động hầu hết trình duyệt phổ biến Firefox, Chrome, Internet Explorer, Safari, v.v Công cụ hỗ trợ số lượng lớn ngơn ngữ lập trình Web phổ biến Với mong muốn tìm hiểu sâu lĩnh vực kiểm thử phần mềm bổ sung thêm kiến thức cho lĩnh vực kiểm thử bảo mật, nhóm chúng em chọn đề tài “Kiểm thử ứng dụng Web công cụ Katalon Studio.” Trong q trình làm đồ án mơn học, hạn chế thời gian kinh nghiệm thực tế, nhóm chúng em mong nhận góp ý chân thành từ thầy cô bạn Đề tài giới thiệu lý thuyết kiểm thử ứng dụng, cơng cụ hỗ trợ kiểm thử tự động Ngồi ra, đề tài sâu vào việc tìm hiểu, sử dụng tính năng, cơng cụ phần mềm Katalon Studio như: - Đưa hướng dẫn cài đặt, sử dụng hiệu công cụ Ứng dụng kiến thức học để viết kịch kiểm thử cho ứng dụng cụ thể - Đồ án tổ chức làm phần sau: - Mở đầu: Trình bày rõ lý chọn đề tài, mục tiêu nghiên cứu đồ án bố cục đồ án - Chương 1: Kiểm thử ứng dụng Web Chương trình bày chi tiết khái niệm kiểm thử ứng dụng Web, công việc kiểm thử ứng dụng Web, giới thiệu số công cụ hỗ trợ kiểm thử ứng dụng web Xác định quy trình kiểm thử phần mềm, ca kiểm thử mức độ nghiêm trọng lỗi xảy - Chương 2: Kiểm thử ứng dụng Web công cụ Katalon Studio Giới thiệu chung Katalon Studio, cài đặt sử dụng công cụ, ứng dụng thực tế với Katalon Studio Chương 3: Giới thiệu toán tiến hành demo thực nghiệm với công cụ Katalon Studio - - Kết luận: Phần đưa kết đồ án đạt được, thiếu sót chưa thực hướng phát triển đề tài tương lai LỜI CẢM ƠN Chúng em xin chân thành cảm ơn thầy Hoàng Thanh Nam bảo tận tình giúp đỡ chúng em suốt q trình làm đồ án mơn học Với hướng dẫn thầy, nhóm chúng em có định hướng tốt việc triển khai thực yêu cầu làm tập lớn môn học Nhóm Sinh viên thực Nguyễn Văn Mininh Hoàng Phạm Thị Thương Mến Thiềiều Thùy Trang Nữ Trần Võ Anh Thư Phhaan Văn Sự MỤC LỤC DANH MỤC HÌNH VẼ VÀ BẢNG BIỂU DANH MỤC TỪ VIẾT TẮT CHƯƠNG 1: KIỂM THỬ ỨNG DỤNG TRÊN NỀN WEB 1.1 Khái quát kiểm thử ứng d 1.1.1 Khái quát 1.1.2.Các loại ứng dụng Web 1.1.3 Đặc điểm chất lượng ứng dụng Web 1.1.5.Khái niệm Ca kiểm thử 1.1.6 1.2 Các mức độ Kiểm thử tự động kiểm t 1.2.1 Khái niệm 1.2.2 Đặc điểm 1.3 Công việc kiểm th 1.3.1.Kiểm thử chức 1.3.2.Kiểm thử khả sử dụng 1.3.3 Kiểm thử s 1.3.4.Kiểm thử hiệu suất 1.3.5 1.4 Kiểm thử b Một số công cụ hỗ trợ kiểm 1.4.1.Công cụ kiểm thử hiệu 1.4.2.Công cụ kiểm thử bảo mật 1.4.3.Công cụ kiểm thử chức CHƯƠNG 2:KIỂMTHỬỨNGDỤNGTRÊNNỀNWEBBẰN STUDIO 2.1 Giới thiệu Katalon Studi 2.2 Các tính Ka 2.3 Làm việc với Katalon Studi 2.4 Quy trình làm việc Kata 2.5 So sánh công cụ kiểm t CHƯƠNG 3: TIẾN HÀNH CÀI ĐẶT VÀ DEMO THỰC NGHIỆM VỚI CÔNG STUDIO 3.1 3.1.1 3.1.2 Cài đặt cấu hình Cách cài đ Cấu hình import static com.kms.katalon.core.checkpoint.CheckpointFactory.findChe ckpoint import static com.kms.katalon.core.testcase.TestCaseFactory.findT estCase import static com.kms.katalon.core.testdata.TestDataFactory.findTe stData import static com.kms.katalon.core.testobject.ObjectRepository.findTestO bject import com.kms.katalon.core.checkpoint.Checkpoint as Checkpoint import com.kms.katalon.core.cucumber.keyword.CucumberBuiltinK eywords as CucumberKW import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeyword s as Mobile import com.kms.katalon.core.model.FailureHandling as FailureHandling import com.kms.katalon.core.testcase.TestCase as TestCase import com.kms.katalon.core.testdata.TestData as TestData import com.kms.katalon.core.testobject.TestObject as TestObject import com.kms.katalon.core.webservice.keyword.WSBuiltInKeyw ords as WS import com.kms.katalon.core.webui.keyword.WebUiBuiltI nKeywords as WebUI import internal.GlobalVariable as GlobalVariable WebUI.openBrowser('http://localhost/kata/') 'Sign Up account' WebUI.click(findTestObject('Page_WELCOME/a_Sign up')) WebUI.setText(findTestObject('Page_WELCOME/Page_Si gn Up -WELCOME/input_Sign in now_username'), findTestData('sign_up_account').getValue(1, rowNum)) 'Enter an username' WebUI.setText(findTestObject('Page_WELCOME/Page_Sign Up -WELCOME/input_Sign in now_username'), username) / 77 'Enter password\r\n' WebUI.setText(findTestObject('Page_WELCOME/Page_Si gn Up - WELCOME/input_Sign in now_password'), password) WebUI.setText(findTestObject('Page_WELCOME/Page_ Sign Up - WELCOME/input_Sign in now_password'), findTestData('sign_up_account').getValue(2, rowNum)) //WebUI.setText(findTestObject('Page_WELCOME/Page_Sig n Up - WELCOME/input_Sign / in now_email'), findTestData('sign_up_account').getValue( 3, rowNum)) 'Enter email\r\n' WebUI.setText(findTestObject('Page_WELCOME/Page_Si gn Up - WELCOME/input_Sign in now_email'), email) 'Click button Sign in\r\n' WebUI.click(findTestObject('Page_WELCOME/Page_Sign Up - WELCOME/input_Sign in now_signup')) 'Check Value is empty\r\n' if (((username == '') || (password == '')) || (email == '')) { WebUI.verifyElementPresent(findTestObject('Pag e_WELCOME/Page_Sign Up WELCOME/strong_ERROR Input fields are invalid'), 1) } else if (((username != '') || (password != '')) || (email != '')) { WebUI.delay(1) WebUI.verifyElementText(findTestObject('Page_WELC OME/h1_Home'), 'Home') } else { 'Sign In failed' WebUI.verifyElementText(findTestObject('Page_WELCO ME/Page_Sign In WELCOME/strong_ERROR Account or Password is incorrect'), 'ERROR! Sign Up Failed') } Thread.sleep(3000) //} WebUI.delay(1) 'Close Browser' WebUI.closeBrowser() II.3 UI import static com.kms.katalon.core.checkpoint.CheckpointFactory.findChe ckpoint import static com.kms.katalon.core.testcase.TestCaseFactory.findT estCase import static com.kms.katalon.core.testdata.TestDataFactory.findTe stData import static com.kms.katalon.core.testobject.ObjectRepository.findTestO bject import com.kms.katalon.core.checkpoint.Checkpoint as Checkpoint import com.kms.katalon.core.cucumber.keyword.CucumberBuiltinK eywords as CucumberKW import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeyword s as Mobile import com.kms.katalon.core.model.FailureHandling as FailureHandling 78 import com.kms.katalon.core.testcase.TestCase as TestCase import com.kms.katalon.core.testdata.TestData as TestData import com.kms.katalon.core.testobject.TestObject as TestObject import com.kms.katalon.core.webservice.keyword.WSBuiltInKeyw ords as WS import com.kms.katalon.core.webui.keyword.WebUiBuiltI nKeywords as WebUI import internal.GlobalVariable as GlobalVariable 'Open Browser' WebUI.openBrowser('http://localhost/kata/') 'Check Button Signin exist' WebUI.verifyElementText(findTestObject('New Folder/Page_WELCOME/a_Sign in'), 'Sign in') 'Check Button Signup exist' WebUI.verifyElementText(findTestObject('New Folder/Page_WELCOME/a_Sign up'), 'Sign up') 'Check span KATALON exist' WebUI.verifyElementText(findTestObject('New Folder/Page_WELCOME/span_KATALON STUDIO'), 'KATALON STUDIO') 'Check Title Home in Slide exist' WebUI.verifyElementText(findTestObject('New Folder/Page_WELCOME/h1_Home'), 'Home') WebUI.verifyElementPresent(findTestObject('New Folder/Page_WELCOME/span_Members_glyphicon glyphicon-chevron-left'), 1) 'Click Button right move to Slide 2' WebUI.click(findTestObject('New Folder/Page_WELCOME/span_Previous_glyphicon glyphicon-chevron-right'), FailureHandling.STOP_ON_FAILURE) 'Check Title Members in Slide exist' WebUI.verifyElementText(findTestObject('New Folder/Page_WELCOME/h1_Members'), 'Members') WebUI.verifyElementPresent(findTestObject('New Folder/Page_WELCOME/span_Previous_glyphicon glyphicon-chevron-right'), 1) 'Click Button left move to Slide 1' WebUI.click(findTestObject('New Folder/Page_WELCOME/span_Members_glyphicon glyphicon-chevron-left'), FailureHandling.STOP_ON_FAILURE) II.4 Update User import static com.kms.katalon.core.checkpoint.CheckpointFactory.findChe ckpoint import static com.kms.katalon.core.testcase.TestCaseFactory.findT estCase import static com.kms.katalon.core.testdata.TestDataFactory.findTe stData import static com.kms.katalon.core.testobject.ObjectRepository.findTe stObject import com.kms.katalon.core.checkpoint.Checkpoint as Checkpoint import com.kms.katalon.core.cucumber.keyword.CucumberBuilti nKeywords as CucumberKW 79 import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeyword s as Mobile import com.kms.katalon.core.model.FailureHandling as FailureHandling import com.kms.katalon.core.testcase.TestCa se as TestCase import com.kms.katalon.core.testdata.TestDat a as TestData import com.kms.katalon.core.testobject.TestObject as TestObject import com.kms.katalon.core.webservice.keyword.WSBuiltInKeyw ords as WS import com.kms.katalon.core.webui.keyword.WebUiBui ltInKeywords as WebUI import internal.GlobalVariable as GlobalVariable import org.openqa.selenium.Keys as Keys WebUI.openBrowser('') WebUI.navigateToUrl('http://localhost/kata/') WebUI.click(findTestObject('Page_WELCOME/a_Sign in')) WebUI.setText(findTestObject('Page_WELCOME/Page _Sign In - WELCOME/input_Sign up now_username'), 'admin') WebUI.setText(findTestObject('Page_WELCOME/Page _Sign In - WELCOME/input_Sign up now_password'), 'admin') WebUI.click(findTestObject('Page_WELCOME/Page_Si gn In - WELCOME/input_Sign up now_signin')) WebUI.click(findTestObject('Page_WELCOME/a_Profile')) WebUI.click(findTestObject('New Folder/Page_Profile WELCOME/a_Admin Page')) WebUI.click(findTestObject('Page_Admin Page WELCOME/a_minhgmailcom_btn btn-xs btn-info glyphicon glyphicon-edit')) WebUI.click(findTestObject('Page_Admin Page WELCOME/Page_Edit user - Admin WELCOME/button_Update')) WebUI.verifyElementPresent(findTestObject('Page_Adm in Page - WELCOME/Page_Edit user - Admin WELCOME/div_Nothing to change Click here to comeback Back'), 1) WebUI.click(findTestObject('Page_Profile WELCOME/Page_Edit Profile - WELCOME/a_Back')) WebUI.click(findTestObject('Page_Admin Page WELCOME/a_minhgmailcom_btn btn-xs btn-info glyphicon glyphicon-edit')) WebUI.setText(findTestObject('Page_Admin Page WELCOME/Page_Edit user - Admin - WELCOME/input_Username_username'), 'nunu') WebUI.setText(findTestObject('Page_Admin Page WELCOME/Page_Edit user - Admin - WELCOME/input_Password_password'), 'nunu') 80 WebUI.setText(findTestObject('Page_Admin Page WELCOME/Page_Edit user - Admin - WELCOME/input_Email_email'), 'nu@gmail.com') WebUI.setText(findTestObject('Page_Admin Page WELCOME/Page_Edit user - Admin - WELCOME/input_Category_category'), '2') WebUI.click(findTestObject('Page_Admin Page WELCOME/Page_Edit user - Admin - WELCOME/button_Update')) WebUI.verifyElementPresent(findTestObject('Page_Admin Page - WELCOME/Page_Edit user - Admin WELCOME/div_Update Success Click here to watch the change Back'), 1) WebUI.click(findTestObject('Page_Admin Page WELCOME/Page_Edit user - Admin WELCOME/a_Back')) WebUI.click(findTestObject('Page_Admin Page WELCOME/Page_Edit user - Admin WELCOME/span_Logout_glyphicon glyphicon-log-out')) WebUI.closeBrowser() I Addd Usseer import static com.kms.katalon.core.checkpoint.CheckpointFactory.findChe ckpoint import static com.kms.katalon.core.testcase.TestCaseFactory.fin dTestCase import static com.kms.katalon.core.testdata.TestDataFactory.find TestData import static com.kms.katalon.core.testobject.ObjectRepository.findTestO bject import com.kms.katalon.core.checkpoint.Checkpoint as Checkpoint import com.kms.katalon.core.cucumber.keyword.CucumberBuiltinK eywords as CucumberKW import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeyword s as Mobile import com.kms.katalon.core.model.FailureHandling as FailureHandling import com.kms.katalon.core.testcase.TestCase as TestCase import com.kms.katalon.core.testdata.TestData as TestData import com.kms.katalon.core.testobject.TestObject as TestObject import com.kms.katalon.core.webservice.keyword.WSBuiltInKeyw ords as WS import com.kms.katalon.core.webui.keyword.WebUiBui ltInKeywords as WebUI import internal.GlobalVariable as GlobalVariable 'Click button Add ' WebUI.click(findTestObject('New Folder/Page_Profile WELCOME/a_Admin Page')) 'Click button Add ' WebUI.click(findTestObject('Page_Admin Page WELCOME/Page_Add user - Admin WELCOME/a_Add users')) WebUI.verifyElementText(findTestObject('Page_Ad Page - WELCOME/Page_Add user - Admin WELCOME/h2_Add User'), 'Add User') 'Enter an username' WebUI.setText(findTestObject('Page_Admin Page WELCOME/Page_Add user - Admin 81 - WELCOME/input_Username_username'), username) 82 //WebUI.setText(findTestObject('Page_WELCOME/Page_S ign In - WELCOME/input_Sign up now_password'), password) 'Enter password\r\n' WebUI.setText(findTestObject('Page_Admin Page WELCOME/Page_Add user - Admin - WELCOME/input_Password_password'), password) 'Enter email\r\n' WebUI.setText(findTestObject('Page_Admin Page WELCOME/Page_Add user - Admin - WELCOME/input_Email_email'), email) 'Enter email\r\n' WebUI.setText(findTestObject('Page_Admin Page WELCOME/Page_Add user - Admin - WELCOME/input_Category_category'), category) 'Click button Sign in\r\n' WebUI.click(findTestObject('Page_Admin Page WELCOME/Page_Add user - Admin WELCOME/button_Add')) if ((((username == '') || (password == '')) || (email == '')) || (category == '')) { WebUI.verifyElementText(findTestObject('Page_Admin Page - WELCOME/Page_Add user - Admin - WELCOME/div_ERROR Input fields are invalid'), 'ERROR! Input fields are invalid') 'Click button Sign in\r\n' WebUI.click(findTestObject('Page_Admin Page WELCOME/Page_Add user Admin - WELCOME/a_Cancle')) } else { WebUI.verifyElementPresent(findTestObject('Pag e_Admin Page - WELCOME/Page_Add user - Admin WELCOME/div_Add Success Click here to waattcch thhe chhaanngge Baacckk'')), 0) 'Click button Sign in\r\n' WebUI.click(findTestObject('Page_Admin Page WELCOME/Page_Add user Admin - WELCOME/a_Back')) WebUI.verifyElementText(findTestObject('Page_Admi n Page - WELCOME/Page_Add user - Admin WELCOME/p_admin'), 'admin') } ... chọn đề tài, mục tiêu nghiên cứu đồ án bố cục đồ án - Chương 1: Kiểm thử ứng dụng Web Chương trình bày chi tiết khái niệm kiểm thử ứng dụng Web, công việc kiểm thử ứng dụng Web, giới thiệu số công. .. công cụ hỗ trợ kiểm thử ứng dụng web Xác định quy trình kiểm thử phần mềm, ca kiểm thử mức độ nghiêm trọng lỗi xảy - Chương 2: Kiểm thử ứng dụng Web công cụ Katalon Studio Giới thiệu chung Katalon. .. 1.4 Kiểm thử b Một số công cụ hỗ trợ kiểm 1.4.1 .Công cụ kiểm thử hiệu 1.4.2 .Công cụ kiểm thử bảo mật 1.4.3 .Công cụ kiểm thử chức CHƯƠNG 2:KIỂMTHỬỨNGDỤNGTRÊNNỀNWEBBẰN