Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.59 MB, 34 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
TP. Hồ Chí Minh, tháng 1 năm 2024
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 ln là nhân tốđóng vai trị quan trọng trong q 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.
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">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
[…]
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">LỜ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
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">TÀI LIỆU THAM KHẢO...32
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">Đượ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 ngồ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 ln 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.
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">Hì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
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">Hì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
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="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
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">1.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
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">- 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ớ
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="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
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.
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">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 số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
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 ln tự động có sẵn màkhơng cần phải import.
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">2. 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.
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">Để 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
<i>khi cài đặt xong, mở cmd và gõ lệnh python --version để kiểm tra</i>
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
<i>Sau khi cài thành công Python, mở cmd và gõ lệnh pip installrobotframework để cài đặt Robot Framework. </i>
</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">Hình 2.3 Cài đặt Robot Framework
<i>Kiểm tra cài đặt bằng lệnh robot –version.</i>
Hình 2.4 Kiểm tra cài đặt 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õ
<i>trên cmd câu lệnh pip install robotframework-selenium2library.</i>
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
</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="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 VSCode
Thành phần cơ bản của một file Robot Framework sẽ gồm 3
<b>phần chính: Settings, Test Cases và Keywords.</b>
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.
</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">Hình 2.7 Phần Settings của một file Robot Framework
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
</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">Hì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 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,… Ngồi ra các keywords hồn tồ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
</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21"><b>Variables trong Robot Framework sẽ tích hợp biến vào giúp</b>
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
<b>Tags trong Robot Framework sẽ giúp cho việc quản lý chạy</b>
test hiệu quả hơn, cụ thể hơn và tránh lặp lại tồn bộ quy trình khita cần test một chức năng cụ thể.
</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">Hình 2.13 Tags 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. Ngồ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,
<i>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</i>
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.
</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">Hình 4.1.1. Cài đặt framework trên cmd
Hình 4.1.2. Cài đặt Microsoft edge Webdriver
Tìm kiếm các phần tử trên một trang web:
</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">Suite Teardown Close Browser
*** Variables ***
${URL} 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
<small> Page Should Contain Radio button is Not checked</small>
<small>*** Keywords ***</small>
<small>Open URL</small>
<small> Open Browser ${URL} edge</small>
Tương tác với Radio Button và Checkbox:
</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">Radio 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
</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">Select 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
</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">Title 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 từ trang web:
Test Cases a File
Click Button id:accept-cookie-notification
Click Element class:icon-csv
</div>