Trang chủ Kiểm thử phần mềm Upload file và download file với Robot Framework

Upload file và download file với Robot Framework

0
Setup môi trường:
  • Python 3
  • Robot Framwork
  • IntelliJ IDEA
Upload file sử dụng Robot framwork

Kịch bản

  • Upload ảnh sunset.jpg lên website https://the-internet.herokuapp.com/upload
  • Verify ảnh đã upload thành công

Ý tưởng thực hiện

  • Lưu file ảnh sunset.jpg muốn upload ở trong phần resource của project
  • Sử dụng key word Choose File với id và đường dẫn đến file muốn upload
  • Kiểm tra xem file đã upload thành công chưa bằng cách tìm tên file vừa upload ở màn hình




fb*** Settings ***
Documentation  File Upload Download in Robot Framework
Library  SeleniumLibrary
Library   OperatingSystem
Library  String

Suite Teardown             Close Browser

*** Test Cases ***
Verify File Upload
    [Documentation]  This test case verifies that a user can successfully upload a file
    [Tags]  Regression
    Open Browser  https://the-internet.herokuapp.com/upload                executable_path=${CURDIR}/chromedriver    browser=chrome
    Wait Until Element Is Visible  id:file-submit  timeout=5
    Choose File  id:file-upload  /Users/mac/IdeaProjects/RobotFWTutorial/resource/Upload/sunset.jpg
    Click Element  id:file-submit
    Element Text Should Be  tag:h3  File Uploaded!  timeout=5
    Element Text Should Be  id:uploaded-files  sunset.jpg  timeout=5

Giải thích các câu lệnh

Verify File Upload -> Tên test case

[Documentation] This test case verifies that a user can successfully upload a file

-> Keyword [Documentation] giống như một dòng comment ở trong test case, chúng ta có thể viết tóm tắt nội dung test case để dễ hiểu hơn

[Tags] Regression -> Tag của test case là regression, cần dùng tag để đánh dấu và phân loại các test case, việc này giúp bạn quản lý và run các test case dễ dàng hơn

Open Browser https://the-internet.herokuapp.com/upload executable_path=${CURDIR}/chromedriver browser=chrome -> open browser upload với trình duyệt chrome

Wait Until Element Is Visible id:file-submit timeout=5 -> câu lệnh wait đợi cho đến khi element upload hiển thị. Câu lệnh này giúp bạn tránh được những lỗi kịch bản về performance

Choose File id:file-upload /Users/mac/IdeaProjects/RobotFWTutorial/resource/Upload/sunset.jpg -> dùng key word Choose File để upload vào nút upload có id:file-upload, đường dẫn ảnh là …/sunset.jpg

Click Element id:file-submit -> sau khi đã chọn được ảnh upload, ấn vào nút submit upload

Element Text Should Be tag:h3 File Uploaded! timeout=5
Element Text Should Be id:uploaded-files sunset.jpg timeout=5

-> 2 câu lệnh dùng để verify rằng file đã upload thành công bằng cách có hiển thị tên file ở màn hình

Download file

Kịch bản

  • Download file đã có sẵn ở link https://the-internet.herokuapp.com/download
  • Kiểm tra xem file đã download thành công ở máy

Ý tưởng thực hiện

  • Tạo 1 thư mục để chứa file được download
  • Mở chrome với download option và click để download file
  • Khi đã download được file, để kiểm tra được file đã download thành công, có thể sử dụng keyword List Files In Directory để list tất cả các file trong thư mục vừa tạo. Thư mục nên có 1 file vừa tải về.
  • Sau khi kiểm tra đã có file được download, nên xoá file đó để đảm bảo cho những lần chạy regression test sau không bị lỗi
*** Settings ***
Documentation  File Upload Download in Robot Framework
Library  SeleniumLibrary
Library   OperatingSystem
Library  String

Suite Teardown             Close Browser

*** Test Cases ***
Verify File Download
    [Documentation]  This test case verifies that a user can successfully download a file
    [Tags]  Regression

    ${directory} =   Catenate    SEPARATOR=  /Users/mac/Downloads/Robot-Framework-master/Resources/Download/1

    ${chrome options}=  Evaluate  sys.modules['selenium.webdriver'].ChromeOptions()  sys, selenium.webdriver
    ${prefs}  Create Dictionary
    ...  download.default_directory=${directory}
    Call Method  ${chrome options}  add_experimental_option  prefs  ${prefs}
    Create Webdriver  Chrome  chrome_options=${chrome options}
    Goto  https://the-internet.herokuapp.com/download
    Click Link  css:[href="download/sunset.jpg"]
    Sleep  5s
    ${files}  List Files In Directory   ${directory}
    Length Should Be  ${files}  1
    Remove File         Resources/Download/1/sunset.jpg

Giải thích các câu lệnh

Verify File Download -> Tên của test case, nên viết hoa các chữ cái đầu


[Documentation] This test case verifies that a user can successfully download a file ->

-> Keyword [Documentation] giống như một dòng comment ở trong test case, chúng ta có thể viết tóm tắt nội dung test case để dễ hiểu hơn

[Tags] Regression -> Tag của test case là regression, cần dùng tag để đánh dấu và phân loại các test case, việc này giúp bạn quản lý và run các test case dễ dàng hơn

${directory} = Catenate SEPARATOR= /Users/mac/Downloads/Robot-Framework-master/Resources/Download/1 ->Tạo biến directory chứa đường dẫn của thư mục muốn để ảnh khi download

${chrome options}= Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys, selenium.webdriver -> mở browser là chrome

${prefs} Create Dictionary
… download.default_directory=${directory}
-> câu lệnh chuyển thư mục donwload default là thư mục vừa tạo ở lệnh bên trên

Call Method ${chrome options} add_experimental_option prefs ${prefs} -> call method của một với biến được cung cấp

Create Webdriver Chrome chrome_options=${chrome options}
Goto https://the-internet.herokuapp.com/download

-> tạo một driver là chrome và mở link có file cần download

Click Link css:[href="download/sunset.jpg"] -> ấn vào link cần download ở màn hình
Sleep 5s -> dừng khoảng 5s để đảm bảo rằng file đã được download thành công

${files} List Files In Directory ${directory}. -> Mở thư mục vừa donwload ảnh về và lấy ra số lương file có trong thư mục

Length Should Be ${files} 1 -> Vì thư mục vừa donwload và vừa tải 1 file về nên trong thư mục nên chỉ có 1 file thì chứng minh được rằng mình đã download thành công
Remove File Resources/Download/1/sunset.jpg -> Để phục vụ cho việc chạy regession test sau, bạn nên thêm 1 lệnh là xoá file vừa down. Vì nếu lần sau tiếp tục download thêm vào thư mục, só lượng file của thư mục sẽ tăng không còn chính xác.

Trong trường hợp này có thể có một số cách sau:

  1. Tạo thư mục với tên khác nhau trong mỗi lần chạy kịch bản, có thể thêm tiền tố ở sau tên của thư mục như timestamp hoặc là một chuỗi random -> để đảm bảo được mỗi lần chạy kịch bản sẽ luôn là một thư mục mới, các kết quả của kịch bản luôn được độc lập và chính xác.
  2. Xoá thư mục vừa tạo ở cuối kịch bản -> để clean data cho lần chạy tiếp theo.
  3. Xoá file sau khi download -> để clean data cho lần chạy tiếp theo.

Mong rằng qua bài viết các bạn có thể thực hiện được kịch bản download và upload thành công!

Tham khảo bài viết: HOW TO UPLOAD AND DOWNLOAD A FILE IN ROBOT FRAMEWORK

0 BÌNH LUẬN

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây

Exit mobile version