Tải bản đầy đủ (.docx) (34 trang)

Automation Tester (Báo Cáo Thực Tập).Docx

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">

<b>TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TINKHOA CƠNG NGHỆ PHẦN MỀM</b>

BÁO CÁO THỰC TẬP

<b>Automation tester</b>

Cơng ty thực tập:Công ty TNHH GiảiPháp Phần MềmTường Minh

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

TP. Hồ Chí Minh, tháng 1 năm 2024

<b>LỜI MỞ ĐẦU</b>

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">

<b>LỜI CẢM ƠN</b>

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">

<b>CHƯƠNG 1 – GIỚI THIỆU VỀ CÔNG TY THỰC TẬP</b>

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 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>CHƯƠNG 2 – NỘI DUNG THỰC TẬP</b>

2.1 Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty

TMA là công ty chuyên về Out-source và có nhiều khách hàng từ nước ngồ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ớ

</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

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.

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

<b>Những ưu điểm của Robot Framework</b>

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

<b>Các thư viện tiêu chuẩn</b>

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">

<b> Cách cài đặt Robot Framework trên máy tính WindowsCài đặt Python</b>

Để 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

<b>Cài đặt Robot Framework</b>

<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

<b> Cài đặt các thư viện mở rộng hỗ trợ Robot Framework</b>

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

Cấ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

<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

<b>Test Cases</b>

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

<b> Keywords</b>

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>Các thành phần khác </b>

<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

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. 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

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:

</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

<b>Tải file, upload file trên trang web</b>

Tải file từ trang web:

Test Cases a File

    Click Button    id:accept-cookie-notification

    Click Element    class:icon-csv

</div>

×