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

Kiểm thử tự động website orangehrm bằng robot framework

82 19 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

Thông tin cơ bản

Tiêu đề Kiểm thử tự động website orangehrm bằng robot framework
Tác giả Phạm Thị Lệ Chi
Người hướng dẫn TS. Hoàng Thị Thanh Hà
Trường học Đại học Đà Nẵng
Chuyên ngành Hệ thống thông tin
Thể loại báo cáo thực tập
Thành phố Đà Nẵng
Định dạng
Số trang 82
Dung lượng 7,48 MB

Nội dung

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC KINH TẾ KHOA THỐNG KÊ - TIN HỌC BÁO CÁO THỰC TẬP NGHỀ NGHIỆP NGÀNH: HỆ THỐNG THÔNG TIN QUẢN LÝ CHUYÊN NGÀNH: QUẢN TRỊ HỆ THỐNG THÔNG TIN TÊN ĐỀ TÀI: KIỂM THỬ TỰ ĐỘNG WEBSITE ORANGEHRM BẰNG ROBOT FRAMEWORK Đơn vị thực tập : TMA Bình Định Giảng viên hướng dẫn : TS Hoàng Thị Thanh Hà LỜI CẢM ƠN Em xin gửi lời cảm ơn sâu sắc lòng biết ơn chân thành đến tất người hỗ trợ em trình thực thực tập Đầu tiên, em muốn bày tỏ lòng biết ơn đến anh Phạm Nhật Tú tận tâm hướng dẫn hỗ trợ em suốt thời gian thực tập Sự am hiểu, kiến thức kinh nghiệm anh mang lại cho em hướng xác giúp em phát triển kỹ cần thiết lĩnh vực Em cảm kích tận tâm sẵn lịng anh việc giúp đỡ em vượt qua khó khăn thách thức q trình thực tập Em muốn gửi lời cảm ơn đến toàn thể anh chị DG4 Sự hỗ trợ, chia sẻ kiến thức anh chị tạo điều kiện thuận lợi cho em hoàn thành nhiệm vụ thực tập cách hiệu Những trao đổi, ý kiến đóng góp giúp em mở rộng hiểu biết nâng cao kỹ Đặc biệt, em xin gửi lời cảm ơn chân thành sâu sắc đến cô Hoàng Thị Thanh Hà – Giảng viên hướng dẫn thực tập Em muốn bày tỏ lịng biết ơn đến cơ, người cung cấp thông tin, tài liệu liệu quan trọng hướng dẫn tận tình cho trình thực tập em Kiến thức thân cịn nhiều hạn chế, q trình thực tập, hồn thiện báo cáo khơng tránh khỏi sai sót, kính mong nhận ý kiến đóng góp từ thầy cô quý công ty Em xin chân thành cảm ơn! LỜI CAM ĐOAN Em Phạm Thị Lệ Chi, cam đoan tất thông tin kết mà em cung cấp báo cáo thực tập chân thực xác dựa quan sát nghiên cứu riêng em Em cam kết thực thực tập cách nghiêm túc, tuân thủ quy định, đưa kết phản ánh thực tế Em xác nhận tham khảo tài liệu, nguồn thơng tin, ý kiến người khác cách trung thực mực báo cáo Bất kỳ thơng tin tài liệu trích dẫn, đề cập sử dụng từ nguồn bên ghi rõ tham khảo cách công quy định Em chịu trách nhiệm nội dung kết báo cáo thực tập sẵn sàng chịu trách nhiệm trước kiểm tra xác minh liên quan đến Ngồi ra, em cam đoan báo cáo thực tập luận riêng em khơng vi phạm quyền sở hữu trí tuệ, quyền hay quyền tác giả khác Bất kỳ nguồn thơng tin sử dụng trích dẫn từ nguồn khác ghi rõ tuân thủ quy định quyền MỤC LỤC LỜI CẢM ƠN LỜI CAM ĐOAN MỤC LỤC IV V VI LỜI MỞ ĐẦU CHƯƠNG 1: TỔNG QUAN VỀ CÔNG TY VÀ VỊ TRÍ TESTER 1.1 Tổng quan công ty 1.1.1 Giới thiệu công ty 1.1.2 Tầm nhìn sứ mệnh 1.1.3 Giá trị cốt lõi 1.2 Tổng quan vị trí Tester 1.2.1 Mơ tả vị trí Tester 1.2.2 Các kỹ cần có Tester 1.2.3 Cơ hội nghề nghiệp 1.2.4 Mức lương ngành CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Tổng quan kiểm thử phần mềm 2.1.1 Giới thiệu kiểm thử phần mềm 2.1.2 Các nguyên tắc kiểm thử phần mềm 2.1.3 QA & QC 2.1.4 Vòng đời phát triển phần mềm 2.1.5 Vòng đời kiểm thử phần mềm 2.2 Các loại kiểm thử phần mềm 2.2.1 Manual Testing 2.2.2 Automation Testing 2.3 Các phương pháp kiểm thử 2.3.1 Black Box Testing 2.3.2 White Box Testing 2.4 Cấp bậc kiểm thử 2.4.1 Unit Test 9 2.4.2 Integration Test 10 2.4.3 System Test 10 2.5 Các kỹ thuật Test Case 10 2.5.1 Boundary Value Analysis (BVA) 10 2.5.2 Equivalence Class Partitioning 10 2.5.3 Decision Table Based Testing 11 2.5.4 State Transition 11 2.5.5 Error Guessing 11 2.6 Vòng đời Bug 11 2.7 Tổng quan ngôn ngữ python 12 2.7.1 Ngôn ngữ python 2.8 Tổng quan Robot Framework 12 12 2.8.1 Robot Framework 12 2.8.2 Ưu & nhược điểm Robot Framework 13 2.9 Kết chương CHƯƠNG 3: SỬ DỤNG ROBOT FRAMEWORK KIỂM THỬ TỰ ĐỘNG WEBSITE ORANGEHRM 14 14 3.1 Tổng quan website OrangeHRM 14 3.1.1 Giới thiệu website OrangeHRM 14 3.1.2 Giao diện website OrangeHRM 14 3.1.2: Đặc tả số chức website OrangeHRM 15 3.1.2.1: Chức tìm kiếm Users 16 3.1.2.2: Chức Add Users 18 3.1.2.3: Chức Add Job Titles 20 3.1.2.4: Chức xoá tất Job Titles 22 3.1.2.5: Chức chỉnh sửa Job Titles 24 3.2 Thiết kế Test case 25 3.3 Viết Test case tự động ngôn ngữ python Robot Framework 30 3.4 Kết 45 3.5 Kết chương 48 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 48 TÀI LIỆU THAM KHẢO 49 CHECK LIST CỦA BÁO CÁO 50 PHỤ LỤC 51 DANH MỤC HÌNH ẢNH Hình 1: Vịng đời Bug 12 Hình 2: Màn hình đăng nhập website OrangeHRM 15 Hình 3: Màn hình trang chủ website OrangeHRM 15 Hình 4: Module Admin 16 Hình 5: Tìm kiếm Users 16 Hình 6: Add Users 18 Hình 7: Add Users 18 Hình 8: Add Job Titles 20 Hình 9: Add Job Titles 20 Hình 10: Xố tất Job Titles 22 Hình 11: Xố tất Job Titles 22 Hình 12: Chỉnh sửa Job Titles 24 Hình 13: Chỉnh sửa Job Titles 24 LỜI MỞ ĐẦU • Lý chọn đề tài: Trong thời đại công nghệ số phát triển nhanh chóng ứng dụng web, việc đảm bảo chất lượng tính ổn định trang web vơ quan trọng Trong q trình phát triển phần mềm, kiểm thử đóng vai trị quan trọng việc phát lỗi đảm bảo ứng dụng hoạt động dự kiến Để tối ưu hóa trình kiểm thử, tơi định chọn đề tài "Kiểm thử tự động website OrangeHRM Robot Framework." OrangeHRM hệ thống quản lý nguồn nhân lực phổ biến phức tạp, đó, sử dụng Robot Framework - công cụ kiểm thử tự động mã nguồn mở, giúp tối ưu hóa q trình kiểm thử, nâng cao hiệu tiết kiệm thời gian • Mục tiêu nghiên cứu: Xây dựng test case chi tiết đa dạng để kiểm thử chức nâng cao website OrangeHRM Áp dụng kỹ thuật kiểm thử tự động lập kịch bản, thao tác giao diện người dùng, xử lý liệu trình kiểm thử Đánh giá hiệu suất hiệu trình kiểm thử tự động so với kiểm thử thủ công truyền thống Đề xuất cải tiến tối ưu hóa cho q trình kiểm thử tự động tương lai • Phương pháp nghiên cứu: Trong q trình nghiên cứu, tơi tiến hành thu thập thông tin chức yêu cầu website OrangeHRM, từ xây dựng test case thiết lập môi trường kiểm thử tự động Robot Framework Tôi sử dụng kỹ thuật kiểm thử tự động để thực kiểm thử thu thập liệu để đánh giá hiệu suất trình kiểm thử Các kết thu thập phân tích giúp tơi đưa kết luận xác đáng tin cậy • Đối tượng phạm vi nghiên cứu: Đối tượng nghiên cứu website OrangeHRM, hệ thống quản lý nguồn nhân lực phổ biến sử dụng rộng rãi Phạm vi nghiên cứu tập trung vào việc xây dựng triển khai hệ thống kiểm thử tự động Robot Framework cho chức website OrangeHRM • Kết cấu đề tài Đề tài tổ chức gồm phần mở đầu, chương nội dung phần kết luận • Chương 1: Tổng quan cơng ty vị trí Tester • Chương 2: Cơ sở lý thuyết • Chương 3: Sử dụng Robot framework kiểm thử tự động website OrangeHRM • Kết luận hướng phát triển CHƯƠNG 1: TỔNG QUAN VỀ CƠNG TY VÀ VỊ TRÍ TESTER 1.1 Tổng quan công ty 1.1.1 Giới thiệu công ty Cơng ty TMA Bình Định cơng ty cơng nghệ hàng đầu Bình Định, Việt Nam Với 20 năm kinh nghiệm lĩnh vực phát triển phần mềm dịch vụ cơng nghệ, TMA Bình Định xây dựng danh tiếng vững trở thành đối tác đáng tin cậy cho khách hàng ngồi nước Với tầm nhìn cam kết mình, TMA Bình Định tạo dựng môi trường làm việc chuyên nghiệp sáng tạo, tập trung vào phát triển truyền cảm hứng cho đội ngũ nhân viên Công ty đặt giá trị người lên hàng đầu tạo điều kiện thuận lợi để nhân viên phát triển nghề nghiệp khám phá tiềm 1.1.2 Tầm nhìn sứ mệnh Tầm nhìn TMA Bình Định hướng đến việc trở thành cơng ty cơng nghệ hàng đầu, góp phần vào phát triển ngành công nghiệp công nghệ thông tin khu vực Tạo môi trường làm việc sáng tạo cung cấp giải pháp công nghệ đột phá, nhằm tối ưu hóa giá trị mang lại lợi ích bền vững cho khách hàng cộng đồng Sứ mệnh TMA Bình Định mang đến giải pháp công nghệ đáng tin cậy chất lượng cao cho khách hàng Xây dựng mối quan hệ đối tác lâu dài tạo giá trị bền vững cho khách hàng thông qua việc cung cấp dịch vụ sản phẩm công nghệ chất lượng cao, đáp ứng nhanh chóng linh hoạt yêu cầu họ 1.1.3 Giá trị cốt lõi Chất lượng: Cam kết mang đến chất lượng cao sản phẩm dịch vụ, không tập trung vào việc đáp ứng u cầu kỹ thuật, mà cịn ln tìm kiếm cách nâng cao chất lượng hiệu suất giải pháp cơng nghệ Sáng tạo: TMA Bình Định coi sáng tạo yếu tố quan trọng khía cạnh cơng việc Khuyến khích đổi mới, tư sáng tạo tạo giải pháp công nghệ đột phá để giúp khách hàng cộng đồng vượt qua thách thức tận dụng hội 1.2 Tổng quan vị trí Tester 1.2.1 Mô tả vị trí Tester Vị trí Tester vai trị quan trọng q trình phát triển phần mềm Người làm Tester chịu trách nhiệm kiểm tra đảm bảo chất lượng sản phẩm phần mềm trước triển khai đưa thị trường Mô tả tổng quan vị trí tester: Kiểm tra xác nhận chức năng: Tester có nhiệm vụ kiểm tra xác minh tính phần mềm dựa yêu cầu tài liệu liên quan Bằng cách sử dụng kịch kiểm thử công cụ phù hợp, tester đảm bảo phần mềm hoạt động theo yêu cầu đáp ứng mục tiêu chức Vị trí tester yêu cầu kiến thức vững quy trình kiểm thử phần mềm, kỹ phân tích ghi nhận lỗi, tỉ mỉ khả làm việc theo nhóm Người làm tester cần có khả tư logic, kiên nhẫn khả tìm hiểu nhanh ứng dụng công nghệ 1.2.2 Các kỹ cần có Tester Kiến thức quy trình kiểm thử phần mềm: Tester cần hiểu áp dụng quy trình kiểm thử phần mềm, bao gồm lập kế hoạch, thiết kế kiểm thử, thực kiểm thử, phân tích kết báo cáo lỗi Sự hiểu biết phương pháp kiểm thử, loại kiểm thử kỹ thuật kiểm thử giúp tester thực cơng việc cách hiệu Kỹ phân tích ghi nhận lỗi: Tester cần có khả phân tích yêu cầu chức thiết kế để tìm trường hợp kiểm thử cần thiết Sự kiên nhẫn tỉ mỉ: Tester cần có kiên nhẫn việc thực kịch kiểm thử lặp lặp lại xử lý tình kiểm thử phức tạp Khả tư logic: Tester cần có khả tư logic để phân tích vấn đề, xác định nguyên nhân lỗi đưa giải pháp kiểm thử hiệu [Arguments] ${INPUT_USERROLE} ${INPUT_EMPLOYEENAME} ${INPUT_STATUS} UT_USERNAME} ${INPUT_PASSWORD} ${INPUT_CONFIRMPASSWORD} Click Element ${XPATH_USERROLE} Click Element //div[@role='listbox']//*[contains(text(),'${INPUT_USERROLE}')] Click Element ${XPATH_STATUS} Click Element //div[@role='listbox']//*[contains(text(),'${INPUT_STATUS}')] Input Text ${XPATH_EMPLOYEE} ${INPUT_EMPLOYEENAME} Sleep 3s Click Element //div[@role='listbox'] Sleep 3s Input Text ${XPATH_USERNAME} ${INPUT_USERNAME} Input Text ${XPATH_PASSWORD} ${INPUT_PASSWORD} Input Text ${XPATH_CONFIRMPASSWORD} ${INPUT_CONFIRMPASSWORD} Click Button //button[text()=" Save "] Load_message Sleep seconds Message Element Should Be Visible //h6[text()="Add User"] Clear_Text [Arguments] ${selector} click element ${selector} press keys ${selector} CTRL+a+BACKSPACE sleep 0.3 Clear_Text_All_Field Scroll Element Into View ${XPATH_USERROLE} Clear_Text ${XPATH_USERROLE} Scroll Element Into View ${XPATH_STATUS} Clear_Text ${XPATH_STATUS} Scroll Element Into View ${XPATH_EMPLOYEE} Clear_Text ${XPATH_EMPLOYEE} Scroll Element Into View ${XPATH_USERNAME} Clear_Text ${XPATH_USERNAME} Scroll Element Into View ${XPATH_PASSWORD} Clear_Text ${XPATH_PASSWORD} Scroll Element Into View ${XPATH_CONFIRMPASSWORD} Clear_Text ${XPATH_CONFIRMPASSWORD} Capture_page_all_field_with_data Capture Page Screenshot • Source code chức Add Job Titles - Source code Add Job Titles với input hợp lệ 62 ${INP - - - - - - *** Settings *** Documentation Check the Add Users function in the User Management dropdown list Library SeleniumLibrary Library BuiltIn Library Collections *** Variables *** ${BROWSER} Chrome ${LOGIN_URL} https://opensourcedemo.orangehrmlive.com/web/index.php/auth/login ${VALID_USERNAME} Admin ${VALID_PASSWORD} admin123 ${PAGE_ADMIN} (//a[@class="oxd-main-menu-item"])[1] ${ADDUSER_BUTTON} //div[@class="orangehrm-header-container"]/button ${XPATH_USERROLE} //label[text()="User Role"]//ancestor::div[@class="oxd-input-group oxd-input-field-bottomspace"]//div[@class="oxd-select-text-input"] ${XPATH_STATUS} //label[text()="Status"]//ancestor::div[@class="oxdinput-group oxd-input-field-bottom-space"]//div[@class="oxd-select-textinput"] ${XPATH_EMPLOYEE} //label[text()="Employee Name"]//ancestor::div[@class="oxd-input-group oxd-input-field-bottomspace"]//input[@placeholder="Type for hints "] ${XPATH_USERNAME} //label[text()="Username"]//ancestor::div[@class="ox d-input-group oxd-input-field-bottom-space"]//input[@class="oxd-input oxdinput active"] ${XPATH_PASSWORD} //label[text()="Password"]//ancestor::div[@class="ox d-input-group oxd-input-field-bottom-space"]//input[@type="password"] ${XPATH_CONFIRMPASSWORD} //label[text()="Confirm Password"]//ancestor::div[@class="oxd-input-group oxd-input-field-bottomspace"]//input[@type="password"] *** Keywords *** Login to OrangeHRM website Open Browser ${LOGIN_URL} ${BROWSER} Maximize Browser Window Set Selenium Implicit Wait Input Text //input[@name="username"] ${VALID_USERNAME} Input Text //input[@name="password"] ${VALID_PASSWORD} Click Button //button[@type="submit"] *** Test Cases *** TC_14 Check all fields with valid data in Add Users Login to OrangeHRM website Click Element ${PAGE_ADMIN} Click Button ${ADDUSER_BUTTON} 63 - Click Element ${XPATH_USERROLE} Click Element //div[@role='listbox']//*[contains(text(),'ESS')] Click Element ${XPATH_STATUS} Click Element //div[@role='listbox']//*[contains(text(),'Enabled')] Input Text ${XPATH_EMPLOYEE} Peter Mac Anderson Sleep 3s Click Element //div[@role='listbox'] Input Text ${XPATH_USERNAME} Alice Input Text ${XPATH_PASSWORD} Ptlc123 Input Text ${XPATH_CONFIRMPASSWORD} Ptlc123 Click Button //button[text()=" Save "] ${Check} Set Variable Sleep 5s ${row} Get Element Count //div[@class="oxd-table-row oxd-tablerow with-border"] ${col} Get Element Count //div[@role="columnheader"] Log To Console ${row} Log To Console ${col} FOR ${counter1} IN RANGE ${row} ${value} Get Text //div[@class="orangehrmcontainer"]//div[@class="oxd-table-card"][${counter1}]//div[@role="cell"][2] ${element} Get WebElement //div[@class="orangehrmcontainer"]//div[@class="oxd-table-card"][${counter1}] Scroll Element Into View ${element} IF '${value}' == 'Alice' Execute Javascript arguments[0].setAttribute('style', 'background-color:yellow;') ARGUMENTS ${element} Capture Page Screenshot Log User added to the table successfully ${Check} Set Variable BREAK END END IF ${Check} == Capture Page Screenshot Fail Users are not added to the table END Close Browser TC_23 Check all fields and press cancel button Login to OrangeHRM website Click Element ${PAGE_ADMIN} Click Button ${ADDUSER_BUTTON} Click Element ${XPATH_USERROLE} Click Element //div[@role='listbox']//*[contains(text(),'ESS')] 64 - - Click Element ${XPATH_STATUS} Click Element //div[@role='listbox']//*[contains(text(),'Enabled')] Input Text ${XPATH_EMPLOYEE} Alice Duval Sleep 3s Click Element //div[@role='listbox'] Input Text ${XPATH_USERNAME} Alice Input Text ${XPATH_PASSWORD} Ptlc123 Input Text ${XPATH_CONFIRMPASSWORD} Ptlc123 Click Button //button[text()=" Cancel "] Sleep 2s Element Should Be Visible //div[@class="orangehrm-paper-container"] Close Browser Source code Add Job Titles với input không hợp lệ Source code data driven - - - *** Settings *** Library SeleniumLibrary Resource screensho/AddJobTitles.robot Suite Setup Open website OrangeHRM Suite Teardown Close Browser Test Template AddJobTitles_operation *** Variables *** ${BROWSER} Chrome ${LOGIN_URL} https://opensourcedemo.orangehrmlive.com/web/index.php/auth/login *** Test Cases *** ${Input_Job Titles} ${Input_Job Description} ${Input_Job Specification} ${Input_Note} TC_26 Check with Job Title field blank and fill in all remaining fields ${EMPTY} Financial planning, budget forecasting D:\\Chi_Robot\\Add_jobtitles.xlsx Not available TC_28 Check the Job Specification field upload an invalid file Developer write code, create programs, software D:\\Chi_Robot\\a.pptx Not available ***Keyword*** AddJobTitles_operation [Arguments] ${Input_Job Titles} ${Input_Job Description} ${Input_Job Specification} ${Input_Note} Enter_input ${Input_Job Titles} ${Input_Job Description} ${Input_Job Specification} ${Input_Note} Load_message Message Clear_Text_All_Field 65 Source code Resource screensho/AddJobTitles.robot *** Settings *** Library SeleniumLibrary *** Variables *** ${BROWSER} Chrome ${LOGIN_URL} https://opensourcedemo.orangehrmlive.com/web/index.php/auth/login ${VALID_USERNAME} Admin ${VALID_PASSWORD} admin123 ${PAGE_ADMIN} (//a[@class="oxd-main-menu-item"])[1] ${JOB} (//span[@class="oxd-topbar-body-nav-tab-item"])[2] ${JOB_TITLES} //li/a[text()="Job Titles"] ${ADD_JOBTITLES_BUTTON} //div[@class="orangehrm-header-container"]//button ${Xpath_Job Title} //label[text()="Job Title"]//ancestor::div[@class="oxdinput-group oxd-input-field-bottom-space"]//input ${Xpath_Job Description} //textarea[@placeholder="Type description here"] ${Xpath_Job Specification} //input[@type="file"] ${Xpath_Note} //textarea[@placeholder="Add note"] ${Save} //button[@type="submit"] ***Keyword*** Open website OrangeHRM Open Browser ${LOGIN_URL} ${BROWSER} Maximize Browser Window Set Selenium Implicit Wait Input Text //input[@name="username"] ${VALID_USERNAME} Input Text //input[@name="password"] ${VALID_PASSWORD} Click Button //button[@type="submit"] Click Element ${PAGE_ADMIN} Click Element ${JOB} Click Element ${JOB_TITLES} Click Element ${ADD_JOBTITLES_BUTTON} Sleep 5s Enter_input [Arguments] ${Input_Job Titles} ${Input_Job Description} ${Input_Job Specification} ${Input_Note} Input Text ${Xpath_Job Title} ${Input_Job Titles} Input Text ${Xpath_Job Description} ${Input_Job Description} Choose File ${Xpath_Job Specification} ${Input_Job Specification} Input Text ${Xpath_Note} ${Input_Note} Click Button ${Save} Load_message 66 Sleep seconds Message # Xác minh hợp lệ # Element Should Be Visible //div[@class="oxd-toast-container oxd-toastcontainer bottom"] # Xác minh không hợp lệ # Element Should Be Visible //span[@class="oxd-text oxd-text span oxdinput-field-error-message oxd-input-group message"] Element Should Be Visible //div[@class="orangehrm-card-container"] Clear_Text [Arguments] ${selector} Scroll Element Into View //label[text()="Job Title"]//ancestor::div[@class="oxd-input-group oxd-input-field-bottomspace"]//input Sleep 3s click element ${selector} press keys ${selector} CTRL+a+BACKSPACE sleep 0.3 Clear_Text_All_Field Scroll Element Into View ${Xpath_Job Title} Sleep 3s Clear_Text ${Xpath_Job Title} Clear_Text ${Xpath_Job Description} Clear_Text ${Xpath_Note} Capture_page_all_field_with_data Capture Page Screenshot • Source code chức Delete Selected Job Titles • • • • • • • • • • • • • *** Settings *** Library SeleniumLibrary Library Collections *** Variables *** ${BROWSER} Chrome ${LOGIN_URL} https://opensourcedemo.orangehrmlive.com/web/index.php/auth/login ${VALID_USERNAME} Admin ${VALID_PASSWORD} admin123 ${PAGE_ADMIN} (//a[@class="oxd-main-menu-item"])[1] ${JOB} (//span[@class="oxd-topbar-body-nav-tab-item"])[2] ${JOB_TITLES} //li/a[text()="Job Titles"] ${CHECKBOX} //div[text()="Job Titles"]//ancestor::div[@class="oxd-tablerow oxd-table-row with-border"]//span[@class="oxd-checkbox-input oxdcheckbox-input active label-right oxd-checkbox-input"] ${DELETEBUTTON} //button[text()=" Delete Selected "] 67 • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • ${POPUP} //div[@role="document"] ${YESDELETE_BUTTON} //button[text()=" Yes, Delete "] ${NOCANCEL_BUTTON} //button[text()=" No, Cancel "] ${CHECKBOX} //div[text()="Account Assistant"]//ancestor::div[@class="oxd-table-row oxd-table-row withborder"]//div[contains(@class,"oxd-table-card-cell-checkbox")] *** Keywords *** Login to OrangeHRM website Open Browser ${LOGIN_URL} ${BROWSER} Maximize Browser Window Set Selenium Implicit Wait Input Text //input[@name="username"] ${VALID_USERNAME} Input Text //input[@name="password"] ${VALID_PASSWORD} Click Button //button[@type="submit"] *** Test Cases *** TC_33 Check the "Delete Selected" button appears in the Job Titles panel Login to OrangeHRM website Click Element ${PAGE_ADMIN} Click Element ${JOB} Click Element ${JOB_TITLES} Click Element ${CHECKBOX} Element Should Be Visible ${DELETEBUTTON} Close Browser TC_34 Check pop-up "Are you sure?" appears when clicking the "Delete Selected" button Login to OrangeHRM website Click Element ${PAGE_ADMIN} Click Element ${JOB} Click Element ${JOB_TITLES} Click Element ${CHECKBOX} Click Element ${DELETEBUTTON} Element Should Be Visible ${POPUP} Close Browser TC_36 Check "Delete Selected" button when deleting all Job Titles and presses "No, Cancel" button Login to OrangeHRM website Click Element ${PAGE_ADMIN} Click Element ${JOB} Click Element ${JOB_TITLES} Click Element ${CHECKBOX} Click Element ${DELETEBUTTON} Click Element ${NOCANCEL_BUTTON} Element Should Not Be Visible //div[@role="document"] 68 • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • Close Browser TC_37 Check the "Delete Selected" button when deleting Job Titles and press the "Yes, Delete" button Login to OrangeHRM website Click Element ${PAGE_ADMIN} Click Element ${JOB} Click Element ${JOB_TITLES} ${List} Create List HR Associate HR Manager IT Manager Network Administrator Head of Support FOR ${counter} IN RANGE ${value} Get From List ${List} ${counter} ${element2} Get WebElement //div[text()="${value}"]//ancestor::div[@class="oxd-table-row oxd-table-row with-border"]//div[contains(@class,"oxd-table-card-cellcheckbox")] Scroll Element Into View ${element2} Click Element //div[text()="${value}"]//ancestor::div[@class="oxdtable-row oxd-table-row with-border"]//div[contains(@class,"oxd-table-cardcell-checkbox")] END Sleep 3s Scroll Element Into View //h6[@class="oxd-text oxd-text h6 orangehrmmain-title"] Click Element ${DELETEBUTTON} Click Element ${YESDELETE_BUTTON} Sleep 3s ${Check} Set Variable Sleep 5s ${row} Get Element Count //div[@class="oxd-table-row oxd-tablerow with-border"] Log To Console ${row} FOR ${counter1} IN RANGE ${row} ${value} Get Text //div[@class="orangehrmcontainer"]//div[@class="oxd-table-card"][${counter1}]//div[@role="cell"][2] ${element} Get WebElement //div[@class="orangehrmcontainer"]//div[@class="oxd-table-card"][${counter1}] Scroll Element Into View ${element} IF ('${value}' == 'HR Associate') or ('${value}' == 'HR Manager') or ('${value}' == 'IT Manager') or ('${value}' == 'Network Administrator') or ('${value}' == 'Head of Support') Execute Javascript arguments[0].setAttribute('style', 'background-color:yellow;') ARGUMENTS ${element} Capture Page Screenshot Fail 69 • • • • • • • • • • • • • • • • • • • • • • • • • • • ${Check} BREAK Set Variable END END IF ${Check} == # Scroll Element Into View //div[@data-v0dea79bd]//span[@class="oxd-text oxd-text span"] Capture Page Screenshot Log Pass END # Xác minh Job Titles vừa tạo xuất table Close Browser TC_35 Check "Delete Selected" button when deleting all Job Titles and presses "Yes, Delete" button Login to OrangeHRM website Click Element ${PAGE_ADMIN} Click Element ${JOB} Click Element ${JOB_TITLES} Click Element ${CHECKBOX} Click Element ${DELETEBUTTON} Click Element ${YESDELETE_BUTTON} Sleep 2s Element Should Be Visible //div[@class="oxd-toast-container oxd-toastcontainer bottom"] Element Should Be Visible //span[text()="No Records Found"] # Xác minh tất Job Titles xoá Close Browser • Source code chức Edit Job Titles • • • • • • • • • • • • *** Settings *** Library SeleniumLibrary Resource setup_before.robot *** Variables *** ${BROWSER} Chrome ${LOGIN_URL} https://opensourcedemo.orangehrmlive.com/web/index.php/auth/login ${VALID_USERNAME} Admin ${VALID_PASSWORD} admin123 ${PAGE_ADMIN} (//a[@class="oxd-main-menu-item"])[1] ${JOB} (//span[@class="oxd-topbar-body-nav-tab-item"])[2] ${JOB_TITLES} //li/a[text()="Job Titles"] 70 • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • ${PENCIL} //div[text()="Financial Analyst"]//ancestor::div[@class="oxdtable-row oxd-table-row with-border"]//i[@class="oxd-icon bi-pencil-fill"] ${INPUT JOB TITLES} //label[text()="Job Title"]//ancestor::div[@class="oxdinput-group oxd-input-field-bottom-space"]//input ${Xpath_Job Title} //div[@class="oxd-form-row"]//input ${Xpath_Job Description} //textarea[@placeholder="Type description here"] ${Xpath_Job Specification} //input[@type="file"] ${Xpath_Note} //textarea[@placeholder="Add note"] ${Save} //button[@type="submit"] ${Cancel} //button[text()=" Cancel "] *** Test Cases *** TC_36 Check when Editing a Job Titles field Open Browser ${LOGIN_URL} ${BROWSER} Maximize Browser Window Set Selenium Implicit Wait Input Text //input[@name="username"] ${VALID_USERNAME} Input Text //input[@name="password"] ${VALID_PASSWORD} Click Button //button[@type="submit"] Click Element ${PAGE_ADMIN} Click Element ${JOB} Click Element ${JOB_TITLES} Click Element //div[text()="Financial Analyst"]//ancestor::div[@class="oxd-table-row oxd-table-row withborder"]//i[@class="oxd-icon bi-pencil-fill"] sleep 5s Clear_Text ${INPUT JOB TITLES} Input Text ${INPUT JOB TITLES} Business man Click Button ${Save} Sleep 2s Element Should Be Visible //div[@class="oxd-toast-container oxd-toastcontainer bottom"] ${Check} Set Variable Sleep 5s ${row} Get Element Count //div[@class="oxd-table-row oxd-tablerow with-border"] ${col} Get Element Count //div[@role="columnheader"] Log To Console ${row} Log To Console ${col} FOR ${counter1} IN RANGE ${row} ${value} Get Text //div[@class="orangehrmcontainer"]//div[@class="oxd-table-card"][${counter1}]//div[@role="cell"][2] ${element} Get WebElement //div[@class="orangehrmcontainer"]//div[@class="oxd-table-card"][${counter1}] Scroll Element Into View ${element} 71 • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • IF '${value}' == 'Business man' Execute Javascript arguments[0].setAttribute('style', 'background-color:yellow;') ARGUMENTS ${element} Capture Page Screenshot Log Pass ${Check} Set Variable BREAK END END IF ${Check} == Capture Page Screenshot Fail Fail END # Xác minh Job Titles vừa edit edit thành công table Close Browser TC_37 Check when Editing Job Title field then press cancel button Open Browser ${LOGIN_URL} ${BROWSER} Maximize Browser Window Set Selenium Implicit Wait Input Text //input[@name="username"] ${VALID_USERNAME} Input Text //input[@name="password"] ${VALID_PASSWORD} Click Button //button[@type="submit"] Click Element ${PAGE_ADMIN} Click Element ${JOB} Click Element ${JOB_TITLES} Click Element //div[text()="QA Engineer"]//ancestor::div[@class="oxdtable-row oxd-table-row with-border"]//i[@class="oxd-icon bi-pencil-fill"] sleep 5s Clear_Text ${INPUT JOB TITLES} Input Text ${INPUT JOB TITLES} Business man Click Button ${Cancel} Sleep 5s Element Should Be Visible //div[@class="orangehrm-paper-container"] ${Check} Set Variable Sleep 5s ${row} Get Element Count //div[@class="oxd-table-row oxd-tablerow with-border"] ${col} Get Element Count //div[@role="columnheader"] Log To Console ${row} Log To Console ${col} FOR ${counter1} IN RANGE ${row}+1 ${value} Get Text //div[@class="orangehrmcontainer"]//div[@class="oxd-table-card"][${counter1}]//div[@role="cell"][2] 72 • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • ${element} Get WebElement //div[@class="orangehrmcontainer"]//div[@class="oxd-table-card"][${counter1}] Scroll Element Into View ${element} IF '${value}' == 'QA Engineer' Execute Javascript arguments[0].setAttribute('style', 'background-color:yellow;') ARGUMENTS ${element} Capture Page Screenshot Log Pass ${Check} Set Variable BREAK END END IF ${Check} == Capture Page Screenshot Fail Fail END Close Browser TC_38 Check when editing all fields then press save button Open Browser ${LOGIN_URL} ${BROWSER} Maximize Browser Window Set Selenium Implicit Wait Input Text //input[@name="username"] ${VALID_USERNAME} Input Text //input[@name="password"] ${VALID_PASSWORD} Click Button //button[@type="submit"] Click Element ${PAGE_ADMIN} Click Element ${JOB} Click Element ${JOB_TITLES} Click Element //div[text()="Content Specialist"]//ancestor::div[@class="oxd-table-row oxd-table-row withborder"]//i[@class="oxd-icon bi-pencil-fill"] sleep 5s Clear_Text ${INPUT JOB TITLES} Input Text ${Xpath_Job Title} Software Testing Input Text ${Xpath_Job Description} Write test case manual, automattion Choose File ${Xpath_Job Specification} D:\\Chi_Robot\\Add_jobtitles.xlsx Input Text ${Xpath_Note} Not available Click Button //button[@type="submit"] Sleep 2s Element Should Be Visible //div[@class="oxd-toast-container oxd-toastcontainer bottom"] ${Check} Set Variable Sleep 5s 73 • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • ${row} Get Element Count //div[@class="oxd-table-row oxd-tablerow with-border"] ${col} Get Element Count //div[@role="columnheader"] Log To Console ${row} Log To Console ${col} FOR ${counter1} IN RANGE ${row} ${value} Get Text //div[@class="orangehrmcontainer"]//div[@class="oxd-table-card"][${counter1}]//div[@role="cell"][2] ${element} Get WebElement //div[@class="orangehrmcontainer"]//div[@class="oxd-table-card"][${counter1}] Scroll Element Into View ${element} IF '${value}' == 'Software Testing' Execute Javascript arguments[0].setAttribute('style', 'background-color:yellow;') ARGUMENTS ${element} Capture Page Screenshot Log Pass ${Check} Set Variable BREAK END END IF ${Check} == Capture Page Screenshot Fail Fail END Close Browser TC_39 Check when editing all fields then press cancel button Open Browser ${LOGIN_URL} ${BROWSER} Maximize Browser Window Set Selenium Implicit Wait Input Text //input[@name="username"] ${VALID_USERNAME} Input Text //input[@name="password"] ${VALID_PASSWORD} Click Button //button[@type="submit"] Click Element ${PAGE_ADMIN} Click Element ${JOB} Click Element ${JOB_TITLES} Click Element //div[text()="Finance Manager"]//ancestor::div[@class="oxd-table-row oxd-table-row withborder"]//i[@class="oxd-icon bi-pencil-fill"] sleep 5s Clear_Text ${INPUT JOB TITLES} Input Text ${Xpath_Job Title} HR Input Text ${Xpath_Job Description} personnel recruitment Choose File ${Xpath_Job Specification} D:\\Chi_Robot\\Add_jobtitles.xlsx 74 • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • Input Text ${Xpath_Note} Not available Click Button ${Cancel} Sleep 2s Element Should Be Visible //div[@class="orangehrm-paper-container"] ${Check} Set Variable Sleep 5s ${row} Get Element Count //div[@class="oxd-table-row oxd-tablerow with-border"] ${col} Get Element Count //div[@role="columnheader"] Log To Console ${row} Log To Console ${col} FOR ${counter1} IN RANGE ${row} ${value} Get Text //div[@class="orangehrmcontainer"]//div[@class="oxd-table-card"][${counter1}]//div[@role="cell"][2] ${element} Get WebElement //div[@class="orangehrmcontainer"]//div[@class="oxd-table-card"][${counter1}] Scroll Element Into View ${element} IF '${value}' == 'Finance Manager' Execute Javascript arguments[0].setAttribute('style', 'background-color:yellow;') ARGUMENTS ${element} Capture Page Screenshot Log Pass ${Check} Set Variable BREAK END END IF ${Check} == Capture Page Screenshot Fail Fail END Close Browser TC_40 Check when click edit but don't edit any field then press save button Open Browser ${LOGIN_URL} ${BROWSER} Maximize Browser Window Set Selenium Implicit Wait Input Text //input[@name="username"] ${VALID_USERNAME} Input Text //input[@name="password"] ${VALID_PASSWORD} Click Button //button[@type="submit"] Click Element ${PAGE_ADMIN} Click Element ${JOB} Click Element ${JOB_TITLES} Click Element //div[text()="Customer Success Manager"]//ancestor::div[@class="oxd-table-row oxd-table-row withborder"]//i[@class="oxd-icon bi-pencil-fill"] 75 • • • • • • • • • • • • • • • • • • • • • • • • • • • • sleep 5s Click Button ${Save} Sleep 2s Element Should Be Visible //div[@class="oxd-toast-container oxd-toastcontainer bottom"] ${Check} Set Variable Sleep 5s ${row} Get Element Count //div[@class="oxd-table-row oxd-tablerow with-border"] ${col} Get Element Count //div[@role="columnheader"] Log To Console ${row} Log To Console ${col} FOR ${counter1} IN RANGE ${row} ${value} Get Text //div[@class="orangehrmcontainer"]//div[@class="oxd-table-card"][${counter1}]//div[@role="cell"][2] ${element} Get WebElement //div[@class="orangehrmcontainer"]//div[@class="oxd-table-card"][${counter1}] Scroll Element Into View ${element} IF '${value}' == 'Customer Success Manager' Execute Javascript arguments[0].setAttribute('style', 'background-color:yellow;') ARGUMENTS ${element} Capture Page Screenshot Log Pass ${Check} Set Variable BREAK END END IF ${Check} == Capture Page Screenshot Fail Fail END Close Browser 76

Ngày đăng: 12/12/2023, 19:44

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w