TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TINKHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO THỰC TẬP
Automation tester
Công ty thực tập:Công ty TNHH GiảiPháp Phần MềmTường Minh
Trang 2TP Hồ Chí Minh, tháng 1 năm 2024
LỜI MỞ ĐẦU
Trong cuộc cách mạng công nghiệp 4.0, công nghệ thông tin nóichung và ngành Công nghệ phần mềm nói riêng luôn là nhân tốđóng vai trò quan trọng trong quá trình phát triển của xã hội.
Công việc Testing cũng phát triển để phục vụ cho nhu cầu kiểm trachất lượng các sản phẩm phần mềm nhằm đảm bảo đầu ra chongười dùng Hiện nay đã có rất nhiều các framework hỗ trợ cho việcautomation test được thuận tiện và linh hoạt hơn.
Để thử thách bản thân trong ngành automation test, em đã lựa chọncông việc này là định hướng cho việc học cũng như nghề nghiệptrong tương lai.
Sau những năm tháng trong môi trường đại học, với mong muốn ápdụng những kiến thức đã học và có được trải nghiệm trong môitrường thực tế, em đã quyết định tham gia vào công ty TNHH giảipháp công nghệ phần mềm Tường Minh – một môi trường lý tưởngvà chuyên nghiệp để thực hiện dự định.
Trang 3LỜI CẢM ƠN
Em xin trân trọng gửi lời cảm ơn thầy Huỳnh Tuấn Anh đã tạo điềukiện cho em cơ hội được thực tập tại công ty Dù trong thời gianngắn nhưng nhờ sự chỉ dẫn nhiệt tình của anh Trương Thành Ý, emđã tiếp thu những kiến thức quan trọng để có thể tham gia một dựán thực tế
Chân thành cảm ơn anh và mọi người trong team automation test đãbỏ ra nhiều thời gian, công sức để hướng dẫn, hướng dẫn, giúp đỡem tận tình trong khi làm quen môi trường mới cũng như trong việctiếp cận kiến thức công nghệ, kỹ năng lập trình và tư duy sản phẩmđể có thể thực hiện tốt dự án thực tế trong thời gian qua
Em cũng xin cảm ơn thầy cô trong khoa Công nghệ phần mềm đãnhiệt tình hỗ trợ, tạo điều kiện em làm báo cáo này
TP HCM, ngày 4 tháng 1năm 2024
[…]
Trang 5LỜI CẢM ƠN 3
NHẬN XÉT CỦA KHOA 4
MỤC LỤC 5
CHƯƠNG 1 – GIỚI THIỆU VỀ CÔNG TY THỰC TẬP 6
1.1 Giới thiệu về công ty Công ty TNHH Giải pháp Phần mềm Tường Minh 6
1.2 Các sản phẩm của công ty 9
1.3 Lịch làm việc khi thực tập tại công ty 10
CHƯƠNG 2 – NỘI DUNG THỰC TẬP 11
2.1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 11
2.2 Nghiên cứu kỹ thuật 11
2.2.1 Ngôn ngữ và các công cụ 11
2.2.2 Các kỹ thuật học được 12
2.3 Demo test chức năng Login của một trang web 27
2.3.1 Kết quả sau khi chạy test các script trên thu được kết quả tương đương 29
CHƯƠNG 3 – NỘI DUNG THỰC TẬP 31
3.1 Điểm mạnh 31
3.2 Điểm yếu 31
3.3 Chuẩn đạt được 31
Trang 6TÀI LIỆU THAM KHẢO 32
Trang 7CHƯƠNG 1 – GIỚI THIỆU VỀ CÔNG TY THỰC TẬP
1.1 Giới thiệu về công ty Công ty TNHH Giải pháp Phần mềm Tường Minh
Được thành lập năm 1997, Công ty TNHH Giải pháp Phần mềmTường Minh (tên viết tắt: TMA Solutions) là một trong những công typhần mềm hàng đầu tại Việt Nam với hơn 4000 kỹ sư Công ty TNHHGiải pháp Phần mềm Tường Minh có 6 văn phòng tại TP.HCM, Côngviên Sáng tạo TMA tại Bình Định và 6 văn phòng tại nước ngoài(Canada, Mỹ, Đức, Úc, Nhật Bản và Singapore)
Với sự phát triển vững mạnh trong 25 năm qua, Công ty TNHHGiải pháp Phần mềm Tường Minh tự hào nhận được sự tin tưởng củakhách hàng là những tập đoàn lớn đến từ 30 quốc gia trên thế giới.Trong nhiều năm liền, công ty đã vinh dự được bình chọn trong topdoanh nghiệp CNTT tại Việt Nam, liên tục được vinh danh trong top10 doanh nghiệp xuất khẩu phần mềm, Top 10 doanh nghiệpFintech, Top 10 doanh nghiệp AI – IoT,…
Đặt yếu tố con người lên hàng đầu, Công ty TNHH Giải phápPhần mềm Tường Minh với môi trường làm việc chuyên nghiệp vàthân thiện, luôn nỗ lực tạo ra đời sống văn hóa phong phú, sôi động,để nhân viên luôn cảm thấy thoải mái, xem công ty không chỉ là nơilàm việc, mà còn là nơi có các hoạt động vui chơi, giải trí đầy thú vị,hấp dẫn.
Trang 8Hình 1.1 Lịch sử hình thành của Công ty TNHH Giải pháp Phần mềmTường Minh
Trang 9Hình 1.2 Văn phòng làm việc tại công ty
Hình 1.3 Phòng Lab
Các chi nhánh tại Thành phố Hồ Chính Minh:
Trụ sở (Lab 1): 111 Nguyễn Ðình Chính, Phường 15, QuậnPhú Nhuận
Chi nhánh 3 (Lab 3): 10 Đặng Văn Ngữ, Phường 10, QuậnPhú Nhuận
Chi nhánh 4 (Lab 4): 84A/5 Trần Hữu Trang, Phường 10,Quận Phú Nhuận
Trang 10 Chi nhánh 5 (Lab 5): Tòa nhà Anna, Công viên phần mềmQuang Trung, P Tân Chánh Hiệp, Quận 12
Chi nhánh 6 (Lab 6): Tòa nhà TMA, Công viên phần mềmQuang Trung, P Tân Chánh Hiệp, Quận 12
Chi nhánh tại tỉnh Bình Định:
Công viên Sáng tạo TMA: Đại lộ Khoa học, Thung lũngSáng tạo Quy Nhơn, P Ghềnh Ráng, TP Quy Nhơn, BìnhÐịnh
Số điện thoại liên hệ: (84-28) 3995 1060Fax: (84-28) 3990 3303
Trang 111.3 Lịch làm việc khi thực tập tại công tyThời gian : Thứ 3, Thứ 5, Thứ 6
Từ 8g30 đến 18g
Thời gian thực tập : 28/8/2023 – 17/11/2023
Trang 12CHƯƠNG 2 – NỘI DUNG THỰC TẬP
2.1 Tìm hiểu công ty và các kỹ năng cơ bản trong công tyTMA là công ty chuyên về Out-source và có nhiều khách hàng từ nước ngoài Những kỹ năng cơ bản của công ty là:
- Bảo mật đối với sản phẩm của công ty- Kỹ năng viết email
- Kỹ năng giao tiếp trong công việc- Kỹ năng làm việc nhóm
Đặc điểm:
- Dễ đọc dễ hiểu dễ nhớ
Trang 13- Cấu trúc rõ ràng, thuận tiện cho người mới học- Hỗ trợ nhiều nền tảng khác nhau
- Tối ưu hóa cho việc code
- Hỗ trợ lập trình hướng đối tượng
GitLab là một nền tảng quản lý mã nguồn và dự án phần mềm dựa trên web Nó cung cấp các tính năng như quản lý mã nguồn, theo dõi vấn đề, CI / CD và nhiều tính năng khác để hỗ trợ quản lý dự án phần mềm.
Đặc điểm:
- Open core
- Truy cập mã nguồn- Lắng nghe cộng đồng- Giải pháp lâu bền
2.2.2 Các kỹ thuật học được 2.2.2.1 Robot Framework là gì?
Robot Framework là test framework mã nguồn mở được dùngđể kiểm thử tự động và RPA Hướng tiếp cận của Robot Frameworklà hướng từ khóa (keyword driven) và hướng dữ liệu (data driven),chính vì vậy Robot Framework rất dễ sử dụng cũng như viết testscript và có thể chạy được trên mọi nền tảng khác nhau mà khôngcần chỉnh sửa test script Robot Framework có thể được sử dụngtrong các môi trường phân tán, không đồng nhất, nơi yêu cầu sửdụng các công nghệ và giao diện khác nhau.
Trang 14Những ưu điểm của Robot Framework
Các đặc điểm nổi trội của Robot Framework:
Cho phép cú pháp dạng bảng dễ sử dụng để tạo cáctrường hợp thử nghiệm một cách thống nhất
Cung cấp khả năng tạo các từ khóa cấp cao hơn có thể sửdụng lại từ các từ khóa hiện tại
Cung cấp nhật ký và báo cáo kết quả dễ đọc ở định dạngHTML
Nền tảng và ứng dụng độc lập
Cung cấp một API thư viện đơn giản để tạo các thư việnthử nghiệm tùy chỉnh có thể được triển khai nguyên bảnbằng Python hoặc Java
Cung cấp giao diện dòng lệnh và các tệp đầu ra dựa trênXML để tích hợp vào cơ sở hạ tầng xây dựng hiện có (hệthống tích hợp liên tục)
Cung cấp hỗ trợ cho Selenium để kiểm tra web, kiểm traJava GUI, các quy trình đang chạy, Telnet, SSH,…
Hỗ trợ tạo các trường hợp thử nghiệm theo hướng dữ liệu. Có hỗ trợ tích hợp cho các biến, thực tế đặc biệt để thử
nghiệm trong các môi trường khác nhau
Cung cấp tính năng gắn thẻ để phân loại và chọn cáctrường hợp thử nghiệm sẽ được thực thi
Cho phép tích hợp dễ dàng với kiểm soát nguồn: bộ thửnghiệm chỉ là các tệp và thư mục có thể được tạo phiênbản với mã sản xuất
Cung cấp thiết lập và chia nhỏ cấp độ case và suite
test- Kiến trúc mô-đun hỗ trợ tạo các bài test ngay cả đối vớicác ứng dụng có nhiều giao diện đa dạng.
Các thư viện được hỗ trợ trong Robot Framework
Các thư viện tiêu chuẩn
1 Builtin: Thư viện cơ bản nhất của Robot Framework, cungcấp các từ khóa cơ bản thường được sử dùng nhiều khiviết test script Thư viện Builtin luôn tự động có sẵn màkhông cần phải import.
Trang 152 Collections: Dùng để xử lý kiểu dữ liệu list và dictionariescủa Python.
3 DateTime: Dùng để xử lý dữ liệu ngày giờ.
4 Dialogs: Cung cấp các từ khóa để tạm dừng thực thi vànhận thông tin đầu vào từ người dùng.
5 OperatingSystem: Dùng để tương tác với hệ điều hànhmà framework đang chạy.
6 Process: Dùng để tương tác với các tiến trình đang chạytrong hệ thống.
7 Remote: Hoạt động như một proxy giữa Robot Frameworkvà các thư viện khác Các thư viện thực tế có thể chạytrên nhiều máy tính khác nhau và được triển khai bằngbất kỳ ngôn ngữ lập trình nào có hỗ trợ giao thức XML-RPC.
8 Sceenshot: Dùng để chụp màn hình, rất hữu ích cho việcdebug.
9 String: Dùng để tạo, xử lý và xác minh kiểu dữ liệu string.10 Telnet: Dùng để kết nối với các máy chủ Telnet lại
với nhau để thực thi các lệnh trên các kết nối đã mở 11 XML: Dùng để tạo và tương tác với các tệp XML.
3 HTTP RequestsLibrary (Python): Dùng cho kiểm tra HTTPlevel bằng cách sử dụng Python Requests trong nội bộ.4 Browser Library: Dùng cho việc kiểm thử tự động các
trang web do Playwright cung cấp
5 AppiumLibrary: Dùng cho kiểm thử tự động trên môitrường Android và iOS.
6 RESTinstance: Dùng cho kiểm thử tự động API HTTP JSON.7 SSHLibrary: Dùng để thực thi các lệnh trên các kết nối
SSH Thư viện này cũng hỗ trợ truyền tệp bằng SFTP.8 Uiautomator2: Dùng cho kiểm thử tự động trên thiết bị
android.
Trang 16Cách cài đặt Robot Framework trên máy tính WindowsCài đặt Python
Để cài đặt Python lên máy tính, chúng ta truy cập vào trangchủ của Python (www.python.org/downloads/) và tải xuống phiênbản phù hợp với phiên bản Windows của bạn.
Hình 2.1 Trang chủ để tải file cài đặt Python
Sau khi tải xuống, tiến hành cài đặt Python lên máy tính Sau
khi cài đặt xong, mở cmd và gõ lệnh python version để kiểm tra
xem Python đã được cài đặt thành công hay không.
Hình 2.2 Python đã được cài đặt thành công
Cài đặt Robot Framework
Sau khi cài thành công Python, mở cmd và gõ lệnh pip installrobotframework để cài đặt Robot Framework
Trang 17Hình 2.3 Cài đặt Robot Framework
Kiểm tra cài đặt bằng lệnh robot –version.
Hình 2.4 Kiểm tra cài đặt Robot Framework
Cài đặt các thư viện mở rộng hỗ trợ Robot Framework
Robot Framework có rất nhiều thư viện hỗ trợ Các thư việnhầu hết được cũng cấp trên pip và bạn chỉ cần gõ lệnh để cài.
Ví dụ nếu ta muốn cài thư viện Selenium2Library thì chỉ cần gõ
trên cmd câu lệnh pip install robotframework-selenium2library.
Hình 2.5 Các thư viện mở rộng phổ biến của Robot FrameworkCài đặt Robot Framework Language Server để sử dụng Robot Framework trên phần mềm VSCode
Trang 18Để thuận tiện sử dụng Robot Framework, chúng ta nên sử dụngIDE VSCode cùng extensions Robot Framework Language Server.
Hình 2.6 Robot Framework Language Server trong VSCodeCấu trúc của một file Robot Framework
Thành phần cơ bản của một file Robot Framework sẽ gồm 3
phần chính: Settings, Test Cases và Keywords.
Phần Settings sẽ định nghĩa các thành thiết lập khởi đầu chokịch bản, như là mô tả xem nó sẽ làm gì, dùng thư viện nào Gồmcác thành phần chính sau:
Documentation: Mô tả khái quát về nội dung của testcase
Suite Setup/Teardown: Gọi đến các Keywords để khi bắtđầu/kết thúc chạy test
Resource: Import các file khác để tái sử dụng lại cácKeywords
Library: Import các thư viện hỗ trợ test.
Trang 19Hình 2.7 Phần Settings của một file Robot Framework
Test Cases
Phần Test Cases là phần chính bao gồm các trường hợp cầntest, trong phần này ta chỉ cần gọi các Keywords để chúng chạy vàkiểm tra xem Output có đúng với Expected không Các test caseđược viết dưới dạng lời nên rất dễ hiểu Dưới đây là một vài ví dụ vềcách viết test case trong Robot Framework:
Hình 2.8 Test case được viết theo kiểu Normal Syntax
Trang 20Hình 2.9 Test case được viết theo kiểu Gherkin Syntax
Hình 2.10 Test case được viết theo kiểu Data-driven Syntax
Keywords
Keywords là các step từ chuẩn bị cho đến việc kiểm tra kếtquả, trong Keywords chúng ta cũng gọi đến những Keywords khácđể thực hiện các xử lý
Bản thân các Keywords có thể nhận các đối số để sử dụngtrong các trường hợp tương tự nhau, ví dụ như nhập Input Text,Submit Form,… Ngoài ra các keywords hoàn toàn có thể định nghĩatự do bằng bất cứ ngôn ngữ nào, chỉ cần phần Test Cases gọi đúngtên của Keywords là được.
Hình 2.11 Phần Keywords của một file Robot Framework
Trang 21Các thành phần khác
Variables trong Robot Framework sẽ tích hợp biến vào giúp
việc viết code cũng như maintain test dễ dàng hơn nhiều, thích hợpnhất cho Data-driven Test.
Hình 2.12 Variables trong Robot Framework
Tags trong Robot Framework sẽ giúp cho việc quản lý chạy
test hiệu quả hơn, cụ thể hơn và tránh lặp lại toàn bộ quy trình khita cần test một chức năng cụ thể.
Trang 22Hình 2.13 Tags trong Robot Framework
2.2.2.2 Thư viện Selenium trong Robot Framework
Selenium là một thư viện dùng test web phổ biến nhất hiệnnay cho các tester Tại Robot Framework, chúng ta cóSeleniumLibrary là thư viện Selenium dùng trên Robot Framework.Thư viện này được lưu trữ trên GitHub và có thể tìm thấy các bản tảixuống từ PyPI SeleniumLibrary hoạt động với Selenium 3 và 4 Nóhỗ trợ Python 3.6 trở lên Ngoài trình thông dịch Python thôngthường, nó cũng hoạt động với PyPy
Để cài đặt thư viện SeleniumLibrary trên Robot Framewrok,
chúng ta mở cmd lên và gõ lệnh pip install seleniumlibrary Ngoài ra bạn cũng cần phải cài đặt webdriver dựa
robotframework-trên phiên bản trình duyệt bạn đang sử dụng để chạy thư việnSeleniumLibrary trên Robot Framework.
Trang 23Hình 4.1.1 Cài đặt framework trên cmd
Hình 4.1.2 Cài đặt Microsoft edge Webdriver
Viết các Automation Test Case trên Robot Framework bằng Robot Framework Tương tác với các phần tử trên một trang web
Tìm kiếm các phần tử trên một trang web:
Trang 24Suite Teardown Close Browser
*** Variables ***
${URL} https://demo.guru99.com/test/ajax.html
*** Test Cases ***
Click "Yes" button
Click Element id:yes
Click Element id:buttoncheck
Page Should Contain Radio button is checked and it's value is Yes
Click "No" button
Click Element id:no
Click Element id:buttoncheck
Page Should Contain Radio button is checked and it's value is Yes
Click "Reset" button Click Element id:yes
Click Element //input[@value = 'Reset']
Click Element id:buttoncheck
Page Should Contain Radio button is Not checked
*** Keywords ***
Open URL
Open Browser ${URL} edge
Tương tác với Radio Button và Checkbox:
Trang 25Radio button select
Select Radio Button webform Option 1
Radio Button Should Be Set To webform Option 1
Select Radio Button webform Option 2
Radio Button Should Be Set To webform Option 2
Select Radio Button webform Option 3
Radio Button Should Be Set To webform Option 3
CheckBox select
# Checkbox1
Select Checkbox id:vfb-6-0
Checkbox Should Be Selected id:vfb-6-0
# Checkbox2
Trang 26Select Checkbox id:vfb-6-1
Checkbox Should Be Selected id:vfb-6-1
# Checkbox2
Select Checkbox id:vfb-6-2
Checkbox Should Be Selected id:vfb-6-2
*** Keywords ***
Open URL
Open Browser ${URL} edge
Tương tác với hình ảnh trên trang web:
Input Text id:user-name standard_user
Input Text id:password secret_sauce
Click Button id:login-button
Trang 27Title Should Be Swag Labs
Click Image Sauce Labs Bike Light
Page Should Contain Back to products
Page Should Contain Sauce Labs Bike Light
*** Keywords ***
Open URL
Open Browser ${URL} edge
Tải file, upload file trên trang web
Tải file từ trang web:
https://www.browserstack.com/test-on-the-right-mobile-*** Test Cases https://www.browserstack.com/test-on-the-right-mobile-***
Download a File
Click Button id:accept-cookie-notification
Click Element class:icon-csv